/** * Testaa sitä, pysyykö kokonaisuuden on_lapsia-arvo mukana, kun * lapsikokonaisuus luodaan, poistetaan tai sen isäntää muutetaan. Lisäksi * testaa, antaako metodi on_lapsia_kokon()-metodi oikeat arvot. * */ function testaa_kokon_on_lapsia_muutokset() { $this->lisaa_lihava_kommentti("============ Testataan on_lapsia-arvon muutokset =================="); // Tarkistetaan on_lapsia-arvot kokonaisuuksilta kokon2 ja kokon3, // joilla siis ei pitäisi olla lapsia. Tarkistetaan samalla, että // funktion on_lapsia_kokon() antaa oikean vastauksen. // Huom! Näissä === ei toiminut! if ($this->kokon2 instanceof Kokonaisuusolio) { if ($this->kokon2->getOn_lapsia() == 0 && $this->kokon3->getOn_lapsia() == 0 && !$this->kokon3->on_lapsia_kokon()) { $this->lisaa_kommentti("Oikein! Kokon2 ja kokon3 ovat lapsettomia!" . " Lisäksi on_lapsia_kokon()-metodi antaa oikean vastauksen!"); } else { $this->lisaa_virheilmoitus("Virhe kokon2:n tai kokon3:n " . "on_lapsia-arvossa tai on_lapsia_kokon()-metodin arvossa!" . " Kokon2_on_lapsia=" . $this->kokon2->getOn_lapsia() . " ja kokon3_on_lapsia=" . $this->kokon3->getOn_lapsia()); } } else { $this->lisaa_virheilmoitus("Virhe kokon2 ei ole Kokonaisuusolio!"); } // Lisätään uusi kokonaisuus, jonka isäntä on kokon3: $ylakokon_id = $this->kokon3->get_id(); $palauteolio = $this->luo_testikokonaisuus("Huu", "Haa", $ylakokon_id); $testilapsikokon = new Kokonaisuusolio($palauteolio->get_muokatun_id(), $this->tietokantaolio); if ($testilapsikokon->olio_loytyi_tietokannasta) { $this->lisaa_kommentti("Testilapsikokonaisuuden tallennus ok!"); // Tarkistetaan, että on_lapsia-arvo on muuttunut kokon3:lla ja // on_lapsia_kokon näyttää positiivista: // Päivitetään ensin arvot tietokannasta: $this->kokon3->paivita_olion_tiedot_tietokannasta(); if ($this->kokon3->getOn_lapsia() == 1 && $this->kokon3->on_lapsia_kokon()) { $this->lisaa_kommentti("Oikein! kokon3:n lapsiarvo=1 ja " . "on_lapsia_kokon()-metodi palaute true!"); } else { $this->lisaa_virheilmoitus("Virhe kokon3:n on_lapsia-arvossa! (=" . $this->kokon3->getOn_lapsia() . ") tai " . "on_lapsia_kokon()-metodin palautteessa"); } // Muutetaan isäntä kokon2:seen: $this->lisaa_kommentti("Vaihdetaan isäntä kokon2:seen."); $uusi_isanta_id = $this->kokon2->get_id(); $testilapsikokon->setYlakokonaisuuden_id($uusi_isanta_id); $testilapsikokon->tallenna_muutokset(); // Tarkistetaan, että on_lapsia-arvot kohdillaan entisessä // ja uudessa isännässä: $this->lisaa_kommentti("Tarkistetaan, onko on-lapsia arvot " . " kohdallaan kokon2:ssa ja kokon3:ssa."); $this->kokon2->paivita_olion_tiedot_tietokannasta(); $this->kokon3->paivita_olion_tiedot_tietokannasta(); if ($this->kokon2->getOn_lapsia() == 1 && $this->kokon3->getOn_lapsia() == 0) { $this->lisaa_kommentti("Oikein! Kokon3 on lapseton ja kokon2 ei!"); } else { $this->lisaa_virheilmoitus("Virhe kokon2:n tai kokon3:n " . "on_lapsia-arvossa! Kokon2_on_lapsia=" . $this->kokon2->getOn_lapsia() . " ja kokon3_on_lapsia=" . $this->kokon3->getOn_lapsia()); } // Tehdään vielä poisto ja tarkistetaan isännän lapsettomuus: $this->lisaa_kommentti("Poistetaan testilapsi, jolloin kokon2:n" . " pitäisi taas olla lapseton:"); $testilapsikokon->poista(); $this->kokon2->paivita_olion_tiedot_tietokannasta(); if ($this->kokon2->getOn_lapsia() == 0) { $this->lisaa_kommentti("Oikein! Kokon2 on taas lapseton!"); } else { $this->lisaa_virheilmoitus("Virhe kokon2:n " . "on_lapsia-arvossa! Kokon2_on_lapsia=" . $this->kokon2->getOn_lapsia()); } } else { $this->lisaa_virheilmoitus("Virhe testilapsikokonaisuuden tallennuksessa!"); } $this->lisaa_lihava_kommentti("============ Loppuu on_lapsia-arvon muutosten testaus ========"); }