/** * Luo uuden pikakommentin annetuilla arvoilla, tallentaa sen tietokantaan * ja palauttaa tallennetun id:n tai arvon * Pikakommentti::$MUUTTUJAA_EI_MAARITELTY, jos jokin menee vikaan. * * @param <type> $henkilo_id * @param <type> $kohde_id * @param <type> $kohde_tyyppi * @param <type> $kommentti */ public function luo_ja_tallenna_pikakommentti($henkilo_id, $kohde_id, $kohde_tyyppi, $kommentti) { $tallennetun_id = Pikakommentti::$MUUTTUJAA_EI_MAARITELTY; $id = Pikakommentti::$PARAMETRI_EI_KAYTOSSA; $pika = new Pikakommentti($this->tietokantaolio, $id); $this->lisaa_testikommentti("Uusi tyhja pikakommentti luotu!", false); $this->lisaa_testikommentti("Asetetaan pikakommentin henkilo_id,\n kohde_id, kohde_tyyppi ja kommentti. Testataan\n uudelleen, onko nyt tallennuskelpoinen:", false); $pika->set_henkilo_id($henkilo_id); $pika->set_kohde_id($kohde_id); $pika->set_kohde_tyyppi($kohde_tyyppi); $pika->set_kommentti($kommentti); if ($pika->on_tallennuskelpoinen(true)) { $this->lisaa_testikommentti("Pikakommentti on tallennuskelpoinen", false); $onnistuminen = $pika->tallenna_uusi(); if ($onnistuminen === Pikakommentti::$OPERAATIO_ONNISTUI) { $tallennetun_id = mysql_insert_id(); } else { $this->lisaa_testikommentti($onnistuminen . " Virhe tallennuksessa (luo_\n ja_tallenna_pikakommentti())!" . " Arvot: henkilo_id=" . $pika->get_henkilo_id() . ", Kohde_id=" . $pika->get_kohde_id() . ", Kohde_tyyppi=" . $pika->get_kohde_tyyppi() . ", Kommentti=" . $pika->get_kommentti(), true); } } else { $this->lisaa_testikommentti($pika->tulosta_virheilmoitukset(), true); } return $tallennetun_id; }
public function testaa_pikakommentin_muokkaus() { $this->lisaa_testikommentti("<h4>Pikakommentin muokkaustesti alkaa</h4>", false); $this->lisaa_testikommentti("Luodaan uusi pikakommentti hakemalla\n tiedot tietokannasta (id-parametri asetettu)", false); $this->muokattava = new Pikakommentti($this->tietokantaolio, $this->pikakommentit[0]->get_id()); //====================================================================== // Testataan ennen muutoksia onTallennuskelpoinen-metodi, jonka // pitäisi valittaa: $this->lisaa_testikommentti("Testataan ennen muutoksia\n onTallennuskelpoinen-metodi, jonka pitaisi valittaa:", false); $uusi = false; if ($this->muokattava->on_tallennuskelpoinen(false)) { $this->lisaa_testikommentti("Virhe: samoja tietoja ei pida\n paastaa muokkaamaan!", true); } else { $this->lisaa_testikommentti("Oikein: samoja tietoja ei pida\n paastaa muokkaamaan!", false); } //====================================================================== // ASetetaan pikakommentille tahallaan vääriä arvoja: $this->muokattava->set_henkilo_id("piip"); $this->muokattava->set_kohde_id("piip"); $this->muokattava->set_kohde_tyyppi("piip"); $this->muokattava->set_kommentti(1000); // Ei enää aiheuta virhettä // johtuen set-metodin sisältämästä tarkistusmetodista! $this->lisaa_testikommentti("Testataan tahallaan vaarien muutosten jalkeen\n onTallennuskelpoinen-metodi, jonka pitaisi valittaa:", false); // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); // Virheilmoituksia pitäisi tulla neljä, yksi kustakin arvosta yllä: if ($this->muokattava->on_tallennuskelpoinen(false)) { $this->lisaa_testikommentti("Virhe: virheita livahti ohi\n tarkastuksen!", true); } else { if ($this->muokattava->virheilmoitusten_lkm() == 3) { $this->lisaa_testikommentti("Oikein: Tiedoissa virheita:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), false); } else { $this->lisaa_testikommentti("Virhe: virheita livahti ohi\n tarkastuksen! Seuraavat huomattu:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), true); } } //====================================================================== // ASetetaan pikakommentille hyviä arvoja: $muutettu_kommentti = "Mulla <b>on</b> 1000 'ankkaa', jähjäh!"; $this->muokattava->set_henkilo_id($this->id_testihenkilo1); $this->muokattava->set_kohde_id(Pikakommenttitestaus::$kohteen_testi_id); $this->muokattava->set_kohde_tyyppi(Pikakommentti::$KOHDE_LIIKUNTASUORITUS); $this->muokattava->set_kommentti($muutettu_kommentti); $this->lisaa_testikommentti("Testataan hyvien muutosten jalkeen\n onTallennuskelpoinen-metodi, jonka ei pitaisi valittaa:", false); // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); // Virheilmoituksia ei pitäisi tulla: if ($this->muokattava->on_tallennuskelpoinen(false)) { $this->lisaa_testikommentti("Oikein! ARvot puhtaita!", false); } else { $this->lisaa_testikommentti("Virhe: Tiedoissa olevinaan virheita:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), false); } //====================================================================== // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); // Kokeillaan sitten tallentaa muuttuneet tiedot: $this->lisaa_testikommentti("Kokeillaan tallentaa muutokset:", false); $tallennuspalaute = $this->muokattava->tallenna_muutokset(); if ($tallennuspalaute == Pikakommentti::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Muutosten tallennus onnistui!", false); // Kokeillaan hakea sama tietokannasta ja varmistetaan, että // muutettu kommentti on todella muuttunut: $testi = new Pikakommentti($this->tietokantaolio, $this->muokattava->get_id()); if ($testi->get_kommentti() == $muutettu_kommentti) { $this->lisaa_testikommentti("Muutokset oikein tietokannassa!\n Kommentti on nykyaan: " . $testi->get_kommentti(), false); } else { $this->lisaa_testikommentti("Muutokset vaarin tietokannassa!\n Kommentti on nykyaan: " . $testi->get_kommentti(), true); } } else { $this->lisaa_testikommentti($tallennuspalaute, true); } //====================================================================== $this->lisaa_testikommentti("<h4>Pikakommentin muokkaustesti loppui</h4>", false); }