From 2d9536f98078ed6e204626a44cb0215b2e290e4b Mon Sep 17 00:00:00 2001 From: Anupama Sarjoshi Date: Fri, 17 Mar 2023 17:20:27 +0000 Subject: [PATCH] MDL-77659 core_reportbuilder: fix user profile fields phpunit tests --- .../helpers/user_profile_fields_test.php | 47 +++++++++++++++---- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/reportbuilder/tests/local/helpers/user_profile_fields_test.php b/reportbuilder/tests/local/helpers/user_profile_fields_test.php index 6d2ff1e253a..2fcc0d63e78 100644 --- a/reportbuilder/tests/local/helpers/user_profile_fields_test.php +++ b/reportbuilder/tests/local/helpers/user_profile_fields_test.php @@ -82,38 +82,54 @@ class user_profile_fields_test extends core_reportbuilder_testcase { public function test_get_columns(): void { $this->resetAfterTest(); + $userentity = new user(); + $useralias = $userentity->get_table_alias('user'); + + // Get pre-existing user profile fields. + $initialuserprofilefields = new user_profile_fields("$useralias.id", $userentity->get_entity_name()); + $initialcolumns = $initialuserprofilefields->get_columns(); + $initialcolumntitles = array_map(static function(column $column): string { + return $column->get_title(); + }, $initialcolumns); + $initialcolumntypes = array_map(static function(column $column): int { + return $column->get_type(); + }, $initialcolumns); + + // Add new custom profile fields. $userprofilefields = $this->generate_userprofilefields(); $columns = $userprofilefields->get_columns(); - $this->assertCount(6, $columns); + // Columns count should be equal to start + 6. + $this->assertCount(count($initialcolumns) + 6, $columns); $this->assertContainsOnlyInstancesOf(column::class, $columns); // Assert column titles. $columntitles = array_map(static function(column $column): string { return $column->get_title(); }, $columns); - $this->assertEquals([ + $expectedcolumntitles = array_merge($initialcolumntitles, [ 'Checkbox field', 'Date field', 'Menu field', 'MSN ID', 'Text field', 'Textarea field', - ], $columntitles); + ]); + $this->assertEquals($expectedcolumntitles, $columntitles); // Assert column types. $columntypes = array_map(static function(column $column): int { return $column->get_type(); }, $columns); - $this->assertEquals([ + $expectedcolumntypes = array_merge($initialcolumntypes, [ column::TYPE_BOOLEAN, column::TYPE_TIMESTAMP, column::TYPE_TEXT, column::TYPE_TEXT, column::TYPE_TEXT, column::TYPE_LONGTEXT, - ], $columntypes); - + ]); + $this->assertEquals($expectedcolumntypes, $columntypes); } /** @@ -152,24 +168,37 @@ class user_profile_fields_test extends core_reportbuilder_testcase { public function test_get_filters(): void { $this->resetAfterTest(); + $userentity = new user(); + $useralias = $userentity->get_table_alias('user'); + + // Get pre-existing user profile fields. + $initialuserprofilefields = new user_profile_fields("$useralias.id", $userentity->get_entity_name()); + $initialfilters = $initialuserprofilefields->get_filters(); + $initialfilterheaders = array_map(static function(filter $filter): string { + return $filter->get_header(); + }, $initialfilters); + + // Add new custom profile fields. $userprofilefields = $this->generate_userprofilefields(); $filters = $userprofilefields->get_filters(); - $this->assertCount(6, $filters); + // Filters count should be equal to start + 6. + $this->assertCount(count($initialfilters) + 6, $filters); $this->assertContainsOnlyInstancesOf(filter::class, $filters); // Assert filter headers. $filterheaders = array_map(static function(filter $filter): string { return $filter->get_header(); }, $filters); - $this->assertEquals([ + $expectedfilterheaders = array_merge($initialfilterheaders, [ 'Checkbox field', 'Date field', 'Menu field', 'MSN ID', 'Text field', 'Textarea field', - ], $filterheaders); + ]); + $this->assertEquals($expectedfilterheaders, $filterheaders); } /**