Ejemplo n.º 1
0
 /**
  * Uuden lajiluokan tallennus!
  * @return Palaute
  */
 public function toteuta_tallenna_uusi()
 {
     $pal = $this->palauteolio;
     $uusi = new Lajiluokka($this->tietokantaolio, Lajiluokka::$PARAMETRI_EI_KAYTOSSA);
     // Lajiluokka:
     $ylaluokka_id = $this->parametriolio->ylaluokka_id_lj;
     $nimi_latina = $this->parametriolio->nimi_latina_lj;
     // Kuvaus:
     // Nykyään kieli on tuossa aina suomi. Voi muuttaa tarvittaessa.
     $kieli_kuv = Kielet::$SUOMI;
     $kuv_kuv = $this->parametriolio->kuv_kuv;
     $nimi_kuv = $this->parametriolio->nimi_kuv;
     // Asetetaan arvot kohdalleen:
     $uusi->set_ylaluokka_id($ylaluokka_id);
     $uusi->set_nimi_latina($nimi_latina);
     // Kokeillaan tallentaa:
     $tallennus = $uusi->tallenna_uusi();
     // Jos kaikki hyvin, tallennetaan myös kuvaus lajiluokalle:
     if ($tallennus === Lajiluokka::$OPERAATIO_ONNISTUI) {
         // tallennetaan aktiivisuus:
         paivita_aktiivisuus($this->parametriolio->omaid, $this->tietokantaolio, time(), Aktiivisuus::$LAJILUOKKA_UUDEN_TALLENNUS);
         $uusi_kuv = new Kuvaus($this->tietokantaolio, Kuvaus::$PARAMETRI_EI_KAYTOSSA);
         // Asetetaan arvot:
         $uusi_kuv->set_kieli($kieli_kuv);
         $uusi_kuv->set_kuvaus($kuv_kuv);
         $uusi_kuv->set_lajiluokka($uusi->get_id());
         $uusi_kuv->set_nimi($nimi_kuv);
         // Kokeillaan tallentaa:
         $tallennus_kuv = $uusi_kuv->tallenna_uusi();
         // Jos kaikki hyvin:
         if ($tallennus_kuv === Kuvaus::$OPERAATIO_ONNISTUI) {
             // tallennetaan aktiivisuus:
             paivita_aktiivisuus($this->parametriolio->omaid, $this->tietokantaolio, time(), Aktiivisuus::$LAJILUOKKAKUVAUS_UUDEN_TALLENNUS);
             $pal->set_operaatio_onnistui(true);
             $pal->set_ilmoitus(Bongaustekstit::$lajiluokka_ja_kuvaus_tallennus_ok);
             // Asetetaan kuitenkin palautusolioon luodun lajiluokan id:
             $pal->set_muokatun_id($uusi->get_id());
             $pal->set_sisalto($this->nayta_havainnot());
         } else {
             $pal->set_operaatio_onnistui(false);
             $pal->set_ilmoitus(Bongaustekstit::$kuvaus_virheilm_tallennus_eiok . Html::luo_br() . $uusi_kuv->tulosta_virheilmoitukset());
             $pal->set_sisalto($this->toteuta_nayta_lajiluokkalomake()->get_sisalto());
         }
     } else {
         $pal->set_operaatio_onnistui(false);
         $pal->set_ilmoitus(Bongaustekstit::$lajiluokka_virheilm_tallennus_eiok . Html::luo_br() . $uusi->tulosta_virheilmoitukset());
         $pal->set_sisalto($this->toteuta_nayta_lajiluokkalomake()->get_sisalto());
     }
     return $pal;
 }
