Completed
Pull Request — master (#338)
by Ingo
02:03
created

CreateFolderMutationCreatorTest::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 7
rs 9.4285
c 1
b 0
f 1
cc 1
eloc 4
nc 1
nop 0
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
    public function setUp()
19
    {
20
        parent::setUp();
21
22
        File::add_extension(FileExtension::class);
23
        Folder::add_extension(FolderExtension::class);
24
    }
25
26
    public function tearDown()
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
    /**
52
     * @expectedException \InvalidArgumentException
53
     * @expectedExceptionMessage create not allowed
54
     */
55
    public function testItRestrictsCreateFolderByCanCreate()
56
    {
57
        $folder1 = $this->objFromFixture(Folder::class, 'folder1');
58
59
        $args = [
60
            'folder' => [
61
                'parentID' => $folder1->ID,
62
                'name' => 'disallowCanCreate',
63
            ]
64
        ];
65
        $creator = new CreateFolderMutationCreator();
66
        $creator->resolve(null, $args, null, new ResolveInfo([]));
67
    }
68
}
69