Example #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_luominen()
 {
     $this->lisaa_testikommentti("<h4>Testataan pikakommenttin luominen</h4>", false);
     $id = Pikakommentti::$PARAMETRI_EI_KAYTOSSA;
     $pika = new Pikakommentti($this->tietokantaolio, $id);
     $this->lisaa_testikommentti("Uusi tyhja pikakommentti luotu!", false);
     // Ei pitäisi olla tallennuskelpoinen:
     if ($pika->on_tallennuskelpoinen(true)) {
         $this->lisaa_virheilmoitus("Ei pitaisi olla tallennuskelpoinen!");
     } else {
         $this->lisaa_testikommentti("Ei ole tallennettava, joten" . " saatiin aivan oikein seuraava palaute:" . $pika->tulosta_virheilmoitukset(), 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($this->id_testihenkilo1);
     $pika->set_kohde_id(Pikakommenttitestaus::$kohteen_testi_id);
     $pika->set_kohde_tyyppi(Pikakommentti::$KOHDE_LIIKUNTASUORITUS);
     $pika->set_kommentti("Ihan hassu suoritus!");
     // Nyt pitäisi olla kelvollinen tallennukseen:
     if ($pika->on_tallennuskelpoinen(true)) {
         $this->lisaa_testikommentti("Pikakommentti on nyt tallennuskelpoinen", false);
     } else {
         $this->lisaa_virheilmoitus("Virhe: ei tallennuskelpoinen!");
         $this->lisaa_virheilmoitus("Palaute:" . $pika->tulosta_virheilmoitukset());
     }
     //======================================================================
     // Lisätään taulukkoon:
     $this->lisaa_pikakommentti($pika);
     if (sizeof($this->pikakommentit) == 1) {
         $this->lisaa_testikommentti("Uusi pikakommentti lisatty\n            taulukkoon!", false);
     } else {
         $this->lisaa_virheilmoitus("Virhe uuden pikakommentin lisayksessa\n                taulukkoon! (olioita " . sizeof($this->pikakommentit) . " kpl)");
     }
     //======================================================================
     // Tallennetaan tietokantaan:
     $this->lisaa_testikommentti("Tallennetaan luotu pikakommentti\n            tietokantaan:", false);
     $palaute = $pika->tallenna_uusi();
     if ($palaute === Pikakommentti::$OPERAATIO_ONNISTUI) {
         $this->lisaa_testikommentti("Tallennus onnistui!", false);
     } else {
         $this->lisaa_testikommentti("Virhe tallennuksessa!", false);
         $this->lisaa_virheilmoitus($palaute);
     }
     //======================================================================
     // Etsitään pikakommentit tietokannasta (voi olla useampia)
     $hakutulos = $this->tietokantaolio->tee_WHEREhaku_1("pikakommentit", "kohde_id", Pikakommenttitestaus::$kohteen_testi_id);
     $tk_oliot = $this->tietokantaolio->hae_osumarivit_olioina($hakutulos);
     if (sizeof($tk_oliot) > 0) {
         $this->lisaa_testikommentti("Testipikakommentteja loytyi " . sizeof($tk_oliot) . " kpl tietokannasta.", false);
     } else {
         $this->lisaa_testikommentti("Tietokannasta ei loytynyt\n                    yhtaan testipikakommentia kohde_id; arvolla " . Pikakommenttitestaus::$kohteen_testi_id, false);
         $this->lisaa_virheilmoitus("Tietokannasta ei loytynyt\n                    yhtaan testipikakommentia kohde_id; arvolla " . Pikakommenttitestaus::$kohteen_testi_id);
     }
     //======================================================================
     // "Haetaan olio tietokannasta id:n avulla, eli luodaan uusi
     // pikakommentti, jossa id mukana.
     $this->lisaa_testikommentti("Haetaan olio tietokannasta id:n avulla,\n            eli luodaan uusi pikakommentti, jossa id mukana.", false);
     $id = $this->pikakommentit[0]->get_id();
     $pika2 = new Pikakommentti($this->tietokantaolio, $id);
     $this->lisaa_testikommentti("Testataan, onko uudella oliolla samat\n                tiedot kuin ekalla (pitaisi olla)", false);
     //HUOM! Alla pitää olla yhtäläisyydet noin. Kolme varmistaa identtisyyden
     // eli tarkistaa olion tyypin myös ja alla ekasta ja kolmannesta tulee
     // sillä epätosi, vaikka kahdella tosi!
     if ($pika2->get_kohde_id() == $pika->get_kohde_id() && $pika2->get_kommentti() === "Ihan hassu suoritus!" && $pika2->get_kohde_tyyppi() == Pikakommentti::$KOHDE_LIIKUNTASUORITUS) {
         $this->lisaa_testikommentti("Kaikki kunnossa! Esimerkiksi\n                pikakommentin kommentti = " . $pika2->get_kommentti(), false);
     } else {
         $this->lisaa_testikommentti("Virhe tietojen haussa tietokannasta!", false);
         $this->lisaa_virheilmoitus("Kommenttia ei kai loytynyt tietokannasta!\n                (id: " . $this->pikakommentit[0]->get_id() . ")");
     }
     //======================================================================
     $this->lisaa_testikommentti("<h4>Pikakommenttin luomistesti loppui!</h4>", false);
 }