From cefd780fa3afac7240181df44862366efe4f399c Mon Sep 17 00:00:00 2001
From: Jun Pataleta <jun@moodle.com>
Date: Mon, 3 Apr 2017 13:48:58 +0800
Subject: [PATCH] MDL-58462 mod_data: Generate users with different names

* Give test users different first and last names.
* Declare class member variables instead of dynamically assigning them.
* Rename member variable $data to $database since it conflicts with the
  private member variable PHPUnit_Framework_TestCase::$data.
* Replace setExpectedException usage with expectException().
---
 mod/data/tests/externallib_test.php | 187 +++++++++++++++++-----------
 1 file changed, 113 insertions(+), 74 deletions(-)

diff --git a/mod/data/tests/externallib_test.php b/mod/data/tests/externallib_test.php
index df6a65b9574..1b61d09bf49 100644
--- a/mod/data/tests/externallib_test.php
+++ b/mod/data/tests/externallib_test.php
@@ -41,6 +41,45 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
  */
 class mod_data_external_testcase extends externallib_advanced_testcase {
 
+    /** @var stdClass Test module context. */
+    protected $context;
+
+    /** @var stdClass Test course.*/
+    protected $course;
+
+    /** @var stdClass Test course module. */
+    protected $cm;
+
+    /** @var  stdClass Test database activity. */
+    protected $database;
+
+    /** @var stdClass Test group 1. */
+    protected $group1;
+
+    /** @var stdClass Test group 2. */
+    protected $group2;
+
+    /** @var stdClass Test student 1. */
+    protected $student1;
+
+    /** @var stdClass Test student 2. */
+    protected $student2;
+
+    /** @var stdClass Test student 3. */
+    protected $student3;
+
+    /** @var stdClass Test student 4. */
+    protected $student4;
+
+    /** @var stdClass Student role. */
+    protected $studentrole;
+
+    /** @var stdClass Test teacher. */
+    protected $teacher;
+
+    /** @var stdClass Teacher role. */
+    protected $teacherrole;
+
     /**
      * Set up for every test
      */
@@ -54,15 +93,15 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $course->groupmode = SEPARATEGROUPS;
         $course->groupmodeforce = true;
         $this->course = $this->getDataGenerator()->create_course($course);
-        $this->data = $this->getDataGenerator()->create_module('data', array('course' => $this->course->id));
-        $this->context = context_module::instance($this->data->cmid);
-        $this->cm = get_coursemodule_from_instance('data', $this->data->id);
+        $this->database = $this->getDataGenerator()->create_module('data', array('course' => $this->course->id));
+        $this->context = context_module::instance($this->database->cmid);
+        $this->cm = get_coursemodule_from_instance('data', $this->database->id);
 
         // Create users.
-        $this->student1 = self::getDataGenerator()->create_user();
-        $this->student2 = self::getDataGenerator()->create_user();
-        $this->student3 = self::getDataGenerator()->create_user();
-        $this->teacher = self::getDataGenerator()->create_user();
+        $this->student1 = self::getDataGenerator()->create_user(['firstname' => 'Olivia', 'lastname' => 'Smith']);
+        $this->student2 = self::getDataGenerator()->create_user(['firstname' => 'Ezra', 'lastname' => 'Johnson']);
+        $this->student3 = self::getDataGenerator()->create_user(['firstname' => 'Amelia', 'lastname' => 'Williams']);
+        $this->teacher = self::getDataGenerator()->create_user(['firstname' => 'Asher', 'lastname' => 'Jones']);
 
         // Users enrolments.
         $this->studentrole = $DB->get_record('role', array('shortname' => 'student'));
@@ -213,7 +252,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
     public function test_view_database_invalid_id() {
 
         // Test invalid instance id.
-        $this->setExpectedException('moodle_exception');
+        $this->expectException('moodle_exception');
         mod_data_external::view_database(0);
     }
 
@@ -225,7 +264,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $usernotenrolled = self::getDataGenerator()->create_user();
         $this->setUser($usernotenrolled);
 
-        $this->setExpectedException('moodle_exception');
+        $this->expectException('moodle_exception');
         mod_data_external::view_database(0);
     }
 
