/** * 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; }
/** * 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äpi.", false); } else { $this->lisaa_testikommentti("Tuplalatina meni lä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); }