Completed
Push — master ( 4f056b...dcf641 )
by Robbie
23s queued 11s
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\CKANRegistry\Service\ResourceFieldPopulatorInterface;
8
use SilverStripe\Core\Injector\Injector;
9
use SilverStripe\Dev\SapphireTest;
10
11
class ResourceTest extends SapphireTest
12
{
13
    protected static $fixture_file = 'ResourceTest.yml';
14
15
    protected function setUp()
16
    {
17
        $populator = $this->createMock(ResourceFieldPopulator::class);
18
        Injector::inst()->registerService($populator, ResourceFieldPopulatorInterface::class);
19
20
        parent::setUp();
21
    }
22
23
    public function testFieldsAndFiltersAreRemovedAfterChangingIdentifier()
24
    {
25
        /** @var Resource $resource */
26
        $resource = $this->objFromFixture(Resource::class, 'teachers');
27
28
        $this->assertGreaterThan(0, $resource->Fields()->count(), 'Fixtures should load relationships');
29
        $this->assertGreaterThan(0, $resource->Filters()->count(), 'Fixtures should load relationships');
30
31
        // Change name, relationships should be retained
32
        $resource->Name = 'Primary Teachers';
33
        $resource->write();
34
35
        $this->assertGreaterThan(0, $resource->Fields()->count(), 'Changing name should not affect relations');
36
        $this->assertGreaterThan(0, $resource->Filters()->count(), 'Changing name should not affect relations');
37
38
        // Change identifier, relationships should be removed
39
        $resource->Identifier = 'something-different';
40
        $resource->write();
41
42
        $this->assertCount(0, $resource->Fields(), 'Changing identifier should clear fields');
43
        $this->assertCount(0, $resource->Filters(), 'Changing identifier should clear filters');
44
    }
45
}
46