. /** * Unit tests for the analysis class. * * @package core_analytics * @copyright 2019 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); /** * Unit tests for the analysis class. * * @package core_analytics * @copyright 2019 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class analytics_analysis_testcase extends advanced_testcase { /** * Test fill_firstanalyses_cache. * @return null */ public function test_fill_firstanalyses_cache() { $this->resetAfterTest(); $this->insert_used(1, 1, 'training', 123); $this->insert_used(1, 2, 'training', 124); $this->insert_used(1, 1, 'prediction', 125); $firstanalyses = \core_analytics\analysis::fill_firstanalyses_cache(1); $this->assertCount(2, $firstanalyses); $this->assertEquals(123, $firstanalyses['1_1']); $this->assertEquals(124, $firstanalyses['1_2']); // The cached elements gets refreshed. $this->insert_used(1, 1, 'prediction', 122); $firstanalyses = \core_analytics\analysis::fill_firstanalyses_cache(1, 1); $this->assertCount(1, $firstanalyses); $this->assertEquals(122, $firstanalyses['1_1']); } private function insert_used($modelid, $analysableid, $action, $timestamp) { global $DB; $obj = new \stdClass(); $obj->modelid = $modelid; $obj->action = $action; $obj->analysableid = $analysableid; $obj->firstanalysis = $timestamp; $obj->timeanalysed = $timestamp; $obj->id = $DB->insert_record('analytics_used_analysables', $obj); } }