package dk.hansen; import java.util.Collection; import junit.framework.TestCase; public class VhsTest extends TestCase { private VhsManagerIF manager; protected void setUp() throws Exception { // Create a factory class String managerName = "dk.hansen.JdbcVhsManagerFactory"; VhsManagerFactoryIF factory; factory = (VhsManagerFactoryIF)Class.forName(managerName).newInstance(); // Create a VhsManager manager = factory.createVhsManager(); String id1 = "ID33"; try { manager.deleteVhs(id1); } catch (Exception e) {} manager.createVhs("ID33", 1985, "Who knows this movie?", 240); String id2 = "ID34"; try { manager.deleteVhs(id2); } catch (Exception e) {} manager.createVhs("ID34", 1999, "I know this movie!", 120); String id3 = "ID35"; try { manager.deleteVhs(id3); } catch (Exception e) {} manager.createVhs("ID35", 2001, "I know it as well!", 140); } public void testfind() throws DAOException { String id; Vhs vhs; id = "ID33"; vhs = manager.getVhs(id); assertEquals("Test for 'ID33'", id, vhs.getId()); assertEquals("Test for '1985' - year", 1985, vhs.getYear()); assertEquals("Test for 'Who knows this movie?' - title", "Who knows this movie?", vhs.getTitle()); assertEquals("Test for '240' - tapeLength", 240, vhs.getTapeLength()); id = "ID34"; vhs = manager.getVhs(id); assertEquals("Test for 'ID34'", id, vhs.getId()); assertEquals("Test for '1999' - year", 1999, vhs.getYear()); assertEquals("Test for 'I know this movie!' - title", "I know this movie!", vhs.getTitle()); assertEquals("Test for '120' - tapeLength", 120, vhs.getTapeLength()); id = "ID35"; vhs = manager.getVhs(id); assertEquals("Test for 'ID35'", id, vhs.getId()); assertEquals("Test for '2001' - year", 2001, vhs.getYear()); assertEquals("Test for 'I know it as well!' - title", "I know it as well!", vhs.getTitle()); assertEquals("Test for '140' - tapeLength", 140, vhs.getTapeLength()); id = "xyz"; vhs = manager.getVhs(id); assertNull("Test for non-existent", vhs); } public void testupdate() throws DAOException { String id; Vhs vhs; manager.updateVhs("ID33", -1985, "new Who knows this movie?", -240); manager.updateVhs("ID34", -1999, "new I know this movie!", -120); manager.updateVhs("ID35", -2001, "new I know it as well!", -140); vhs = manager.getVhs("ID33"); assertEquals("Test for '-1985' - year", -1985, vhs.getYear()); assertEquals("Test for 'new Who knows this movie?' - title", "new Who knows this movie?", vhs.getTitle()); assertEquals("Test for '-240' - tapeLength", -240, vhs.getTapeLength()); vhs = manager.getVhs("ID34"); assertEquals("Test for '-1999' - year", -1999, vhs.getYear()); assertEquals("Test for 'new I know this movie!' - title", "new I know this movie!", vhs.getTitle()); assertEquals("Test for '-120' - tapeLength", -120, vhs.getTapeLength()); vhs = manager.getVhs("ID35"); assertEquals("Test for '-2001' - year", -2001, vhs.getYear()); assertEquals("Test for 'new I know it as well!' - title", "new I know it as well!", vhs.getTitle()); assertEquals("Test for '-140' - tapeLength", -140, vhs.getTapeLength()); } public void testcreate() throws DAOException { String id; Vhs vhs; String id1 = "ID33"; try { manager.deleteVhs(id1); } catch (Exception e) {} manager.createVhs("ID33", 1985, "Who knows this movie?", 240); String id2 = "ID34"; try { manager.deleteVhs(id2); } catch (Exception e) {} manager.createVhs("ID34", 1999, "I know this movie!", 120); String id3 = "ID35"; try { manager.deleteVhs(id3); } catch (Exception e) {} manager.createVhs("ID35", 2001, "I know it as well!", 140); id = "ID33"; vhs = manager.getVhs(id); assertEquals("Test for 'ID33'", id, vhs.getId()); assertEquals("Test for '1985' - year", 1985, vhs.getYear()); assertEquals("Test for 'Who knows this movie?' - title", "Who knows this movie?", vhs.getTitle()); assertEquals("Test for '240' - tapeLength", 240, vhs.getTapeLength()); id = "ID34"; vhs = manager.getVhs(id); assertEquals("Test for 'ID34'", id, vhs.getId()); assertEquals("Test for '1999' - year", 1999, vhs.getYear()); assertEquals("Test for 'I know this movie!' - title", "I know this movie!", vhs.getTitle()); assertEquals("Test for '120' - tapeLength", 120, vhs.getTapeLength()); id = "ID35"; vhs = manager.getVhs(id); assertEquals("Test for 'ID35'", id, vhs.getId()); assertEquals("Test for '2001' - year", 2001, vhs.getYear()); assertEquals("Test for 'I know it as well!' - title", "I know it as well!", vhs.getTitle()); assertEquals("Test for '140' - tapeLength", 140, vhs.getTapeLength()); id = "xyz"; vhs = manager.getVhs(id); assertNull("Test for non-existent", vhs); } public void testdelete() throws DAOException { String id; Vhs vhs; id = "ID33"; vhs = manager.getVhs("ID33"); assertEquals("Test for 'ID33'", id, vhs.getId()); manager.deleteVhs(id); vhs = manager.getVhs("ID33"); assertNull("Test for deleted 'ID33'", vhs); id = "ID34"; vhs = manager.getVhs("ID34"); assertEquals("Test for 'ID34'", id, vhs.getId()); manager.deleteVhs(id); vhs = manager.getVhs("ID34"); assertNull("Test for deleted 'ID34'", vhs); id = "ID35"; vhs = manager.getVhs("ID35"); assertEquals("Test for 'ID35'", id, vhs.getId()); manager.deleteVhs(id); vhs = manager.getVhs("ID35"); assertNull("Test for deleted 'ID35'", vhs); } public void testall() throws DAOException { String id; Vhs vhs; Collection c; c = manager.getAll(); assertTrue("Number of Vhss", c.size() >= 3); } public void testfindtitle() throws DAOException { String id; Vhs vhs; Collection c; c = manager.findVhsTitle("Who knows this movie?"); assertEquals("search for 'Who knows this movie?'", 1, c.size()); assertEquals("title 'Who knows this movie?'", "Who knows this movie?", ((Vhs)c.iterator().next()).getTitle()); c = manager.findVhsTitle("I know this movie!"); assertEquals("search for 'I know this movie!'", 1, c.size()); assertEquals("title 'I know this movie!'", "I know this movie!", ((Vhs)c.iterator().next()).getTitle()); c = manager.findVhsTitle("I know it as well!"); assertEquals("search for 'I know it as well!'", 1, c.size()); assertEquals("title 'I know it as well!'", "I know it as well!", ((Vhs)c.iterator().next()).getTitle()); c = manager.findVhsTitle("xyz"); assertEquals("search for non-existent", 0, c.size()); } public void testfindyear() throws DAOException { String id; Vhs vhs; Collection c; c = manager.findVhsYear(1985); assertEquals("search for '1985'", 1, c.size()); assertEquals("year '1985'", 1985, ((Vhs)c.iterator().next()).getYear()); c = manager.findVhsYear(1999); assertEquals("search for '1999'", 1, c.size()); assertEquals("year '1999'", 1999, ((Vhs)c.iterator().next()).getYear()); c = manager.findVhsYear(2001); assertEquals("search for '2001'", 1, c.size()); assertEquals("year '2001'", 2001, ((Vhs)c.iterator().next()).getYear()); c = manager.findVhsYear(-1); assertEquals("search for non-existent", 0, c.size()); } public static void main(String[] args) { junit.textui.TestRunner.run(VhsTest.class); } }