@Before public void setUp() { controller = new StamboomController(); adm = controller.getAdministratie(); piet = adm.addPersoon( Geslacht.MAN, new String[] {"Piet", "Franciscus"}, "Swinkels", "", new GregorianCalendar(1950, Calendar.APRIL, 23), "ede", null); teuntje = adm.addPersoon( Geslacht.VROUW, new String[] {"Teuntje"}, "Vries", "de", new GregorianCalendar(1949, Calendar.MAY, 5), "Amersfoort", null); pietEnTeuntje = adm.addHuwelijk(piet, teuntje, new GregorianCalendar(1970, Calendar.MAY, 23)); nu = GregorianCalendar.getInstance(); }
@Test public void testSetEnIsHuwelijk() { /** * registreert het huwelijk, mits dit gezin nog geen huwelijk is en beide ouders op deze datum * mogen trouwen (pas op: ook de toekomst kan hierbij een rol spelen omdat toekomstige gezinnen * eerder zijn geregisteerd) */ Persoon annie = adm.addPersoon( Geslacht.VROUW, new String[] {"Annie", "Gedula"}, "Dael", "", new GregorianCalendar(1981, Calendar.APRIL, 3), "Bergen op Zoom", null); Persoon jan = adm.addPersoon( Geslacht.MAN, new String[] {"Jan", "Jacobus"}, "Peters", "", new GregorianCalendar(1980, Calendar.APRIL, 23), "Venray", pietEnTeuntje); Gezin annieEnJan = adm.addOngehuwdGezin(annie, jan); assertFalse("is geen huwelijk", annieEnJan.isHuwelijkOp(nu)); /* * * @param datum de huwelijksdatum * @return false als huwelijk niet mocht worden voltrokken, anders true */ Calendar huwdatum = new GregorianCalendar(2008, Calendar.FEBRUARY, 3); Calendar laterDanHuwdatum = new GregorianCalendar(2008, Calendar.FEBRUARY, 4); Calendar eerderDanHuwdatum = new GregorianCalendar(2008, Calendar.FEBRUARY, 2); assertTrue("huwelijk is niet voltrokken", annieEnJan.setHuwelijk(huwdatum)); assertTrue("huwelijksdatum later invoeren onjuist", annieEnJan.isHuwelijkOp(nu)); assertTrue("huwelijksdatum invoeren onjuist", annieEnJan.isHuwelijkOp(laterDanHuwdatum)); assertFalse("huwelijksdatum invoeren onjuist", annieEnJan.isHuwelijkOp(eerderDanHuwdatum)); assertFalse("huwelijk is ten onrechte voltrokken", annieEnJan.setHuwelijk(nu)); assertEquals("2e huwelijksdatum invoeren onjuist", huwdatum, annieEnJan.getHuwelijksdatum()); /* (pas op: ook de toekomst kan * hierbij een rol spelen omdat toekomstige gezinnen eerder zijn * geregisteerd)*/ Persoon pim = adm.addPersoon( Geslacht.MAN, new String[] {"Pim"}, "Pieterse", "VaN deR", new GregorianCalendar(1985, Calendar.APRIL, 13), "venLO", null); Gezin annieEnPim = adm.addHuwelijk(annie, pim, eerderDanHuwdatum); assertNull("huwelijk niet toegestaan vanwege toekomstig huwelijk", annieEnPim); }
@Test public void testAddHuwelijk() { /** als er al een ongehuwd gezin voor dit koppel bestaat, wordt het huwelijk voltrokken */ Persoon annie = adm.addPersoon( Geslacht.VROUW, new String[] {"Annie", "Gedula"}, "Dael", "", new GregorianCalendar(1981, Calendar.APRIL, 3), "Bergen op Zoom", null); Persoon jan = adm.addPersoon( Geslacht.MAN, new String[] {"Jan", "Jacobus"}, "Peters", "", new GregorianCalendar(1980, Calendar.APRIL, 23), "Venray", pietEnTeuntje); Gezin annieEnJan = adm.addOngehuwdGezin(annie, jan); Gezin huwelijk = adm.addHuwelijk(jan, annie, nu); assertEquals("ongehuwd gezin trouwt", huwelijk, annieEnJan); assertEquals("huwelijksdatum bekend", nu, huwelijk.getHuwelijksdatum()); assertNull("scheidingsdatum onbekend", huwelijk.getScheidingsdatum()); /* anders wordt er zo mogelijk (zie return) een * (kinderloos) gehuwd gezin met ouder1 en ouder2 als ouders gecreeerd; * de scheidingsdatum is onbekend (null); */ Persoon trees = adm.addPersoon( Geslacht.VROUW, new String[] {"trees", "Gedula"}, "Dael", "van", new GregorianCalendar(1981, Calendar.APRIL, 3), "Sevenum", null); Persoon jaap = adm.addPersoon( Geslacht.MAN, new String[] {"Jaap"}, "Giesbers", "", new GregorianCalendar(1980, Calendar.APRIL, 23), "Venray", null); Gezin treesEnJaap = adm.addHuwelijk(trees, jaap, new GregorianCalendar(2013, Calendar.APRIL, 23)); assertTrue("geen kinderen", treesEnJaap.getKinderen().isEmpty()); assertTrue("gehuwd gezin", treesEnJaap.isHuwelijkOp(nu)); assertEquals("ouder1 is trees", trees, treesEnJaap.getOuder1()); assertEquals("ouder2 is jaap", jaap, treesEnJaap.getOuder2()); /* * scheidingsdatum is onbekend (null); */ assertNull("scheidingsdatum onbekend", treesEnJaap.getScheidingsdatum()); /* het gezin krijgt een uniek nummer toegewezen */ assertEquals("nummering van gezin lijkt onjuist", 3, treesEnJaap.getNr()); /* dit gezin wordt ook bij de afzonderlijke ouders geregistreerd; */ assertFalse("registratie bij ouders onjuist", trees.getAlsOuderBetrokkenIn().isEmpty()); assertFalse("registratie bij ouders onjuist", jaap.getAlsOuderBetrokkenIn().isEmpty()); assertEquals( "registratie bij ouders onjuist", treesEnJaap, jaap.getAlsOuderBetrokkenIn().get(0)); assertEquals( "registratie bij ouders onjuist", treesEnJaap, trees.getAlsOuderBetrokkenIn().get(0)); Persoon petra = adm.addPersoon( Geslacht.VROUW, new String[] {"Petra", "Gedula"}, "Dael", "", new GregorianCalendar(1981, Calendar.APRIL, 3), "Bergen op Zoom", null); Persoon roel = adm.addPersoon( Geslacht.MAN, new String[] {"Roel", "Jacobus"}, "Peters", "", new GregorianCalendar(1983, Calendar.APRIL, 23), "Venray", pietEnTeuntje); Gezin petraEnRoel = adm.addOngehuwdGezin(petra, roel); Persoon john = adm.addPersoon( Geslacht.MAN, new String[] {"John", "Adriaan"}, "Krop", "", new GregorianCalendar(1973, Calendar.JANUARY, 3), "Eindhoven", pietEnTeuntje); Gezin johnEnRoel = adm.addHuwelijk(john, roel, nu); assertNotNull( "huwelijk waarvoor een van de partners bij een ongehuwd gezin betrokken is", johnEnRoel); /*het gezin krijgt een uniek nummer toegewezen;*/ assertEquals("nummering van gezin lijkt onjuist", petraEnRoel.getNr() + 1, johnEnRoel.getNr()); /** * @return null als ouder1 = ouder2 of als een van de ouders getrouwd is anders het gehuwde * gezin */ Persoon pim = adm.addPersoon( Geslacht.MAN, new String[] {"Pim"}, "sWinkelS", "VaN deR", new GregorianCalendar(1995, Calendar.APRIL, 13), "venLO", pietEnTeuntje); assertNull("ouders verschillend", adm.addHuwelijk(pim, pim, nu)); assertNull("ouders ongehuwd", adm.addHuwelijk(roel, pim, Calendar.getInstance())); assertNull("ouders ongehuwd", adm.addHuwelijk(pim, roel, Calendar.getInstance())); Calendar datum1 = new GregorianCalendar(1995, Calendar.APRIL, 13); Calendar datum2 = new GregorianCalendar(1996, Calendar.APRIL, 13); Calendar datum3 = new GregorianCalendar(1996, Calendar.APRIL, 14); Calendar datum4 = new GregorianCalendar(1996, Calendar.APRIL, 15); // merk op: datum1 < datum2 < datum3 < datum4 Persoon miep = adm.addPersoon( Geslacht.VROUW, new String[] {"miep"}, "Dael", "", new GregorianCalendar(1981, Calendar.APRIL, 3), "Bergen op Zoom", null); Persoon jacco = adm.addPersoon( Geslacht.MAN, new String[] {"Jacco", "Jacobus"}, "Hop", "", new GregorianCalendar(1983, Calendar.APRIL, 23), "Venray", null); Gezin miepEnJacco = adm.addHuwelijk(miep, jacco, datum1); miepEnJacco.setScheiding(datum3); Persoon aafke = adm.addPersoon( Geslacht.VROUW, new String[] {"aafke"}, "Dael", "", new GregorianCalendar(1981, Calendar.APRIL, 3), "Bergen op Zoom", null); assertNull("jacco is nog getrouwd", adm.addHuwelijk(aafke, jacco, datum2)); assertNotNull("jacco is niet meer getrouwd", adm.addHuwelijk(aafke, jacco, datum4)); Persoon frank = adm.addPersoon( Geslacht.MAN, new String[] {"Frank", "Johan"}, "Kroes", "", new GregorianCalendar(1983, Calendar.APRIL, 23), "Helmond", null); assertNull("aafke is naderhand getrouwd", adm.addHuwelijk(aafke, frank, datum1)); }