Ejemplo n.º 2
0
 /**
  * Testaa uuden lajiluokan luomista ja tallentamista. 
  */
 public function testaa_lajiluokan_luominen()
 {
     $this->lisaa_testikommentti("<h4>Testataan lajiluokan luominen</h4>", false);
     //================== Alkusiivous =======================================
     // Poistetaan mahdolliseta aiempien testien roskat, joita on voinut
     // jäädä, kun testi on keskeytynyt:
     $lkm = $this->tietokantaolio->poista_kaikki_rivit("blajiluokat", Lajiluokka::$SARAKENIMI_NIMI_LATINA, Lajiluokkatestaus::$lj1_nimi_latina);
     $lkm2 = $this->tietokantaolio->poista_kaikki_rivit("blajiluokat", Lajiluokka::$SARAKENIMI_NIMI_LATINA, Lajiluokkatestaus::$lj2_nimi_latina);
     $lkm3 = $this->tietokantaolio->poista_kaikki_rivit("blajiluokat", Lajiluokka::$SARAKENIMI_NIMI_LATINA, Lajiluokkatestaus::$lj2_nimi_latina_muutettu);
     $poistettujen_lkm = $lkm + $lkm2 + $lkm3;
     if ($poistettujen_lkm > 0) {
         $this->lisaa_testikommentti($poistettujen_lkm . " vanhaa lajiluokkaa poistettu", false);
     }
     //======================= Alkusiivous päättyi===========================
     // Lajiluokka hierarkkian päällä (esim "Linnut")
     $uuden_id = $this->luo_ja_tallenna_lajiluokka(Lajiluokkatestaus::$lj1_ylaluokka_id, Lajiluokkatestaus::$lj1_nimi_latina);
     // Haetaan tallennettu olio tietokannasta:
     $lj1 = new Lajiluokka($this->tietokantaolio, $uuden_id);
     // Lajiluokka hierarkkian toisessa kerroksessa (esim. "harakka").
     // Yritetään tallentaa sama latina toiseen kertaan, minkä ei pitäisi
     // onnistua:
     $this->lisaa_testikommentti("Yritetaan tallentaa uusi lajiluokka,\n            jolla on sama nimi_latina kuin edellisella. Ei pitaisi onnistua.", false);
     $uuden_id2 = $this->luo_ja_tallenna_lajiluokka($lj1->get_id(), Lajiluokkatestaus::$lj1_nimi_latina);
     if ($uuden_id2 === Lajiluokka::$MUUTTUJAA_EI_MAARITELTY) {
         $this->lisaa_testikommentti("Tuplalatina ei mennyt l&auml;pi.", false);
     } else {
         $this->lisaa_testikommentti("Tuplalatina meni l&auml;pi, vaikka" . " ei saisi!", true);
     }
     $this->lisaa_testikommentti("Tallennetaan nyt eri latinanimella, jolloin\n            tallennuksen pitaisi onnistua.", false);
     // Tallennetaan nyt eri lajina:
     $uuden_id2 = $this->luo_ja_tallenna_lajiluokka($lj1->get_id(), Lajiluokkatestaus::$lj2_nimi_latina);
     // Haetaan tallennettu olio tietokannasta:
     $lj2 = new Lajiluokka($this->tietokantaolio, $uuden_id2);
     //======================================================================
     // Lisätään taulukkoon, jos löydetty tietokannasta:
     if ($lj1->olio_loytyi_tietokannasta) {
         // Tyhjennetään vanhat virheilmoitukset.
         $this->tyhjenna_virheilmoitukset();
         $this->lisaa_lajiluokka($lj1);
         if (sizeof($this->lajiluokat) == 1) {
             $this->lisaa_testikommentti("Uusi lajiluokka lisatty\n                taulukkoon!", false);
         } else {
             $this->lisaa_virheilmoitus("Virhe uuden lajiluokan lisayksessa\n                    taulukkoon! (olioita " . sizeof($this->lajiluokat) . " kpl)");
         }
     } else {
         $this->lisaa_testikommentti("Lajiluokan haku tietokannasta" . " ei onnistunut! <br />" . $lj1->tulosta_virheilmoitukset(), true);
     }
     if ($lj2->olio_loytyi_tietokannasta) {
         // Tyhjennetään vanhat virheilmoitukset.
         $this->tyhjenna_virheilmoitukset();
         $this->lisaa_lajiluokka($lj2);
         if (sizeof($this->lajiluokat) == 2) {
             $this->lisaa_testikommentti("Toinen uusi lajiluokka lisatty\n                taulukkoon!", false);
         } else {
             $this->lisaa_virheilmoitus("Virhe toisen uuden lajiluokan lisayksessa\n                    taulukkoon! (olioita " . sizeof($this->lajiluokat) . " kpl)");
         }
         $this->lisaa_testikommentti("Testataan, onko 2. uuden olion latina ok", false);
         if ($lj2->get_nimi_latina() == Lajiluokkatestaus::$lj2_nimi_latina) {
             $this->lisaa_testikommentti("Latina ok!", false);
         } else {
             $this->lisaa_testikommentti("Virhe tietojen haussa tietokannasta!", false);
             $this->lisaa_virheilmoitus("Virhe nimi_latinassa!" . " (nimi_latina: " . $lj2->get_nimi_latina() . ")");
         }
     } else {
         $this->lisaa_testikommentti("Lajiluokan (2:n) haku tietokannasta" . " ei onnistunut! <br />" . $lj1->tulosta_virheilmoitukset(), true);
     }
     //======================================================================
     $this->lisaa_testikommentti("<h4>Lajiluokan luomistesti loppui!</h4>", false);
 }