Esempio n. 1
0
 /**
  * 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&auml;hj&auml;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);
 }