public function testaa_kuvauksen_muokkaus() { $this->lisaa_testikommentti("<h4>Kuvauksen muokkaustesti alkaa</h4>", false); $this->lisaa_testikommentti("Muokataan ekaa valmista kuvausta (Linnut)", false); $this->muokattava = $this->kuvaukset[0]; //====================================================================== // 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($uusi)) { $this->lisaa_testikommentti("Virhe: muuttumattomia tietoja ei\n ole tarkoitus antaa tallentaa!", true); } else { $this->lisaa_testikommentti("Oikein: muuttumattomia tietoja ei\n tallenneta!", false); } //====================================================================== // ASetetaan kuvaukselle tahallaan vääriä arvoja: $this->muokattava->set_kieli(Kuvaus::$MUUTTUJAA_EI_MAARITELTY); $this->muokattava->set_kuvaus(Kuvaus::$MUUTTUJAA_EI_MAARITELTY); //$this->muokattava->set_lajiluokka("jkljö"); Tätä ei voi muuttaa! $this->muokattava->set_nimi(Kuvaus::$MUUTTUJAA_EI_MAARITELTY); $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, 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() == 6) { $this->lisaa_testikommentti("Oikein: Tiedoissa virheita:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), false); } else { $this->lisaa_testikommentti("Virhe: virheita (" . (3 - $this->muokattava->virheilmoitusten_lkm()) . " kpl) livahti ohi\n tarkastuksen! Seuraavat huomattu:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), true); } } //====================================================================== // ASetetaan kuvaukselle hyviä arvoja: $muokattu_kuvaus = "Hurraa Sverige!"; $muokattu_nimi = "Fåglar"; $this->muokattava->set_kieli(Kielet::$RUOTSI); $this->muokattava->set_kuvaus($muokattu_kuvaus); $this->muokattava->set_nimi($muokattu_nimi); $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 == Kuvaus::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Muutosten tallennus onnistui!", false); // Kokeillaan hakea sama tietokannasta ja varmistetaan, että // muutettu kommentti on todella muuttunut: $testi = new Kuvaus($this->tietokantaolio, $this->muokattava->get_id()); if ($testi->get_kuvaus() == $muokattu_kuvaus && $testi->get_kieli() == Kielet::$RUOTSI && $testi->get_nimi() == $muokattu_nimi) { $this->lisaa_testikommentti("Muutokset oikein tietokannassa!\n Kuvaus on nykyaan: '" . $testi->get_kuvaus() . "', " . "nimi '" . $testi->get_nimi() . "', " . "ja kieli '" . Kielet::hae_kielen_nimi($testi->get_kieli()) . "'", false); } else { $this->lisaa_testikommentti("Muutokset vaarin tietokannassa!\n Kuvaus on nykyaan: '" . $testi->get_kuvaus() . "', " . "nimi '" . $testi->get_nimi() . "', " . "ja kieli '" . Kielet::hae_kielen_nimi($testi->get_kieli()) . "'", true); } // Muutetaan kuvaus alkuperäiseksi, jottei siivous häiriinny: $this->lisaa_testikommentti("Muutetaan kuvaus alkuperaiseksi,\n jotta siivous pysyy kasassa", false); // Huom! Alla käytetään testi-oliota, koska $this->muokattava ei // ole aivan ajan tasalla. $testi->set_kuvaus(Kuvaustestaus::$kuvaus_kuvaus); $tallennus2 = $testi->tallenna_muutokset(); if ($tallennus2 != Kuvaus::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Virhe alkup. kuvaus-kuvauksen palauttamisessa: " . $tallennus2, true); } } else { $this->lisaa_testikommentti($tallennuspalaute, true); } //====================== Yritetään muuttaa varpus-kuvausta // ruotsinkieliseksi, minkä ei pitäisi onnistua, koska sellainen on jo: $this->lisaa_testikommentti("Yritetaan muuttaa varpus-kuvausta\n ruotsinkieliseksi, minka ei pitaisi onnistua, koska sellainen on jo", false); $varpunen = $this->kuvaus2; $varpunen->set_kieli(Kielet::$RUOTSI); $palaute = $varpunen->tallenna_muutokset(); if ($palaute == Kuvaus::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Virhe!! Tupla sparv tallennettu!", true); } else { $this->lisaa_testikommentti("Tuplaa ei sallittu (OIKEIN): " . $palaute, false); } //====================================================================== $this->lisaa_testikommentti("<h4>Kuvauksen muokkaustesti loppui</h4>", false); }
/** * 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; }
/** * Luo uuden kuvauksen annetuilla arvoilla, tallentaa sen tietokantaan * ja palauttaa tallennetun id:n tai arvon * Kuvaus::$MUUTTUJAA_EI_MAARITELTY, jos jokin menee vikaan. * @param int $lajiluokka_id Viittaus yläluokkaan * @param string $nimi Lajin nimi $kieli-muuttujan määrittämällä kielellä. * @param string $kuvaus Lajin kuvaus $kieli-muuttujan määrittämällä kielellä. * @param int $kieli kielen indeksi * @return int Palauttaa kokonaisluvun */ public function luo_ja_tallenna_kuvaus($lajiluokka_id, $nimi, $kuvaus, $kieli) { $tallennetun_id = Kuvaus::$MUUTTUJAA_EI_MAARITELTY; $id = Kuvaus::$PARAMETRI_EI_KAYTOSSA; $kuvausolio = new Kuvaus($this->tietokantaolio, $id); $this->lisaa_testikommentti("Uusi tyhja kuvausolio luotu!", false); // Ei pitäisi olla tallennuskelpoinen: if ($kuvausolio->on_tallennuskelpoinen(true)) { $this->lisaa_virheilmoitus("Ei pitaisi olla tallennuskelpoinen!"); } /*else{ $this->lisaa_testikommentti("Muuttujia ei ole asetettu, joten". " saatiin aivan oikein seuraava palaute: ". $kuvausolio->tulosta_virheilmoitukset(),false); } $this->lisaa_testikommentti("Asetetaan lajiluokka_id, nimi, kuvaus ja kieli. Testataan uudelleen, onko nyt tallennuskelpoinen:",false);*/ $kuvausolio->set_lajiluokka($lajiluokka_id); $kuvausolio->set_nimi($nimi); $kuvausolio->set_kuvaus($kuvaus); $kuvausolio->set_kieli($kieli); $this->lisaa_testikommentti("Muuttujien arvot asetettu!", false); if ($kuvausolio->on_tallennuskelpoinen(true)) { $this->lisaa_testikommentti("Kuvausolio on tallennuskelpoinen!", false); $onnistuminen = $kuvausolio->tallenna_uusi(); if ($onnistuminen === Kuvaus::$OPERAATIO_ONNISTUI) { $tallennetun_id = mysql_insert_id(); } else { $this->lisaa_testikommentti($onnistuminen . " Virhe tallennuksessa (luo_\n ja_tallenna_kuvaus())!" . " Arvot: lajiluokka_id=" . $kuvausolio->get_lajiluokka_id() . ", nimi=" . $kuvausolio->get_nimi() . ", kuvaus=" . $kuvausolio->get_kuvaus() . ", kieli=" . $kuvausolio->get_kieli(), true); } } else { // Joskus testissä tämä on toivottava toiminto, joten ei aina virhe! $this->lisaa_testikommentti($kuvausolio->tulosta_virheilmoitukset(), false); } return $tallennetun_id; }