// Luodaan palauteolio; $palauteolio = new Palaute(); // Luodaan parametriolio: $parametriolio = new Parametrit($tietokantaolio); $virheiden_lkm = 0; /* Virhetoimintojen lkm */ // Poistetaan ensin kaikki kokonaisuudet, joiden otsikko on 'Testiotsikko': $ilmoitus = "Testausta"; //========================================================================== //========================================================================== // // Mallipohjaluokan yms. testaus: $sisalto = "<h3>Testataan erinäisiä luokkia</h3>"; $malliluokkapohjatesti = new Malliluokkapohjatesti($tietokantaolio, $parametriolio); $kayttajatoimintotesti = new Kayttajatestaus($tietokantaolio, $parametriolio); $kokon_teht_ratk_testi = new KokonTehtRatkTestaus($tietokantaolio, $parametriolio); $koostetesti = new Koostetestaus($tietokantaolio, $parametriolio); $testipalauteoliot = array($malliluokkapohjatesti->toteuta_malliluokkapohjatestit(), $kayttajatoimintotesti->toteuta_kayttajatestit(), $kokon_teht_ratk_testi->toteuta_testit(), $koostetesti->toteuta()); $virheilmoitukset = ""; $otsikot_ja_ilmoitukset = ""; foreach ($testipalauteoliot as $testipalaute) { $virheilmoitukset .= $testipalaute->get_virheilmoitukset(); $otsikot_ja_ilmoitukset .= "<h3 style='color: blue'>" . $testipalaute->get_otsikko() . "</h3>"; $otsikot_ja_ilmoitukset .= $testipalaute->get_sisalto() . "<br/>"; $otsikot_ja_ilmoitukset .= "===============================" . "================================<br/>"; $virheiden_lkm += $testipalaute->get_virheilmoitusten_lkm(); } //=============== Mallipohjaluokan yms. testaus loppuu ===================== //========================================================================== /***************************************************************************/ $oikea_palkki = "";
/** * Luo testiratkaisun ja palauttaa Ratkaisu-luokan olion, tai arvon * Pohja::$VIRHE. * * create table ratkaisut ( id mediumint auto_increment not null, tehtava_id mediumint not null, henkilo_id smallint not null, luomishetki_sek int not null, ed_muutos_sek int not null, vastaus varchar(1000), ratkaisu varchar(10000) not null, primary key (id), index(tehtava_id), FOREIGN KEY (tehtava_id) REFERENCES tehtavat (id) ON DELETE CASCADE ) ENGINE=INNODB; * * @param type $parametriolio */ private function luo_testiratkaisu() { $jatkolupa = false; $palaute = Pohja::$VIRHE; $ratkaisukontrolleri = new Ratkaisukontrolleri($this->tietokantaolio, $this->parametriolio); // Luodaan ensin testikokonaisuus: $this->parametriolio->set_omaid($this->testihenkilo->get_id()); $palauteolio_kokon = $this->kok_teht_ratk_testiolio->luo_testikokonaisuus("Otsikko", "Testikokonaisuus", -1); if (!$palauteolio_kokon->operaatio_onnistui()) { $this->lisaa_virheilmoitus("Testikokonaisuuden luominen epäonnistui!" . " <br/>" . $palauteolio_kokon->get_ilmoitus()); } else { $this->testikokonaisuus = new Kokonaisuusolio($palauteolio_kokon->get_muokatun_id(), $this->tietokantaolio); if ($this->testikokonaisuus->olio_loytyi_tietokannasta) { $this->lisaa_kommentti("Testikokonaisuuden luominen ok "); // Luodaan testitehtava: $palauteolio_teht = $this->kok_teht_ratk_testiolio->luo_testitehtava($palauteolio_kokon->get_muokatun_id(), "TEstitehtava on tama kiva!"); if (!$palauteolio_teht->operaatio_onnistui()) { $this->lisaa_virheilmoitus("Testitehtavan luominen epäonnistui!" . " Ilmoitukset: " . $palauteolio_teht->get_ilmoitus()); } else { $this->lisaa_kommentti("Testitehtavän luominen ok"); $jatkolupa = true; } } else { $this->lisaa_virheilmoitus("Kokon_oliota ei löytynyt tietokannasta!"); } } /************** UUDEN RATKAISUN TALLENNUS *********************************/ if ($jatkolupa) { $parametriolio = $this->parametriolio; $palaute = Pohja::$VIRHE; $id_kokon = -1; // haetaan tietokannasta tehtävä, johon ratkaisu voidaan liittää: $id_teht = $palauteolio_teht->get_muokatun_id(); $osuma = new Tehtava($id_teht, $this->tietokantaolio); if ($osuma->olio_loytyi_tietokannasta) { $this->lisaa_kommentti("Luodaan sitten testiratkaisu."); $parametriolio->id_teht = $id_teht; $parametriolio->vastaus_ratk = "Vastaus"; $parametriolio->ratkaisu_ratk = Kayttajatestaus::$testi_ratkaisu; // Laitetaan ratkaisun luojaksi testiomistaja $parametriolio->set_omaid($this->testiomistaja->get_id()); // Satunnainen id. $palauteolio = new Palaute(); $ratkaisukontrolleri->toteuta_tallenna_uusi($palauteolio); $tallennettu = new Ratkaisu($palauteolio->get_muokatun_id(), $this->tietokantaolio); if ($tallennettu->olio_loytyi_tietokannasta) { $this->lisaa_kommentti("Ratkaisun tallennus ok (omistaja testiomistaja)!! Ratkaisu = " . $tallennettu->getRatkaisu()); } else { $this->lisaa_virheilmoitus("Ratkaisun tallennus ei ok!!"); } // Tarkistetaan onnistuiko: if (!$palauteolio->operaatio_onnistui()) { $this->lisaa_virheilmoitus("<div class='virhe'>Virhe uuden ratkaisun" . " tallennuksessa (Kayttajatestaus-" . "toteuta_uuden_ratkaisun_tallennus) </div>" . $ratkaisukontrolleri->tulosta_virheilmoitukset() . $palauteolio->get_ilmoitus()); } else { // haetaan tietokannasta: $id = $palauteolio->get_muokatun_id(); $ratk = new Ratkaisu($id, $this->tietokantaolio); if ($ratk->olio_loytyi_tietokannasta) { $palaute = $ratk; } else { $this->lisaa_virheilmoitus("Testiratkaisua ei löytynyt tietokannasta!"); } } } else { $this->lisaa_virheilmoitus("Yhtään tehtävää ei löytynyt! Luo yksi ensin!"); } } return $palaute; }