public function testaa_lisavaltuuden_luominen_tallennus() { if (!$this->testiratkaisu instanceof Ratkaisu) { $this->lisaa_virheilmoitus("Virhe metodissa 'testaa_lisavaltuu...'" . " ratkaisuolio ei ole oikea olio!"); } else { $this->lisaa_lihava_kommentti("Luodaan uusi Lisavaltuudet-luokan olio kaikilla oikeuksilla:"); $id = Malliluokkapohja::$MUUTTUJAA_EI_MAARITELTY; $this->testilisavaltuus = new Lisavaltuudet($id, $this->tietokantaolio); // Annetaan kunnon arvot: $this->testilisavaltuus->set_arvo_kevyt($this->testihenkilo->get_id(), Lisavaltuudet::$sarakenimi_henkilo_id); $this->testilisavaltuus->set_arvo_kevyt($this->testiratkaisu->getId(), Lisavaltuudet::$sarakenimi_olio_id); $this->testilisavaltuus->set_arvo_kevyt(Oliotyyppi::$RATKAISU, Lisavaltuudet::$sarakenimi_oliotyyppi); $this->testilisavaltuus->set_arvo_kevyt($this->testiomistaja->get_id(), Lisavaltuudet::$sarakenimi_omistaja_id); $this->testilisavaltuus->set_arvo_kevyt(Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA, Lisavaltuudet::$sarakenimi_valtuus); // Arvojen asetuksen onnistuminen: if ($this->testilisavaltuus->virheilmoitusten_lkm() == 0) { $this->lisaa_kommentti("Lisävaltuuden arvojen asetus onnistui."); // Tallennus tietokantaan: // Tallennus: if ($this->testilisavaltuus->tallenna_uusi() === Malliluokkapohja::$OPERAATIO_ONNISTUI) { $this->lisaa_kommentti("Uuden lisävaltuuden luonti ja tallennus ok!"); // Tarkistetaan vielä tiedot ja hakumetodi: $lisavaltuusarvo = Lisavaltuudet::hae_lisavaltuus_static($this->testiratkaisu->getId(), Oliotyyppi::$RATKAISU, $this->testihenkilo->get_id(), $this->testiratkaisu->getHenkiloId(), $this->tietokantaolio); // Alla ei saa olla "==="-juttua! (lukujen tyyppi muuttuu helposti) if ($lisavaltuusarvo == Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) { $this->lisaa_kommentti("Uuden lisävaltuuden haku tietokannasta ok!"); } else { $this->lisaa_virheilmoitus("Virhe lisävaltuuden haussa!" . " Tarkista 'Lisavaltuudet::hae_lisavaltuus'-metodi!" . " Y.m. metodin palautusarvo=" . $lisavaltuusarvo); } } else { $this->lisaa_virheilmoitus("Virhe uuden lisävaltuuden " . "tallennuksessa. <br/>" . $this->testilisavaltuus->tulosta_virheilmoitukset()); } } else { $this->lisaa_virheilmoitus("Virhe arvojen asetuksessa: <br/>" . $this->testilisavaltuus->tulosta_virheilmoitukset()); } //======================================================================= //======================================================================= $this->lisaa_kommentti("=========================================================="); $this->lisaa_lihava_kommentti("Yritetään tallentaa uusi lisävaltuus samoilla\n tiedoilla:"); $pal = $this->testilisavaltuus->tallenna_uusi(); if ($pal == Lisavaltuudet::$VIRHE) { $this->lisaa_kommentti("Oikein, ei onnistunut. <br/>" . $this->testilisavaltuus->tulosta_virheilmoitukset()); } else { $this->lisaa_virheilmoitus("Virhe: sama tallennettiin uudestaan!" . $this->testilisavaltuus->tulosta_virheilmoitukset()); } $this->testilisavaltuus->tyhjenna_kaikki_ilmoitukset(); //======================================================================= //======================================================================= $this->lisaa_kommentti("=========================================================="); $this->lisaa_lihava_kommentti("Tallennetaan uusi yleinen lisävaltuus \n joka koskee testiomistajan kaikkia kohteita:"); $id = Malliluokkapohja::$MUUTTUJAA_EI_MAARITELTY; $this->testilisavaltuus_yleinen = new Lisavaltuudet($id, $this->tietokantaolio); // Annetaan kunnon arvot: $this->testilisavaltuus_yleinen->set_arvo_kevyt($this->testihenkilo->get_id(), Lisavaltuudet::$sarakenimi_henkilo_id); //============ huom nämä! $this->testilisavaltuus_yleinen->set_arvo_kevyt(Lisavaltuudet::$kaikki_omistajan_oliot, Lisavaltuudet::$sarakenimi_olio_id); $this->testilisavaltuus_yleinen->set_arvo_kevyt(Lisavaltuudet::$kaikki_omistajan_oliot, Lisavaltuudet::$sarakenimi_oliotyyppi); //============ $this->testilisavaltuus_yleinen->set_arvo_kevyt($this->testiomistaja->get_id(), Lisavaltuudet::$sarakenimi_omistaja_id); $this->testilisavaltuus_yleinen->set_arvo_kevyt(Lisavaltuudet::$SAA_MUOKATA_JA_POISTAA, Lisavaltuudet::$sarakenimi_valtuus); $pal = $this->testilisavaltuus_yleinen->tallenna_uusi(); if ($pal == Lisavaltuudet::$VIRHE) { $this->lisaa_virheilmoitus("Virhe yleisen lisävaltuudet tallennuksessa. <br/>" . $this->testilisavaltuus_yleinen->tulosta_virheilmoitukset()); } else { $this->lisaa_kommentti("Yleisen lisävaltuuden tallennus onnistui!" . $this->testilisavaltuus_yleinen->tulosta_virheilmoitukset()); $this->lisaa_kommentti("Tarkistetaan, että valtuusarvon hakumetodi" . " hakee nimenomaan suuremman kahdesta:"); // Tarkistetaan vielä tiedot ja hakumetodi: $lisavaltuusarvo = Lisavaltuudet::hae_lisavaltuus_static($this->testiratkaisu->getId(), Oliotyyppi::$RATKAISU, $this->testilisavaltuus_yleinen->get_henkilo_id(), $this->testilisavaltuus_yleinen->get_omistaja_id(), $this->tietokantaolio); // Alla ei saa olla "==="-juttua! (lukujen tyyppi muuttuu helposti) if ($lisavaltuusarvo == $this->testilisavaltuus_yleinen->get_valtuusarvo()) { $this->lisaa_kommentti("Uuden lisävaltuuden haku tietokannasta ok!"); } else { $this->lisaa_virheilmoitus("Virhe lisävaltuuden haussa!" . " Tarkista 'Lisavaltuudet::hae_lisavaltuus'-metodi!" . " Y.m. metodin palautusarvo=" . $lisavaltuusarvo); } } //======================================================================= //======================================================================= $this->lisaa_kommentti("=========================================================="); $this->lisaa_lihava_kommentti("Yritetään tallentaa uusi yleinen lisävaltuus samoilla\n tiedoilla:"); $pal = $this->testilisavaltuus_yleinen->tallenna_uusi(); if ($pal == Lisavaltuudet::$VIRHE) { $this->lisaa_kommentti("Oikein, ei onnistunut. <br/>" . $this->testilisavaltuus_yleinen->tulosta_virheilmoitukset()); } else { $this->lisaa_virheilmoitus("Virhe: sama tallennettiin uudestaan!" . $this->testilisavaltuus_yleinen->tulosta_virheilmoitukset()); } $this->testilisavaltuus_yleinen->tyhjenna_kaikki_ilmoitukset(); //======================================================================= //======================================================================= $this->lisaa_kommentti("=========================================================="); $this->lisaa_lihava_kommentti("Yritetään tallentaa testihenkilölle\n uutta erityistä lisävaltuutta, minkä pitäisi nyt onnistua!"); $id = Malliluokkapohja::$MUUTTUJAA_EI_MAARITELTY; $testi = new Lisavaltuudet($id, $this->tietokantaolio); // Annetaan kunnon arvot: $testi->set_arvo_kevyt($this->testihenkilo->get_id(), Lisavaltuudet::$sarakenimi_henkilo_id); $testiolio_id = 222; // Tällaista yksittäistä lisävaltuutta ei varmasti löydy! $testi->set_arvo_kevyt($testiolio_id, Lisavaltuudet::$sarakenimi_olio_id); $testi->set_arvo_kevyt(Oliotyyppi::$KOKONAISUUS, Lisavaltuudet::$sarakenimi_oliotyyppi); $testi->set_arvo_kevyt($this->testiomistaja->get_id(), Lisavaltuudet::$sarakenimi_omistaja_id); $testi->set_arvo_kevyt(Lisavaltuudet::$SAA_MUOKATA_JA_POISTAA, Lisavaltuudet::$sarakenimi_valtuus); $pal = $testi->tallenna_uusi(); if ($pal == Lisavaltuudet::$VIRHE) { $this->lisaa_virheilmoitus("Virhe: tallennus ei onnistunut! <br/>" . $testi->tulosta_virheilmoitukset()); } else { $this->lisaa_kommentti("Oikein: lisävaltuu tallennettiin \n vaikka yleinen valtuus testihenkilölle olemassa!"); } $testi->tyhjenna_kaikki_ilmoitukset(); //====================================================================== //======================================================================= } }