Skip to content
Snippets Groups Projects
BeanBuilderTest.java 2.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • HMoss's avatar
    HMoss committed
    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());
    	}
    }