public function testaa_havainnon_muokkaus() { $this->lisaa_testikommentti("<h4>Havainnon muokkaustesti alkaa</h4>", false); $this->lisaa_testikommentti("Muokataan ekaa valmista havaintota (Linnut)", false); $this->muokattava = $this->havainto1; //====================================================================== // Testataan ennen muutoksia onTallennuskelpoinen-metodi, jonka // pitäisi valittaa: $this->lisaa_testikommentti("Kokeillaan tallentaa ennen muutoksia,\n minka ei pitaisi onnistua:", false); if ($this->muokattava->tallenna_muutokset() == Havainto::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Virhe: muuttumattomia tietoja ei\n ole tarkoitus antaa tallentaa!", true); } else { $this->lisaa_testikommentti("Oikein: muuttumattomia tietoja ei\n tallenneta!", false); } //====================================================================== // ASetetaan kuvaukselle tahallaan vääriä arvoja (paikaksi tyhjä): $this->muokattava->set_paikka(""); $this->lisaa_testikommentti("Testataan tahallaan tallennus,\n jonka pitaisi valittaa:", false); // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); // Virheilmoitus pitäisi tulla: if ($this->muokattava->tallenna_muutokset() == Havainto::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Virhe: tyhjä paikka-muuttuja livahti ohi\n tarkastuksen!", true); } else { if ($this->muokattava->virheilmoitusten_lkm() == 1) { $this->lisaa_testikommentti("Oikein: Tiedoissa virheita:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), false); } else { $this->lisaa_testikommentti("Virhe: virheilmoituksia (" . $this->muokattava->virheilmoitusten_lkm() . " kpl):<br/>" . $this->muokattava->tulosta_virheilmoitukset(), true); } } // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); //====================================================================== // ASetetaan havainnolle hyviä arvoja: $muokattu_paikka = "Naapurin pihallla"; $muokattu_vuosi = 1999; $this->muokattava->set_paikka($muokattu_paikka); $this->muokattava->set_vuosi($muokattu_vuosi); $this->lisaa_testikommentti("Testataan hyvien muutosten tallennus, \n jonka ei pitaisi valittaa:", false); // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); // Virheilmoituksia ei pitäisi tulla: if ($this->muokattava->tallenna_muutokset() === Havainto::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Oikein! Tallennus ok!", false); // Kokeillaan hakea sama tietokannasta ja varmistetaan, että // muutettu kommentti on todella muuttunut: // Huom! Alla vuoden vertailussa pitää olla merkit noin. Täysi // identtisyys ei mene läpi. Menisi, jos vuosi olisi // määritelty $muokattu_vuosi = "1999". Liittyy ilmeisesti // tapaan, jolla numeroarvot jossakin vaiheessa muuttuvat merkkijonoiksi. $testi = new Havainto($this->tietokantaolio, $this->muokattava->get_id()); if ($testi->get_paikka() === $muokattu_paikka && $testi->get_vuosi() == $muokattu_vuosi) { $this->lisaa_testikommentti("Muutokset oikein tietokannassa!\n Paikka on nykyaan: '" . $testi->get_paikka() . "' ja " . "vuosi '" . $testi->get_vuosi() . "'", false); } else { $this->lisaa_testikommentti("Muutokset vaarin tietokannassa!\n Paikka on nykyaan: '" . $testi->get_paikka() . "' ja " . "vuosi '" . $testi->get_vuosi() . "'", true); } } else { $this->lisaa_testikommentti("Virhe: Tallennus ei ok:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), true); $testi = new Havainto($this->tietokantaolio, $this->muokattava->get_id()); $this->lisaa_testikommentti(" Tietokannassa seuraavat tiedot:\n Paikka on nykyaan: '" . $testi->get_paikka() . "' ja " . "vuosi '" . $testi->get_vuosi() . "'", true); } //====================================================================== $this->lisaa_testikommentti("<h4>Havainnon muokkaustesti loppui</h4>", false); // Tyhjennetään virheilmoitukset: $this->tyhjenna_virheilmoitukset(); //====================================================================== //====================================================================== }