package dk.hansen; import java.util.Collection; import junit.framework.TestCase; public class CDTest extends TestCase { private CDManagerIF manager; protected void setUp() throws Exception { // Create a factory class String managerName = "dk.hansen.JdbcCDManagerFactory"; CDManagerFactoryIF factory; factory = (CDManagerFactoryIF)Class.forName(managerName).newInstance(); // Create a CDManager manager = factory.createCDManager(); String id1 = "ID88"; try { manager.deleteCD(id1); } catch (Exception e) {} manager.createCD("ID88", "Who knows this CD?", "The Singer", 1988); String id2 = "ID89"; try { manager.deleteCD(id2); } catch (Exception e) {} manager.createCD("ID89", "I know this CD!", "The Listener", 1998); } public void testfind() throws DAOException { String id; CD cd; id = "ID88"; cd = manager.getCD(id); assertEquals("Test for 'ID88'", id, cd.getId()); assertEquals("Test for 'Who knows this CD?' - title", "Who knows this CD?", cd.getTitle()); assertEquals("Test for 'The Singer' - author", "The Singer", cd.getAuthor()); assertEquals("Test for '1988' - year", 1988, cd.getYear()); id = "ID89"; cd = manager.getCD(id); assertEquals("Test for 'ID89'", id, cd.getId()); assertEquals("Test for 'I know this CD!' - title", "I know this CD!", cd.getTitle()); assertEquals("Test for 'The Listener' - author", "The Listener", cd.getAuthor()); assertEquals("Test for '1998' - year", 1998, cd.getYear()); id = "xyz"; cd = manager.getCD(id); assertNull("Test for non-existent", cd); } public void testupdate() throws DAOException { String id; CD cd; manager.updateCD("ID88", "new Who knows this CD?", "new The Singer", -1988); manager.updateCD("ID89", "new I know this CD!", "new The Listener", -1998); cd = manager.getCD("ID88"); assertEquals("Test for 'new Who knows this CD?' - title", "new Who knows this CD?", cd.getTitle()); assertEquals("Test for 'new The Singer' - author", "new The Singer", cd.getAuthor()); assertEquals("Test for '-1988' - year", -1988, cd.getYear()); cd = manager.getCD("ID89"); assertEquals("Test for 'new I know this CD!' - title", "new I know this CD!", cd.getTitle()); assertEquals("Test for 'new The Listener' - author", "new The Listener", cd.getAuthor()); assertEquals("Test for '-1998' - year", -1998, cd.getYear()); } public void testcreate() throws DAOException { String id; CD cd; String id1 = "ID88"; try { manager.deleteCD(id1); } catch (Exception e) {} manager.createCD("ID88", "Who knows this CD?", "The Singer", 1988); String id2 = "ID89"; try { manager.deleteCD(id2); } catch (Exception e) {} manager.createCD("ID89", "I know this CD!", "The Listener", 1998); id = "ID88"; cd = manager.getCD(id); assertEquals("Test for 'ID88'", id, cd.getId()); assertEquals("Test for 'Who knows this CD?' - title", "Who knows this CD?", cd.getTitle()); assertEquals("Test for 'The Singer' - author", "The Singer", cd.getAuthor()); assertEquals("Test for '1988' - year", 1988, cd.getYear()); id = "ID89"; cd = manager.getCD(id); assertEquals("Test for 'ID89'", id, cd.getId()); assertEquals("Test for 'I know this CD!' - title", "I know this CD!", cd.getTitle()); assertEquals("Test for 'The Listener' - author", "The Listener", cd.getAuthor()); assertEquals("Test for '1998' - year", 1998, cd.getYear()); id = "xyz"; cd = manager.getCD(id); assertNull("Test for non-existent", cd); } public void testdelete() throws DAOException { String id; CD cd; id = "ID88"; cd = manager.getCD("ID88"); assertEquals("Test for 'ID88'", id, cd.getId()); manager.deleteCD(id); cd = manager.getCD("ID88"); assertNull("Test for deleted 'ID88'", cd); id = "ID89"; cd = manager.getCD("ID89"); assertEquals("Test for 'ID89'", id, cd.getId()); manager.deleteCD(id); cd = manager.getCD("ID89"); assertNull("Test for deleted 'ID89'", cd); } public void testall() throws DAOException { String id; CD cd; Collection c; c = manager.getAll(); assertTrue("Number of CDs", c.size() >= 2); } public void testfindtitle() throws DAOException { String id; CD cd; Collection c; c = manager.findCDTitle("Who knows this CD?"); assertEquals("search for 'Who knows this CD?'", 1, c.size()); assertEquals("title 'Who knows this CD?'", "Who knows this CD?", ((CD)c.iterator().next()).getTitle()); c = manager.findCDTitle("I know this CD!"); assertEquals("search for 'I know this CD!'", 1, c.size()); assertEquals("title 'I know this CD!'", "I know this CD!", ((CD)c.iterator().next()).getTitle()); c = manager.findCDTitle("xyz"); assertEquals("search for non-existent", 0, c.size()); } public void testfindauthor() throws DAOException { String id; CD cd; Collection c; c = manager.findCDAuthor("The Singer"); assertEquals("search for 'The Singer'", 1, c.size()); assertEquals("author 'The Singer'", "The Singer", ((CD)c.iterator().next()).getAuthor()); c = manager.findCDAuthor("The Listener"); assertEquals("search for 'The Listener'", 1, c.size()); assertEquals("author 'The Listener'", "The Listener", ((CD)c.iterator().next()).getAuthor()); c = manager.findCDAuthor("xyz"); assertEquals("search for non-existent", 0, c.size()); } public void testfindyear() throws DAOException { String id; CD cd; Collection c; c = manager.findCDYear(1988); assertEquals("search for '1988'", 1, c.size()); assertEquals("year '1988'", 1988, ((CD)c.iterator().next()).getYear()); c = manager.findCDYear(1998); assertEquals("search for '1998'", 1, c.size()); assertEquals("year '1998'", 1998, ((CD)c.iterator().next()).getYear()); c = manager.findCDYear(-1); assertEquals("search for non-existent", 0, c.size()); } public static void main(String[] args) { junit.textui.TestRunner.run(CDTest.class); } }