Proyectos de Subversion Moodle

Rev

Rev 11 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 11 Rev 1441
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));