Gezin selecteerGezin() { String naam = readString("gezin van persoon met welke achternaam"); ArrayList<Persoon> kandidaten = getAdmin().getPersonenMetAchternaam(naam); for (Persoon p : kandidaten) { List<Gezin> gezinnen = p.getAlsOuderBetrokkenIn(); System.out.print(p.getNr() + "\t" + p.getNaam() + " " + datumString(p.getGebDat())); System.out.print(" gezinnen: "); for (Gezin gezin : gezinnen) { System.out.print(" " + gezin.getNr()); } System.out.println(); } int invoer = readInt("selecteer gezinsnummer"); input.nextLine(); return getAdmin().getGezin(invoer); }
@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)); }
@Test public void testAddOngehuwdGezin() { /** * er wordt, zo mogelijk (zie return) een (kinderloos) ongehuwd gezin met ouder1 en ouder2 als * ouders gecreeerd; */ 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); assertTrue("geen kinderen", annieEnJan.getKinderen().isEmpty()); assertFalse("ongehuwd gezin", annieEnJan.isHuwelijkOp(nu)); assertEquals("ouder1 is annie", annie, annieEnJan.getOuder1()); assertEquals("ouder2 is jan", jan, annieEnJan.getOuder2()); /*de huwelijks- en * scheidingsdatum zijn onbekend (null); */ assertNull("huwelijksdatum onbekend", annieEnJan.getHuwelijksdatum()); assertNull("scheidingsdatum onbekend", annieEnJan.getScheidingsdatum()); /* het gezin krijgt een uniek nummer toegewezen */ assertEquals( "nummering van gezin lijkt onjuist", pietEnTeuntje.getNr() + 1, annieEnJan.getNr()); /* dit gezin wordt ook bij de afzonderlijke ouders geregistreerd; */ assertFalse("registratie bij ouders onjuist", jan.getAlsOuderBetrokkenIn().isEmpty()); assertFalse("registratie bij ouders onjuist", annie.getAlsOuderBetrokkenIn().isEmpty()); assertEquals("registratie bij ouders onjuist", annieEnJan, jan.getAlsOuderBetrokkenIn().get(0)); assertEquals( "registratie bij ouders onjuist", annieEnJan, annie.getAlsOuderBetrokkenIn().get(0)); /* * @param ouder1 * @param ouder2 mag null zijn */ Persoon toos = adm.addPersoon( Geslacht.VROUW, new String[] {"t", "J"}, "sWinkelS", "VaN deR", new GregorianCalendar(1971, Calendar.APRIL, 13), "venLO", null); Gezin eenoudergezin = adm.addOngehuwdGezin(toos, null); assertTrue("geen kinderen", eenoudergezin.getKinderen().isEmpty()); assertFalse("ongehuwd gezin", eenoudergezin.isHuwelijkOp(nu)); assertEquals("ouder1 is toos", toos, eenoudergezin.getOuder1()); assertNull("ouder2 is onbekend", eenoudergezin.getOuder2()); /*de huwelijks- en * scheidingsdatum zijn onbekend (null); */ assertNull("huwelijksdatum onbekend", eenoudergezin.getHuwelijksdatum()); assertNull("scheidingsdatum onbekend", eenoudergezin.getScheidingsdatum()); /* het gezin krijgt een uniek nummer toegewezen */ assertEquals( "nummering van gezin lijkt onjuist", annieEnJan.getNr() + 1, eenoudergezin.getNr()); /* dit gezin wordt ook bij de afzonderlijke ouders geregistreerd; */ assertFalse("registratie bij ouder onjuist", toos.getAlsOuderBetrokkenIn().isEmpty()); assertEquals( "registratie bij ouder onjuist", eenoudergezin, toos.getAlsOuderBetrokkenIn().get(0)); /* @return null als ouder1 = ouder2 */ Persoon pim = adm.addPersoon( Geslacht.MAN, new String[] {"Pim"}, "sWinkelS", "VaN deR", new GregorianCalendar(1995, Calendar.APRIL, 13), "venLO", pietEnTeuntje); assertNull("ouders verschillend", adm.addOngehuwdGezin(pim, pim)); assertEquals("ouders verschillend", eenoudergezin.getNr(), adm.aantalGeregistreerdeGezinnen()); /* of als de volgende voorwaarden worden * overtreden: 1) een van de ouders is op dit moment getrouwd 2) het koppel * uit een ongehuwd gezin kan niet tegelijkertijd als koppel bij een ander ongehuwd * gezin betrokken zijn*/ assertNull("een van de ouders is op dit moment getrouwd", adm.addOngehuwdGezin(piet, toos)); assertNull("een van de ouders is op dit moment getrouwd", adm.addOngehuwdGezin(toos, piet)); assertNull( "het koppel uit een ongehuwd gezin kan niet tegelijkertijd bij" + " een ander ongehuwd gezin betrokken zijn", adm.addOngehuwdGezin(annie, jan)); assertNull( "het koppel uit een ongehuwd gezin kan niet tegelijkertijd bij" + " een ander ongehuwd gezin betrokken zijn", adm.addOngehuwdGezin(jan, annie)); /* anders het gewenste gezin */ Gezin annieEnToos = adm.addOngehuwdGezin(toos, annie); assertNotNull("gezin met een van de partners verschillend", annieEnToos); List<Gezin> gezinnenToos = toos.getAlsOuderBetrokkenIn(); List<Gezin> gezinnenAnnie = annie.getAlsOuderBetrokkenIn(); assertFalse("registratie bij ouders onjuist", gezinnenToos.isEmpty()); assertFalse("registratie bij ouders onjuist", gezinnenAnnie.isEmpty()); /* * test heeftOngehuwdGezin */ assertEquals("", annieEnToos, annie.heeftOngehuwdGezinMet(toos)); assertEquals("", annieEnToos, toos.heeftOngehuwdGezinMet(annie)); }