BlogPostFilterTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 3
dl 0
loc 45
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 6 1
A tearDown() 0 6 1
A testFilter() 0 19 2
1
<?php
2
3
namespace SilverStripe\Blog\Tests;
4
5
use SilverStripe\Blog\Model\Blog;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\ORM\FieldType\DBDatetime;
8
use SilverStripe\Security\Security;
9
10
/**
11
 * @mixin PHPUnit_Framework_TestCase
12
 * @coversDefaultClass \SilverStripe\Blog\Model\BlogPostFilter
13
 */
14
class BlogPostFilterTest extends SapphireTest
15
{
16
    /**
17
     * @var string
18
     */
19
    protected static $fixture_file = 'blog.yml';
20
21
    public function setUp()
22
    {
23
        parent::setUp();
24
25
        DBDatetime::set_mock_now('2013-10-10 20:00:00');
26
    }
27
28
    public function tearDown()
29
    {
30
        DBDatetime::clear_mock_now();
31
32
        parent::tearDown();
33
    }
34
35
    /**
36
     * Tests that unpublished articles are not returned
37
     * @covers ::augmentSQL
38
     */
39
    public function testFilter()
40
    {
41
        $member = Security::getCurrentUser();
42
43
        if ($member) {
44
            Security::setCurrentUser(null);
45
        }
46
47
        /**
48
         * @var Blog $blog
49
         */
50
        $blog = $this->objFromFixture(Blog::class, 'FirstBlog');
51
52
        $this->assertEquals(3, $blog->AllChildren()->Count(), 'Filtered blog posts');
53
54
        DBDatetime::set_mock_now('2020-01-01 00:00:00');
55
56
        $this->assertEquals(5, $blog->AllChildren()->Count(), 'Unfiltered blog posts');
57
    }
58
}
59