AutorÃa | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>.namespace core_ai\aiactions;use core_ai\aiactions\responses\response_generate_image;use core_ai\aiactions\generate_image;/*** Test generate_image action methods.** @package core_ai* @copyright 2024 Matt Porritt <matt.porritt@moodle.com>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later* @covers \core_ai\aiactions\base*/final class generate_image_test extends \advanced_testcase {/*** Test constructor method.*/public function test_constructor(): void {$contextid = 1;$userid = 1;$prompttext = 'This is a test prompt';$aspectratio = 'square';$quality = 'hd';$numimages = 1;$style = 'vivid';$action = new generate_image(contextid: $contextid,userid: $userid,prompttext: $prompttext,quality: $quality,aspectratio: $aspectratio,numimages: $numimages,style: $style);$this->assertEquals($userid, $action->get_configuration('userid'));$this->assertEquals($prompttext, $action->get_configuration('prompttext'));$this->assertEquals($aspectratio, $action->get_configuration('aspectratio'));$this->assertEquals($quality, $action->get_configuration('quality'));$this->assertEquals($numimages, $action->get_configuration('numimages'));$this->assertEquals($style, $action->get_configuration('style'));}/*** Test store method.*/public function test_store(): void {$this->resetAfterTest();global $DB;$contextid = 1;$userid = 1;$prompttext = 'This is a test prompt';$aspectratio = 'square';$quality = 'hd';$numimages = 1;$style = 'vivid';$action = new generate_image(contextid: $contextid,userid: $userid,prompttext: $prompttext,quality: $quality,aspectratio: $aspectratio,numimages: $numimages,style: $style);$body = ['revisedprompt' => 'This is a revised prompt','sourceurl' => 'https://example.com/image.png','model' => 'dall-e-3',];$actionresponse = new response_generate_image(success: true,);$actionresponse->set_response_data($body);$storeid = $action->store($actionresponse);// Check the stored record.$record = $DB->get_record('ai_action_generate_image', ['id' => $storeid]);$this->assertEquals($prompttext, $record->prompt);$this->assertEquals($numimages, $record->numberimages);$this->assertEquals($quality, $record->quality);$this->assertEquals($aspectratio, $record->aspectratio);$this->assertEquals($style, $record->style);$this->assertEquals($body['sourceurl'], $record->sourceurl);$this->assertEquals($body['revisedprompt'], $record->revisedprompt);}}