CreateFolderMutationCreatorTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 52
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 6 1
A testItCreatesFolder() 0 15 1
A tearDown() 0 6 1
A testItRestrictsCreateFolderByCanCreate() 0 14 1
1
<?php
2
3
namespace SilverStripe\AssetAdmin\Tests\GraphQL;
4
5
use SilverStripe\AssetAdmin\Tests\Controller\AssetAdminTest\FileExtension;
6
use SilverStripe\AssetAdmin\Tests\Controller\AssetAdminTest\FolderExtension;
7
use SilverStripe\Assets\File;
8
use SilverStripe\Assets\Folder;
9
use SilverStripe\Dev\SapphireTest;
10
use GraphQL\Type\Definition\ResolveInfo;
11
use SilverStripe\AssetAdmin\GraphQL\CreateFolderMutationCreator;
12
13
class CreateFolderMutationCreatorTest extends SapphireTest
14
{
15
16
    protected static $fixture_file = '../fixtures.yml';
17
18
    protected function setUp() : void
19
    {
20
        parent::setUp();
21
22
        File::add_extension(FileExtension::class);
23
        Folder::add_extension(FolderExtension::class);
24
    }
25
26
    protected function tearDown() : void
27
    {
28
        File::remove_extension(FileExtension::class);
29
        Folder::remove_extension(FolderExtension::class);
30
31
        parent::tearDown();
32
    }
33
34
    public function testItCreatesFolder()
35
    {
36
        $folder1 = $this->objFromFixture(Folder::class, 'folder1');
37
38
        $args = [
39
            'folder' => [
40
                'parentID' => $folder1->ID,
41
                'name' => 'testItCreatesFolder',
42
            ]
43
        ];
44
        $creator = new CreateFolderMutationCreator();
45
        $newFolder = $creator->resolve(null, $args, null, new ResolveInfo([]));
46
        $this->assertNotNull($newFolder);
47
        $this->assertEquals($folder1->ID, $newFolder->ParentID);
48
        $this->assertEquals('testItCreatesFolder', $newFolder->Name);
49
    }
50
51
    public function testItRestrictsCreateFolderByCanCreate()
52
    {
53
        $this->expectException(\InvalidArgumentException::class);
54
        $this->expectExceptionMessage('create not allowed');
55
        $folder1 = $this->objFromFixture(Folder::class, 'folder1');
56
57
        $args = [
58
            'folder' => [
59
                'parentID' => $folder1->ID,
60
                'name' => 'disallowCanCreate',
61
            ]
62
        ];
63
        $creator = new CreateFolderMutationCreator();
64
        $creator->resolve(null, $args, null, new ResolveInfo([]));
65
    }
66
}
67