Persoon selecteerPersoon() { String naam = readString("wat is de achternaam"); ArrayList<Persoon> personen = getAdmin().getPersonenMetAchternaam(naam); for (Persoon p : personen) { System.out.println(p.getNr() + "\t" + p.getNaam() + " " + datumString(p.getGebDat())); } int invoer = readInt("selecteer persoonsnummer"); input.nextLine(); Persoon p = getAdmin().getPersoon(invoer); return p; }
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 van addPersoon methode in class Administratie. */ @Test public void testAddPersoon() { /* er wordt een persoon met een gegeven geslacht, met als voornamen vnamen, * achternaam anaam, tussenvoegsel tvoegsel, geboortedatum gebdat, * geboorteplaats gebplaats en een gegeven ouderlijk gezin;*/ assertEquals("geslacht onjuist", Geslacht.VROUW, teuntje.getGeslacht()); assertEquals("voornamen onjuist", "Teuntje", teuntje.getVoornamen()); assertEquals("voornamen onjuist", "Piet Franciscus", piet.getVoornamen()); assertEquals("tussenvoegsel onjuist", "", piet.getTussenvoegsel()); assertEquals("tussenvoegsel onjuist", "de", teuntje.getTussenvoegsel()); assertEquals( "geboortedatum onjuist", "23-4-1950", StringUtilities.datumString(piet.getGebDat())); assertEquals("geboorteplaats onjuist", "Ede", piet.getGebPlaats()); assertEquals("ouderlijk gezin onjuist", null, piet.getOuderlijkGezin()); Persoon jan = adm.addPersoon( Geslacht.MAN, new String[] {"Jan", "Jacobus"}, "Peters", "", new GregorianCalendar(1980, Calendar.APRIL, 23), "Venray", pietEnTeuntje); assertEquals("ouderlijk gezin onjuist", pietEnTeuntje, jan.getOuderlijkGezin()); /* de persoon * krijgt een uniek nummer toegewezen de persoon is voortaan ook bij het * ouderlijk gezin bekend. */ assertEquals("persoonsnummering onjuist", 1, piet.getNr()); assertEquals("persoonsnummering onjuist", 3, jan.getNr()); assertFalse( "kind niet bij ouderlijk gezin geregistreerd", pietEnTeuntje.getKinderen().isEmpty()); assertEquals( "kind niet bij ouderlijk gezin geregistreerd", jan, pietEnTeuntje.getKinderen().get(0)); /* Voor de voornamen, achternaam en gebplaats geldt * dat de eerste letter naar een hoofdletter en de resterende letters naar * een kleine letter zijn geconverteerd; het tussenvoegsel is zo nodig in * zijn geheel geconverteerd naar kleine letters.*/ Persoon tom = adm.addPersoon( Geslacht.MAN, new String[] {"tom", "JACOBUS"}, "sWinkelS", "VaN deR", new GregorianCalendar(1971, Calendar.APRIL, 13), "venLO", pietEnTeuntje); ArrayList<Persoon> swinkelsen = adm.getPersonenMetAchternaam("Swinkels"); assertEquals("zoeken op achternaam onjuist", 2, swinkelsen.size()); assertEquals("voornamen niet correct weergegeven", "Tom Jacobus", tom.getVoornamen()); assertEquals("achternaam niet correct weergegeven", "Swinkels", tom.getAchternaam()); assertEquals("geboorteplaats niet correct weergegeven", "Venlo", tom.getGebPlaats()); assertEquals("tussenvoegsel niet correct weergegeven", "van der", tom.getTussenvoegsel()); /* @return als de persoon al bekend was (op basis van combinatie van naam, * geboorteplaats en geboortedatum), wordt er null * geretourneerd, anders de nieuwe persoon*/ Persoon tom2 = adm.addPersoon( Geslacht.VROUW, new String[] {"t", "J"}, "sWinkelS", "VaN deR", new GregorianCalendar(1971, Calendar.APRIL, 13), "venLO", null); assertNull("unieke identificatie persoon onjuist", tom2); List<Persoon> kinderen = pietEnTeuntje.getKinderen(); assertEquals("aantal kinderen onjuist", 2, kinderen.size()); assertEquals("eerste kind ontbreekt", jan, kinderen.get(0)); assertEquals("tweede kind ontbreekt", tom, kinderen.get(1)); }