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
|
|
|
|