CampaignAdminListTest   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
eloc 22
c 1
b 0
f 0
dl 0
loc 39
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A testSchema() 0 37 1
1
<?php
2
3
namespace SilverStripe\CampaignAdmin\Tests;
4
5
use SilverStripe\CampaignAdmin\CampaignAdminList;
6
use SilverStripe\Control\Controller;
7
use SilverStripe\Dev\SapphireTest;
8
use SilverStripe\Forms\FieldList;
9
use SilverStripe\Forms\Form;
10
11
class CampaignAdminListTest extends SapphireTest
12
{
13
    public function testSchema()
14
    {
15
        $fields = new FieldList(
16
            $changesets = CampaignAdminList::create('ChangeSets')
17
        );
18
        $actions = new FieldList();
19
        Form::create(new Controller(), 'EditForm', $fields, $actions);
20
21
        $schema = $changesets->getSchemaData();
22
23
        // Check endpoint urls
24
        $this->assertEquals('admin/campaigns/sets', $schema['data']['collectionReadEndpoint']['url']);
25
        $this->assertEquals('admin/campaigns/set/:id', $schema['data']['itemReadEndpoint']['url']);
26
        $this->assertEquals('admin/campaigns/set/:id', $schema['data']['itemUpdateEndpoint']['url']);
27
        $this->assertEquals('admin/campaigns/set/:id', $schema['data']['itemCreateEndpoint']['url']);
28
        $this->assertEquals('admin/campaigns/set/:id', $schema['data']['itemDeleteEndpoint']['url']);
29
        $this->assertEquals('admin/campaigns/schema/DetailEditForm', $schema['data']['editFormSchemaEndpoint']);
30
31
        // Check summary fields
32
        $this->assertEquals([
33
            [
34
                'field' => 'Name',
35
                'name' => 'Title',
36
            ],
37
            [
38
                'field' => 'Details',
39
                'name' => 'Items',
40
            ],
41
            [
42
                'field' => 'StateLabel',
43
                'name' => 'Status',
44
            ],
45
            [
46
                'field' => 'PublishedLabel',
47
                'name' => 'Published',
48
            ],
49
        ], $schema['data']['columns']);
50
    }
51
}
52