package dk.hansen; import java.util.Collection; import junit.framework.TestCase; public class DVDTest extends TestCase { private DVDManagerIF manager; protected void setUp() throws Exception { // Create a factory class String managerName = "dk.hansen.JdbcDVDManagerFactory"; DVDManagerFactoryIF factory; factory = (DVDManagerFactoryIF)Class.forName(managerName).newInstance(); // Create a DVDManager manager = factory.createDVDManager(); String id1 = "ID10"; try { manager.deleteDVD(id1); } catch (Exception e) {} manager.createDVD("ID10", "Troy"); String id2 = "ID11"; try { manager.deleteDVD(id2); } catch (Exception e) {} manager.createDVD("ID11", "Peter Pan"); } public void testfind() throws DAOException { String id; DVD dvd; id = "ID10"; dvd = manager.getDVD(id); assertEquals("Test for 'ID10'", id, dvd.getId()); assertEquals("Test for 'Troy' - title", "Troy", dvd.getTitle()); id = "ID11"; dvd = manager.getDVD(id); assertEquals("Test for 'ID11'", id, dvd.getId()); assertEquals("Test for 'Peter Pan' - title", "Peter Pan", dvd.getTitle()); id = "xyz"; dvd = manager.getDVD(id); assertNull("Test for non-existent", dvd); } public void testupdate() throws DAOException { String id; DVD dvd; manager.updateDVD("ID10", "new Troy"); manager.updateDVD("ID11", "new Peter Pan"); dvd = manager.getDVD("ID10"); assertEquals("Test for 'new Troy' - title", "new Troy", dvd.getTitle()); dvd = manager.getDVD("ID11"); assertEquals("Test for 'new Peter Pan' - title", "new Peter Pan", dvd.getTitle()); } public void testcreate() throws DAOException { String id; DVD dvd; String id1 = "ID10"; try { manager.deleteDVD(id1); } catch (Exception e) {} manager.createDVD("ID10", "Troy"); String id2 = "ID11"; try { manager.deleteDVD(id2); } catch (Exception e) {} manager.createDVD("ID11", "Peter Pan"); id = "ID10"; dvd = manager.getDVD(id); assertEquals("Test for 'ID10'", id, dvd.getId()); assertEquals("Test for 'Troy' - title", "Troy", dvd.getTitle()); id = "ID11"; dvd = manager.getDVD(id); assertEquals("Test for 'ID11'", id, dvd.getId()); assertEquals("Test for 'Peter Pan' - title", "Peter Pan", dvd.getTitle()); id = "xyz"; dvd = manager.getDVD(id); assertNull("Test for non-existent", dvd); } public void testdelete() throws DAOException { String id; DVD dvd; id = "ID10"; dvd = manager.getDVD("ID10"); assertEquals("Test for 'ID10'", id, dvd.getId()); manager.deleteDVD(id); dvd = manager.getDVD("ID10"); assertNull("Test for deleted 'ID10'", dvd); id = "ID11"; dvd = manager.getDVD("ID11"); assertEquals("Test for 'ID11'", id, dvd.getId()); manager.deleteDVD(id); dvd = manager.getDVD("ID11"); assertNull("Test for deleted 'ID11'", dvd); } public void testall() throws DAOException { String id; DVD dvd; Collection c; c = manager.getAll(); assertTrue("Number of DVDs", c.size() >= 2); } public void testfindtitle() throws DAOException { String id; DVD dvd; Collection c; c = manager.findDVDTitle("Troy"); assertEquals("search for 'Troy'", 1, c.size()); assertEquals("title 'Troy'", "Troy", ((DVD)c.iterator().next()).getTitle()); c = manager.findDVDTitle("Peter Pan"); assertEquals("search for 'Peter Pan'", 1, c.size()); assertEquals("title 'Peter Pan'", "Peter Pan", ((DVD)c.iterator().next()).getTitle()); c = manager.findDVDTitle("xyz"); assertEquals("search for non-existent", 0, c.size()); } public static void main(String[] args) { junit.textui.TestRunner.run(DVDTest.class); } }