package edu.ualberta.med.biobank.test.wrappers; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; import org.junit.Assert; import org.junit.Test; import edu.ualberta.med.biobank.common.peer.SitePeer; import edu.ualberta.med.biobank.common.wrappers.ModelWrapper; import edu.ualberta.med.biobank.common.wrappers.Property; import edu.ualberta.med.biobank.common.wrappers.SiteWrapper; import edu.ualberta.med.biobank.model.Site; import edu.ualberta.med.biobank.test.TestDatabase; import edu.ualberta.med.biobank.test.Utils; import edu.ualberta.med.biobank.test.internal.SiteHelper; import gov.nih.nci.system.applicationservice.WritableApplicationService; @Deprecated public class TestModelWrapper extends TestDatabase { class TestWrapper extends ModelWrapper<Object> { public TestWrapper(WritableApplicationService appService) { super(appService); } @Override protected List<Property<?, ? super Object>> getProperties() { return null; } @Override public Class<Object> getWrappedClass() { return null; } @Override public int compareTo(ModelWrapper<Object> o) { return 0; } @Override public Property<Integer, ? super Object> getIdProperty() { return null; } } class TestSiteWrapper extends ModelWrapper<Site> { public TestSiteWrapper(WritableApplicationService appService) { super(appService); } public TestSiteWrapper(WritableApplicationService appService, Site site) { super(appService, site); } @Override protected List<Property<?, ? super Site>> getProperties() { return null; } @Override public Class<Site> getWrappedClass() { return Site.class; } @Override public int compareTo(ModelWrapper<Site> o) { return 0; } @Override public Property<Integer, ? super Site> getIdProperty() { return SitePeer.ID; } } @Test public void testConstructor() throws Exception { try { new TestWrapper(appService); Assert.fail("should not be allowed to create this wrapper"); } catch (RuntimeException e) { Assert.assertTrue(true); } } @Test public void testPropertyChangeListener() throws Exception { TestSiteWrapper wrapper = new TestSiteWrapper(appService); PropertyChangeListener listener = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent arg0) { } }; try { wrapper.addPropertyChangeListener("propertyX", listener); Assert .fail("should not be allowed to create listener for non exisiting property"); } catch (RuntimeException e) { Assert.assertTrue(true); } SiteWrapper site = SiteHelper.addSite("testPropertyChangeListener"); site.addPropertyChangeListener("name", listener); site.removePropertyChangeListener(listener); } @Test public void testGetId() throws Exception { TestSiteWrapper wrapper = new TestSiteWrapper(appService); Assert.assertNull(wrapper.getId()); } @Test public void testGetAppService() throws Exception { TestSiteWrapper wrapper = new TestSiteWrapper(appService); Assert.assertTrue(appService == wrapper.getAppService()); } @Test public void testDelete() throws Exception { TestSiteWrapper wrapper = new TestSiteWrapper(appService); try { wrapper.delete(); Assert .fail("should fail since there is no such object in database"); } catch (Exception e) { Assert.assertTrue(true); } } @Test public void testEquals() throws Exception { TestSiteWrapper wrapper = new TestSiteWrapper(appService); SiteWrapper site = SiteHelper.addSite("testEquals"); Assert.assertFalse(site.equals(null)); Assert.assertFalse(site.equals(wrapper)); SiteWrapper site2 = SiteHelper.addSite("testEquals_2"); Assert.assertFalse(site.equals(site2)); // call to equals should handle null IDs TestSiteWrapper wrapper2 = new TestSiteWrapper(appService); Assert.assertFalse(wrapper.equals(wrapper2)); TestSiteWrapper wrapper3 = new TestSiteWrapper(appService, wrapper.getWrappedObject()); Assert.assertTrue(wrapper.equals(wrapper3)); } @Test public void testPersist() throws Exception { // test insert and update into database SiteWrapper site = SiteHelper.addSite("testEquals"); site.setName(Utils.getRandomString(10, 15)); site.persist(); } @Test public void testReset() throws Exception { SiteWrapper wrapper = new SiteWrapper(appService); wrapper.reset(); SiteWrapper site = SiteHelper.addSite("testEquals"); site.setName(Utils.getRandomString(10, 15)); site.reset(); } }