Línea 31... |
Línea 31... |
31 |
*
|
31 |
*
|
32 |
* @package mod_forum
|
32 |
* @package mod_forum
|
33 |
* @copyright 2019 Ryan Wyllie <ryan@moodle.com>
|
33 |
* @copyright 2019 Ryan Wyllie <ryan@moodle.com>
|
34 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
34 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
35 |
*/
|
35 |
*/
|
36 |
class vaults_discussion_list_test extends \advanced_testcase {
|
36 |
final class vaults_discussion_list_test extends \advanced_testcase {
|
37 |
// Make use of the test generator trait.
|
37 |
// Make use of the test generator trait.
|
38 |
use mod_forum_tests_generator_trait;
|
38 |
use mod_forum_tests_generator_trait;
|
Línea 39... |
Línea 39... |
39 |
|
39 |
|
40 |
/** @var \mod_forum\local\vaults\discussion_list */
|
40 |
/** @var \mod_forum\local\vaults\discussion_list */
|
Línea 41... |
Línea 41... |
41 |
private $vault;
|
41 |
private $vault;
|
42 |
|
42 |
|
43 |
/**
|
43 |
/**
|
44 |
* Set up function for tests.
|
44 |
* Set up function for tests.
|
- |
|
45 |
*/
|
45 |
*/
|
46 |
public function setUp(): void {
|
46 |
public function setUp(): void {
|
47 |
parent::setUp();
|
47 |
$vaultfactory = \mod_forum\local\container::get_vault_factory();
|
48 |
$vaultfactory = \mod_forum\local\container::get_vault_factory();
|
Línea 48... |
Línea 49... |
48 |
$this->vault = $vaultfactory->get_discussions_in_forum_vault();
|
49 |
$this->vault = $vaultfactory->get_discussions_in_forum_vault();
|
Línea 255... |
Línea 256... |
255 |
self::setUser($user);
|
256 |
self::setUser($user);
|
256 |
$course = $datagenerator->create_course();
|
257 |
$course = $datagenerator->create_course();
|
257 |
$forum = $datagenerator->create_module('forum', ['course' => $course->id]);
|
258 |
$forum = $datagenerator->create_module('forum', ['course' => $course->id]);
|
258 |
$this->getDataGenerator()->enrol_user($user->id, $course->id, null, 'manual');
|
259 |
$this->getDataGenerator()->enrol_user($user->id, $course->id, null, 'manual');
|
Línea 259... |
Línea 260... |
259 |
|
260 |
|
260 |
$this->assertEquals([], $vault->get_from_forum_id($forum->id, true, true,
|
261 |
$this->assertEquals([], $vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, $user->id,
|
Línea 261... |
Línea 262... |
261 |
null, 0, 0, $user));
|
262 |
null, 0, 0));
|
262 |
|
263 |
|
263 |
$now = time();
|
264 |
$now = time();
|
264 |
[$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => 1]);
|
265 |
[$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => $now + 1]);
|
- |
|
266 |
[$discussion2, $post2] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 9, 'timemodified' => $now + 2]);
|
- |
|
267 |
[$hiddendiscussion, $post3] = $this->helper_post_to_forum(
|
- |
|
268 |
$forum,
|
- |
|
269 |
$user,
|
265 |
[$discussion2, $post2] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 9, 'timemodified' => 2]);
|
270 |
['timestart' => $now + 10, 'timemodified' => $now + 3]
|
266 |
[$hiddendiscussion, $post3] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now + 10, 'timemodified' => 3]);
|
271 |
);
|
267 |
[$groupdiscussion1, $post4] = $this->helper_post_to_forum(
|
272 |
[$groupdiscussion1, $post4] = $this->helper_post_to_forum(
|
268 |
$forum,
|
273 |
$forum,
|
269 |
$user,
|
274 |
$user,
|
270 |
['timestart' => $now - 8, 'timemodified' => 4, 'groupid' => 1]
|
275 |
['timestart' => $now - 8, 'timemodified' => $now + 4, 'groupid' => 1]
|
271 |
);
|
276 |
);
|
272 |
[$groupdiscussion2, $post5] = $this->helper_post_to_forum(
|
277 |
[$groupdiscussion2, $post5] = $this->helper_post_to_forum(
|
273 |
$forum,
|
278 |
$forum,
|
274 |
$user,
|
279 |
$user,
|
275 |
['timestart' => $now - 7, 'timemodified' => 5, 'groupid' => 2]
|
280 |
['timestart' => $now - 7, 'timemodified' => $now + 5, 'groupid' => 2]
|
276 |
);
|
281 |
);
|
277 |
[$hiddengroupdiscussion, $post6] = $this->helper_post_to_forum(
|
282 |
[$hiddengroupdiscussion, $post6] = $this->helper_post_to_forum(
|
278 |
$forum,
|
283 |
$forum,
|
279 |
$user,
|
284 |
$user,
|
Línea 280... |
Línea 285... |
280 |
['timestart' => $now + 11, 'timemodified' => 6, 'groupid' => 3]
|
285 |
['timestart' => $now + 11, 'timemodified' => $now + 6, 'groupid' => 3]
|
281 |
);
|
286 |
);
|
282 |
|
287 |
|
Línea 353... |
Línea 358... |
353 |
|
358 |
|
354 |
// Sort discussions by last post DESC.
|
359 |
// Sort discussions by last post DESC.
|
355 |
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true,
|
360 |
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true,
|
356 |
$user->id, $vault::SORTORDER_LASTPOST_DESC, 0, 0));
|
361 |
$user->id, $vault::SORTORDER_LASTPOST_DESC, 0, 0));
|
357 |
$this->assertCount(6, $summaries);
|
362 |
$this->assertCount(6, $summaries);
|
358 |
$this->assertEquals($groupdiscussion2->id, $summaries[0]->get_discussion()->get_id());
|
363 |
$this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id());
|
359 |
$this->assertEquals($groupdiscussion1->id, $summaries[1]->get_discussion()->get_id());
|
364 |
$this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id());
|
360 |
$this->assertEquals($hiddendiscussion->id, $summaries[2]->get_discussion()->get_id());
|
365 |
$this->assertEquals($groupdiscussion2->id, $summaries[2]->get_discussion()->get_id());
|
361 |
$this->assertEquals($hiddengroupdiscussion->id, $summaries[3]->get_discussion()->get_id());
|
366 |
$this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id());
|
362 |
$this->assertEquals($discussion2->id, $summaries[4]->get_discussion()->get_id());
|
367 |
$this->assertEquals($discussion2->id, $summaries[4]->get_discussion()->get_id());
|
Línea 363... |
Línea 368... |
363 |
$this->assertEquals($discussion1->id, $summaries[5]->get_discussion()->get_id());
|
368 |
$this->assertEquals($discussion1->id, $summaries[5]->get_discussion()->get_id());
|
364 |
|
369 |
|
365 |
// Sort discussions by last post ASC.
|
370 |
// Sort discussions by last post ASC.
|
366 |
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true,
|
371 |
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true,
|
367 |
$user->id, $vault::SORTORDER_LASTPOST_ASC, 0, 0));
|
372 |
$user->id, $vault::SORTORDER_LASTPOST_ASC, 0, 0));
|
368 |
$this->assertCount(6, $summaries);
|
373 |
$this->assertCount(6, $summaries);
|
369 |
$this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id());
|
374 |
$this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id());
|
370 |
$this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id());
|
375 |
$this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id());
|
371 |
$this->assertEquals($hiddengroupdiscussion->id, $summaries[2]->get_discussion()->get_id());
|
376 |
$this->assertEquals($groupdiscussion1->id, $summaries[2]->get_discussion()->get_id());
|
372 |
$this->assertEquals($hiddendiscussion->id, $summaries[3]->get_discussion()->get_id());
|
377 |
$this->assertEquals($groupdiscussion2->id, $summaries[3]->get_discussion()->get_id());
|
Línea 373... |
Línea 378... |
373 |
$this->assertEquals($groupdiscussion1->id, $summaries[4]->get_discussion()->get_id());
|
378 |
$this->assertEquals($hiddendiscussion->id, $summaries[4]->get_discussion()->get_id());
|
374 |
$this->assertEquals($groupdiscussion2->id, $summaries[5]->get_discussion()->get_id());
|
379 |
$this->assertEquals($hiddengroupdiscussion->id, $summaries[5]->get_discussion()->get_id());
|
375 |
|
380 |
|
376 |
// Sort discussions by replies DESC.
|
381 |
// Sort discussions by replies DESC.
|
Línea 419... |
Línea 424... |
419 |
|
424 |
|
420 |
// Sort discussions when there is a pinned discussion.
|
425 |
// Sort discussions when there is a pinned discussion.
|
421 |
$this->pin_discussion($discussion1);
|
426 |
$this->pin_discussion($discussion1);
|
Línea 422... |
Línea 427... |
422 |
$this->pin_discussion($hiddendiscussion);
|
427 |
$this->pin_discussion($hiddendiscussion);
|
423 |
|
428 |
|
424 |
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null,
|
429 |
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null,
|
425 |
$vault::SORTORDER_LASTPOST_DESC, 0, 0));
|
430 |
$vault::SORTORDER_LASTPOST_DESC, 0, 0));
|
426 |
$this->assertCount(6, $summaries);
|
431 |
$this->assertCount(6, $summaries);
|
427 |
$this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id());
|
432 |
$this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id());
|
428 |
$this->assertEquals($discussion1->id, $summaries[1]->get_discussion()->get_id());
|
433 |
$this->assertEquals($discussion1->id, $summaries[1]->get_discussion()->get_id());
|
429 |
$this->assertEquals($groupdiscussion2->id, $summaries[2]->get_discussion()->get_id());
|
434 |
$this->assertEquals($hiddengroupdiscussion->id, $summaries[2]->get_discussion()->get_id());
|
430 |
$this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id());
|
435 |
$this->assertEquals($groupdiscussion2->id, $summaries[3]->get_discussion()->get_id());
|
Línea 431... |
Línea 436... |
431 |
$this->assertEquals($hiddengroupdiscussion->id, $summaries[4]->get_discussion()->get_id());
|
436 |
$this->assertEquals($groupdiscussion1->id, $summaries[4]->get_discussion()->get_id());
|
432 |
$this->assertEquals($discussion2->id, $summaries[5]->get_discussion()->get_id());
|
437 |
$this->assertEquals($discussion2->id, $summaries[5]->get_discussion()->get_id());
|
433 |
|
438 |
|
434 |
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null,
|
439 |
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null,
|
435 |
$vault::SORTORDER_LASTPOST_ASC, 0, 0));
|
440 |
$vault::SORTORDER_LASTPOST_ASC, 0, 0));
|
436 |
$this->assertCount(6, $summaries);
|
441 |
$this->assertCount(6, $summaries);
|
437 |
$this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id());
|
442 |
$this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id());
|
438 |
$this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id());
|
443 |
$this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id());
|
439 |
$this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id());
|
444 |
$this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id());
|
Línea 440... |
Línea 445... |
440 |
$this->assertEquals($hiddengroupdiscussion->id, $summaries[3]->get_discussion()->get_id());
|
445 |
$this->assertEquals($groupdiscussion1->id, $summaries[3]->get_discussion()->get_id());
|
441 |
$this->assertEquals($groupdiscussion1->id, $summaries[4]->get_discussion()->get_id());
|
446 |
$this->assertEquals($groupdiscussion2->id, $summaries[4]->get_discussion()->get_id());
|
442 |
$this->assertEquals($groupdiscussion2->id, $summaries[5]->get_discussion()->get_id());
|
447 |
$this->assertEquals($hiddengroupdiscussion->id, $summaries[5]->get_discussion()->get_id());
|
443 |
|
448 |
|
444 |
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null,
|
449 |
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null,
|
445 |
$vault::SORTORDER_REPLIES_DESC, 0, 0));
|
450 |
$vault::SORTORDER_REPLIES_DESC, 0, 0));
|