@@ -238,7 +277,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         assign_capability('mod/data:viewpage', CAP_PROHIBIT, $this->studentrole->id, $this->context->id);
         accesslib_clear_all_caches_for_unit_testing();
 
-        $this->setExpectedException('moodle_exception');
+        $this->expectException('moodle_exception');
         mod_data_external::view_database(0);
     }
 
@@ -253,7 +292,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         // Trigger and capture the event.
         $sink = $this->redirectEvents();
 
-        $result = mod_data_external::view_database($this->data->id);
+        $result = mod_data_external::view_database($this->database->id);
         $result = external_api::clean_returnvalue(mod_data_external::view_database_returns(), $result);
 
         $events = $sink->get_events();
@@ -275,15 +314,15 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
     public function test_get_data_access_information_student() {
         global $DB;
         // Modify the database to add access restrictions.
-        $this->data->timeavailablefrom = time() + DAYSECS;
-        $this->data->requiredentries = 2;
-        $this->data->requiredentriestoview = 2;
-        $DB->update_record('data', $this->data);
+        $this->database->timeavailablefrom = time() + DAYSECS;
+        $this->database->requiredentries = 2;
+        $this->database->requiredentriestoview = 2;
+        $DB->update_record('data', $this->database);
 
         // Test user with full capabilities.
         $this->setUser($this->student1);
 
-        $result = mod_data_external::get_data_access_information($this->data->id);
+        $result = mod_data_external::get_data_access_information($this->database->id);
         $result = external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
 
         $this->assertEquals($this->group1->id, $result['groupid']);
@@ -294,8 +333,8 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $this->assertFalse($result['timeavailable']);
         $this->assertFalse($result['inreadonlyperiod']);
         $this->assertEquals(0, $result['numentries']);
-        $this->assertEquals($this->data->requiredentries, $result['entrieslefttoadd']);
-        $this->assertEquals($this->data->requiredentriestoview, $result['entrieslefttoview']);
+        $this->assertEquals($this->database->requiredentries, $result['entrieslefttoadd']);
+        $this->assertEquals($this->database->requiredentriestoview, $result['entrieslefttoview']);
     }
 
     /**
@@ -304,15 +343,15 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
     public function test_get_data_access_information_teacher() {
         global $DB;
         // Modify the database to add access restrictions.
-        $this->data->timeavailablefrom = time() + DAYSECS;
-        $this->data->requiredentries = 2;
-        $this->data->requiredentriestoview = 2;
-        $DB->update_record('data', $this->data);
+        $this->database->timeavailablefrom = time() + DAYSECS;
+        $this->database->requiredentries = 2;
+        $this->database->requiredentriestoview = 2;
+        $DB->update_record('data', $this->database);
 
         // Test user with full capabilities.
         $this->setUser($this->teacher);
 
-        $result = mod_data_external::get_data_access_information($this->data->id);
+        $result = mod_data_external::get_data_access_information($this->database->id);
         $result = external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
 
         $this->assertEquals(0, $result['groupid']);
@@ -336,7 +375,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         global $DB;
 
         // Force approval.
-        $DB->set_field('data', 'approval', 1, array('id' => $this->data->id));
+        $DB->set_field('data', 'approval', 1, array('id' => $this->database->id));
         $generator = $this->getDataGenerator()->get_plugin_generator('mod_data');
         $fieldtypes = array('checkbox', 'date', 'menu', 'multimenu', 'number', 'radiobutton', 'text', 'textarea', 'url');
 
@@ -349,11 +388,11 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
             $record->type = $fieldtype;
             $record->required = 1;
 
-            $generator->create_field($record, $this->data);
+            $generator->create_field($record, $this->database);
             $count++;
         }
         // Get all the fields created.
-        $fields = $DB->get_records('data_fields', array('dataid' => $this->data->id), 'id');
+        $fields = $DB->get_records('data_fields', array('dataid' => $this->database->id), 'id');
 
         // Populate with contents, creating a new entry.
         $contents = array();
@@ -373,13 +412,13 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         }
 
         $this->setUser($this->student1);
-        $entry11 = $generator->create_entry($this->data, $fieldcontents, $this->group1->id);
+        $entry11 = $generator->create_entry($this->database, $fieldcontents, $this->group1->id);
         $this->setUser($this->student2);
-        $entry12 = $generator->create_entry($this->data, $fieldcontents, $this->group1->id);
-        $entry13 = $generator->create_entry($this->data, $fieldcontents, $this->group1->id);
+        $entry12 = $generator->create_entry($this->database, $fieldcontents, $this->group1->id);
+        $entry13 = $generator->create_entry($this->database, $fieldcontents, $this->group1->id);
 
         $this->setUser($this->student3);
-        $entry21 = $generator->create_entry($this->data, $fieldcontents, $this->group2->id);
+        $entry21 = $generator->create_entry($this->database, $fieldcontents, $this->group2->id);
 
         // Approve all except $entry13.
         $DB->set_field('data_records', 'approved', 1, ['id' => $entry11]);
@@ -398,7 +437,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // First of all, expect to see only my group entries (not other users in other groups ones).
         $this->setUser($this->student1);
-        $result = mod_data_external::get_entries($this->data->id);
+        $result = mod_data_external::get_entries($this->database->id);
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(2, $result['entries']);
@@ -406,14 +445,14 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $this->assertEquals($entry11, $result['entries'][0]['id']);
         $this->assertEquals($this->student1->id, $result['entries'][0]['userid']);
         $this->assertEquals($this->group1->id, $result['entries'][0]['groupid']);
-        $this->assertEquals($this->data->id, $result['entries'][0]['dataid']);
+        $this->assertEquals($this->database->id, $result['entries'][0]['dataid']);
         $this->assertEquals($entry12, $result['entries'][1]['id']);
         $this->assertEquals($this->student2->id, $result['entries'][1]['userid']);
         $this->assertEquals($this->group1->id, $result['entries'][1]['groupid']);
-        $this->assertEquals($this->data->id, $result['entries'][1]['dataid']);
+        $this->assertEquals($this->database->id, $result['entries'][1]['dataid']);
         // Other user in same group.
         $this->setUser($this->student2);
-        $result = mod_data_external::get_entries($this->data->id);
+        $result = mod_data_external::get_entries($this->database->id);
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(3, $result['entries']);  // I can see my entry not approved yet.
@@ -421,7 +460,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // Now try with the user in the second group that must see only one entry.
         $this->setUser($this->student3);
-        $result = mod_data_external::get_entries($this->data->id);
+        $result = mod_data_external::get_entries($this->database->id);
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(1, $result['entries']);
@@ -429,17 +468,17 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $this->assertEquals($entry21, $result['entries'][0]['id']);
         $this->assertEquals($this->student3->id, $result['entries'][0]['userid']);
         $this->assertEquals($this->group2->id, $result['entries'][0]['groupid']);
-        $this->assertEquals($this->data->id, $result['entries'][0]['dataid']);
+        $this->assertEquals($this->database->id, $result['entries'][0]['dataid']);
 
         // Now, as teacher we should see all (we have permissions to view all groups).
         $this->setUser($this->teacher);
-        $result = mod_data_external::get_entries($this->data->id);
+        $result = mod_data_external::get_entries($this->database->id);
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(4, $result['entries']);  // I can see the not approved one.
         $this->assertEquals(4, $result['totalcount']);
 
-        $entries = $DB->get_records('data_records', array('dataid' => $this->data->id), 'id');
+        $entries = $DB->get_records('data_records', array('dataid' => $this->database->id), 'id');
         $this->assertCount(4, $entries);
         $count = 0;
         foreach ($entries as $entry) {
@@ -449,7 +488,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // Basic test passing the parameter (instead having to calculate it).
         $this->setUser($this->student1);
-        $result = mod_data_external::get_entries($this->data->id, $this->group1->id);
+        $result = mod_data_external::get_entries($this->database->id, $this->group1->id);
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(2, $result['entries']);
@@ -457,7 +496,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // Test ordering (reverse).
         $this->setUser($this->student1);
-        $result = mod_data_external::get_entries($this->data->id, $this->group1->id, false, null, 'DESC');
+        $result = mod_data_external::get_entries($this->database->id, $this->group1->id, false, null, 'DESC');
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(2, $result['entries']);
@@ -466,14 +505,14 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // Test pagination.
         $this->setUser($this->student1);
-        $result = mod_data_external::get_entries($this->data->id, $this->group1->id, false, null, null, 0, 1);
+        $result = mod_data_external::get_entries($this->database->id, $this->group1->id, false, null, null, 0, 1);
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(1, $result['entries']);
         $this->assertEquals(2, $result['totalcount']);
         $this->assertEquals($entry11, $result['entries'][0]['id']);
 
-        $result = mod_data_external::get_entries($this->data->id, $this->group1->id, false, null, null, 1, 1);
+        $result = mod_data_external::get_entries($this->database->id, $this->group1->id, false, null, null, 1, 1);
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(1, $result['entries']);
@@ -481,8 +520,8 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $this->assertEquals($entry12, $result['entries'][0]['id']);
 
         // Now test the return contents.
-        data_generate_default_template($this->data, 'listtemplate', 0, false, true); // Generate a default list template.
-        $result = mod_data_external::get_entries($this->data->id, $this->group1->id, true, null, null, 0, 2);
+        data_generate_default_template($this->database, 'listtemplate', 0, false, true); // Generate a default list template.
+        $result = mod_data_external::get_entries($this->database->id, $this->group1->id, true, null, null, 0, 2);
         $result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
         $this->assertCount(0, $result['warnings']);
         $this->assertCount(2, $result['entries']);
@@ -539,7 +578,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $this->assertTrue($result['entry']['canmanageentry']); // Is mine, I can manage it.
 
         // Retrieve contents.
-        data_generate_default_template($this->data, 'singletemplate', 0, false, true);
+        data_generate_default_template($this->database, 'singletemplate', 0, false, true);
         $result = mod_data_external::get_entry($entry11, true);
         $result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
         $this->assertCount(0, $result['warnings']);
@@ -610,11 +649,11 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         list($entry11, $entry12, $entry13, $entry21) = self::populate_database_with_entries();
 
         $this->setUser($this->student1);
-        $result = mod_data_external::get_fields($this->data->id);
+        $result = mod_data_external::get_fields($this->database->id);
         $result = external_api::clean_returnvalue(mod_data_external::get_fields_returns(), $result);
 
         // Basically compare we retrieve all the fields and the correct values.
-        $fields = $DB->get_records('data_fields', array('dataid' => $this->data->id), 'id');
+        $fields = $DB->get_records('data_fields', array('dataid' => $this->database->id), 'id');
         foreach ($result['fields'] as $field) {
             $this->assertEquals($field, (array) $fields[$field['id']]);
         }
@@ -629,14 +668,14 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // First do a normal text search as student 1. I should see my two group entries.
         $this->setUser($this->student1);
-        $result = mod_data_external::search_entries($this->data->id, 0, false, 'text');
+        $result = mod_data_external::search_entries($this->database->id, 0, false, 'text');
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(2, $result['entries']);
         $this->assertEquals(2, $result['totalcount']);
 
         // Now as the other student I should receive my not approved entry. Apply ordering here.
         $this->setUser($this->student2);
-        $result = mod_data_external::search_entries($this->data->id, 0, false, 'text', [], DATA_APPROVED, 'ASC');
+        $result = mod_data_external::search_entries($this->database->id, 0, false, 'text', [], DATA_APPROVED, 'ASC');
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(3, $result['entries']);
         $this->assertEquals(3, $result['totalcount']);
@@ -645,7 +684,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // Now as the other group student.
         $this->setUser($this->student3);
-        $result = mod_data_external::search_entries($this->data->id, 0, false, 'text');
+        $result = mod_data_external::search_entries($this->database->id, 0, false, 'text');
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(1, $result['entries']);
         $this->assertEquals(1, $result['totalcount']);
@@ -653,14 +692,14 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // Same normal text search as teacher.
         $this->setUser($this->teacher);
-        $result = mod_data_external::search_entries($this->data->id, 0, false, 'text');
+        $result = mod_data_external::search_entries($this->database->id, 0, false, 'text');
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(4, $result['entries']);  // I can see all groups and non approved.
         $this->assertEquals(4, $result['totalcount']);
 
         // Pagination.
         $this->setUser($this->teacher);
-        $result = mod_data_external::search_entries($this->data->id, 0, false, 'text', [], DATA_TIMEADDED, 'ASC', 0, 2);
+        $result = mod_data_external::search_entries($this->database->id, 0, false, 'text', [], DATA_TIMEADDED, 'ASC', 0, 2);
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(2, $result['entries']);  // Only 2 per page.
         $this->assertEquals(4, $result['totalcount']);
@@ -670,7 +709,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $advsearch = [
             ['name' => 'fn', 'value' => json_encode($this->student2->firstname)]
         ];
-        $result = mod_data_external::search_entries($this->data->id, 0, false, '', $advsearch);
+        $result = mod_data_external::search_entries($this->database->id, 0, false, '', $advsearch);
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(1, $result['entries']);
         $this->assertEquals(1, $result['totalcount']);
@@ -681,7 +720,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         $advsearch = [
             ['name' => 'f_' . $field->id , 'value' => 'sampleurl']
         ];
-        $result = mod_data_external::search_entries($this->data->id, 0, false, '', $advsearch);
+        $result = mod_data_external::search_entries($this->database->id, 0, false, '', $advsearch);
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(2, $result['entries']);  // Found two entries matching this.
         $this->assertEquals(2, $result['totalcount']);
@@ -693,7 +732,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
             ['name' => 'f_' . $field2->id , 'value' => '12345'],
             ['name' => 'ln', 'value' => json_encode($this->student2->lastname)]
         ];
-        $result = mod_data_external::search_entries($this->data->id, 0, false, '', $advsearch);
+        $result = mod_data_external::search_entries($this->database->id, 0, false, '', $advsearch);
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(1, $result['entries']);  // Only one matching everything.
         $this->assertEquals(1, $result['totalcount']);
@@ -704,7 +743,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
             ['name' => 'f_' . $field->id , 'value' => 'sampleurl'],
             ['name' => 'f_' . $field2->id , 'value' => '98780333'], // Non existent number.
         ];
-        $result = mod_data_external::search_entries($this->data->id, 0, false, '', $advsearch);
+        $result = mod_data_external::search_entries($this->database->id, 0, false, '', $advsearch);
         $result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
         $this->assertCount(0, $result['entries']);  // Only one matching everything.
         $this->assertEquals(0, $result['totalcount']);
@@ -788,9 +827,9 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         global $DB;
         list($entry11, $entry12, $entry13, $entry21) = self::populate_database_with_entries();
         // Set a time period.
-        $this->data->timeviewfrom = time() - HOURSECS;
-        $this->data->timeviewto = time() + HOURSECS;
-        $DB->update_record('data', $this->data);
+        $this->database->timeviewfrom = time() - HOURSECS;
+        $this->database->timeviewto = time() + HOURSECS;
+        $DB->update_record('data', $this->database);
 
         $this->setUser($this->student1);
         $this->expectException('moodle_exception');
@@ -819,7 +858,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         $this->setUser($this->student1);
         $newentrydata = [];
-        $fields = $DB->get_records('data_fields', array('dataid' => $this->data->id), 'id');
+        $fields = $DB->get_records('data_fields', array('dataid' => $this->database->id), 'id');
         // Prepare the new entry data.
         foreach ($fields as $field) {
             $subfield = $value = '';
@@ -883,7 +922,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
                 'value' => json_encode($value)
             ];
         }
-        $result = mod_data_external::add_entry($this->data->id, 0, $newentrydata);
+        $result = mod_data_external::add_entry($this->database->id, 0, $newentrydata);
         $result = external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
 
         $newentryid = $result['newentryid'];
@@ -940,7 +979,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         // Now, try to add another entry but removing some required data.
         unset($newentrydata[0]);
-        $result = mod_data_external::add_entry($this->data->id, 0, $newentrydata);
+        $result = mod_data_external::add_entry($this->database->id, 0, $newentrydata);
         $result = external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
         $this->assertEquals(0, $result['newentryid']);
         $this->assertCount(0, $result['generalnotifications']);
@@ -953,7 +992,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
      * Test add_entry empty_form.
      */
     public function test_add_entry_empty_form() {
-        $result = mod_data_external::add_entry($this->data->id, 0, []);
+        $result = mod_data_external::add_entry($this->database->id, 0, []);
         $result = external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
         $this->assertEquals(0, $result['newentryid']);
         $this->assertCount(1, $result['generalnotifications']);
@@ -968,14 +1007,14 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         global $DB;
         list($entry11, $entry12, $entry13, $entry21) = self::populate_database_with_entries();
         // Set a time period.
-        $this->data->timeviewfrom = time() - HOURSECS;
-        $this->data->timeviewto = time() + HOURSECS;
-        $DB->update_record('data', $this->data);
+        $this->database->timeviewfrom = time() - HOURSECS;
+        $this->database->timeviewto = time() + HOURSECS;
+        $DB->update_record('data', $this->database);
 
         $this->setUser($this->student1);
         $this->expectExceptionMessage(get_string('noaccess', 'data'));
         $this->expectException('moodle_exception');
-        mod_data_external::add_entry($this->data->id, 0, []);
+        mod_data_external::add_entry($this->database->id, 0, []);
     }
 
     /**
@@ -985,13 +1024,13 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         global $DB;
         list($entry11, $entry12, $entry13, $entry21) = self::populate_database_with_entries();
         // Set a time period.
-        $this->data->maxentries = 1;
-        $DB->update_record('data', $this->data);
+        $this->database->maxentries = 1;
+        $DB->update_record('data', $this->database);
 
         $this->setUser($this->student1);
         $this->expectExceptionMessage(get_string('noaccess', 'data'));
         $this->expectException('moodle_exception');
-        mod_data_external::add_entry($this->data->id, 0, []);
+        mod_data_external::add_entry($this->database->id, 0, []);
     }
 
     /**
@@ -1004,7 +1043,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
 
         $this->setUser($this->student1);
         $newentrydata = [];
-        $fields = $DB->get_records('data_fields', array('dataid' => $this->data->id), 'id');
+        $fields = $DB->get_records('data_fields', array('dataid' => $this->database->id), 'id');
         // Prepare the new entry data.
         foreach ($fields as $field) {
             $subfield = $value = '';
@@ -1158,9 +1197,9 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
         global $DB;
         list($entry11, $entry12, $entry13, $entry21) = self::populate_database_with_entries();
         // Set a time period.
-        $this->data->timeviewfrom = time() - HOURSECS;
-        $this->data->timeviewto = time() + HOURSECS;
-        $DB->update_record('data', $this->data);
+        $this->database->timeviewfrom = time() - HOURSECS;
+        $this->database->timeviewto = time() + HOURSECS;
+        $DB->update_record('data', $this->database);
 
         $this->setUser($this->student1);
         $this->expectExceptionMessage(get_string('noaccess', 'data'));