Example #1
0
 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();
         //======================================================================
         //=======================================================================
     }
 }