package edu.ncsu.csc.itrust.unit; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; import edu.ncsu.csc.itrust.BeanBuilder; import edu.ncsu.csc.itrust.beans.DiagnosisBean; import edu.ncsu.csc.itrust.beans.PatientBean; import edu.ncsu.csc.itrust.unit.testutils.BadBean; import edu.ncsu.csc.itrust.unit.testutils.OkayBean; public class BeanBuilderTest extends TestCase { public void testEmptyPatientDateOfBirth() throws Exception { assertEquals("empty patient bean", new PatientBean().getDateOfBirthStr(), new BeanBuilder<PatientBean>().build(new HashMap<String, String>(), new PatientBean()) .getDateOfBirthStr()); } // just testing the building process - test the bean validation elsewhere! public void testPartialPatient() throws Exception { PatientBean p = new PatientBean(); p.setFirstName("Bob"); p.setDateOfBirthStr("10/10/1950"); p.setPhone("85"); Map<String, Object> m = new HashMap<String, Object>(); m.put("firstName", new String[] { "Bob" }); m.put("dateOfBirthStr", new String[] { "10/10/1950" }); m.put("phone", new String[] { "85" }); PatientBean builtBean = new BeanBuilder<PatientBean>().build(m, new PatientBean()); assertEquals("correctly built patient bean from hashmap", p.getFirstName(), builtBean.getFirstName()); assertEquals("correctly built patient bean from hashmap", p.getDateOfBirthStr(), builtBean .getDateOfBirthStr()); assertEquals("correctly built patient bean from hashmap", p.getPhone(), builtBean.getPhone()); assertEquals("correctly built patient bean from hashmap", p.getLastName(), builtBean.getLastName()); } public void testNotOverloaded() throws Exception { try { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("thing", new String[] { "5" }); new BeanBuilder<BadBean>().build(map, new BadBean()); fail("exception should have been thrown"); } catch (IllegalArgumentException e) { assertEquals( "edu.ncsu.csc.itrust.unit.testutils.BadBean should not have any overloaded methods, like setThing", e.getMessage()); } } public void testOverloadedConstructor() throws Exception { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("description", new String[] { "test text" }); DiagnosisBean diag = new BeanBuilder<DiagnosisBean>().build(map, new DiagnosisBean()); assertEquals("test text", diag.getDescription()); } public void testEqualsOkayToBeOverloaded() throws Exception { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("thing", new String[] { "test text" }); OkayBean ok = new BeanBuilder<OkayBean>().build(map, new OkayBean()); assertEquals("test text", ok.getThing()); } public void testOkayBean1() throws Exception { OkayBean ok = new OkayBean(); assertFalse(ok.equals("")); OkayBean ok2 = new OkayBean(); assertTrue(ok.equals(ok2)); assertEquals(42, ok.hashCode()); } }