DiscountFactoryTest::testGetValidArray()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 6
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace SilverCommerce\Discounts\Tests;
4
5
use SilverStripe\Dev\SapphireTest;
6
use SilverStripe\ORM\FieldType\DBDatetime;
7
use SilverCommerce\Discounts\DiscountFactory;
8
use SilverStripe\ORM\DataList;
9
10
class DiscountFactoryTest extends SapphireTest
11
{
12
    /**
13
     * Add some scaffold order records
14
     *
15
     * @var string
16
     */
17
    protected static $fixture_file = 'Discounts.yml';
18
19
    public function testgetByIdent()
20
    {
21
        DBDatetime::set_mock_now('2018-05-17 00:00:00');
22
        $code = "10percent";
23
24
        $discount = DiscountFactory::create()->getByIdent($code);
25
        $this->assertNotEmpty($discount);
26
        $this->assertEquals($code, $discount->Code);
27
28
        // Check past
29
        DBDatetime::set_mock_now('2018-01-15 00:00:00');
30
31
        $discount = DiscountFactory::create()->getByIdent($code);
32
        $this->assertEmpty($discount);
33
34
        // Ignore validity
35
        $discount = DiscountFactory::create()->getByIdent($code, false);
36
        $this->assertNotEmpty($discount);
37
        $this->assertEquals($code, $discount->Code);
38
39
        // Check future
40
        DBDatetime::set_mock_now('2018-09-15 00:00:00');
41
42
        $discount = DiscountFactory::create()->getByIdent($code);
43
        $this->assertEmpty($discount);
44
45
        // Ignore validity
46
        $discount = DiscountFactory::create()->getByIdent($code, false);
47
        $this->assertNotEmpty($discount);
48
        $this->assertEquals($code, $discount->Code);
49
    }
50
51
    /**
52
     * Test that valid discounts are displayed
53
     */
54
    public function testGetValid()
55
    {
56
        DBDatetime::set_mock_now('2018-05-17 00:00:00');
57
        $results = DiscountFactory::getValid();
58
59
        $this->assertEquals(3, $results->count());
60
        $this->assertTrue($results instanceof DataList);
61
62
        DBDatetime::set_mock_now('2018-01-15 00:00:00');
63
        $results = DiscountFactory::getValid();
64
65
        $this->assertEquals(1, $results->count());
66
        $this->assertTrue($results instanceof DataList);
67
    }
68
69
    /**
70
     * Test that valid discounts are displayed
71
     */
72
    public function testGetValidArray()
73
    {
74
        DBDatetime::set_mock_now('2018-05-17 00:00:00');
75
        $results = DiscountFactory::getValidArray();
76
77
        $this->assertTrue(is_array($results));
78
    }
79
}
80