Passed
Pull Request — master (#41)
by Robbie
02:46
created

ResourceTest::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace SilverStripe\CKANRegistry\Tests\Model;
4
5
use SilverStripe\CKANRegistry\Model\Resource;
6
use SilverStripe\CKANRegistry\Service\ResourceFieldPopulator;
7
use SilverStripe\Core\Injector\Injector;
8
use SilverStripe\Dev\SapphireTest;
9
10
class ResourceTest extends SapphireTest
11
{
12
    protected static $fixture_file = 'ResourceTest.yml';
13
14
    protected function setUp()
15
    {
16
        $populator = $this->createMock(ResourceFieldPopulator::class);
17
        Injector::inst()->registerService($populator, ResourceFieldPopulator::class);
18
19
        parent::setUp();
20
    }
21
22
    public function testFieldsAndFiltersAreRemovedAfterChangingIdentifier()
23
    {
24
        /** @var Resource $resource */
25
        $resource = $this->objFromFixture(Resource::class, 'teachers');
26
27
        $this->assertGreaterThan(0, $resource->Fields()->count(), 'Fixtures should load relationships');
28
        $this->assertGreaterThan(0, $resource->Filters()->count(), 'Fixtures should load relationships');
29
30
        // Change name, relationships should be retained
31
        $resource->Name = 'Primary Teachers';
32
        $resource->write();
33
34
        $this->assertGreaterThan(0, $resource->Fields()->count(), 'Changing name should not affect relations');
35
        $this->assertGreaterThan(0, $resource->Filters()->count(), 'Changing name should not affect relations');
36
37
        // Change identifier, relationships should be removed
38
        $resource->Identifier = 'something-different';
39
        $resource->write();
40
41
        $this->assertCount(0, $resource->Fields(), 'Changing identifier should clear fields');
42
        $this->assertCount(0, $resource->Filters(), 'Changing identifier should clear filters');
43
    }
44
}
45