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

ReadFileQueryCreatorTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Importance

Changes 0
Metric Value
wmc 3
c 0
b 0
f 0
lcom 0
cbo 6
dl 0
loc 39
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 7 1
A tearDown() 0 7 1
A testItRestrictsQueryByCanView() 0 13 1
1
<?php
2
3
namespace SilverStripe\AssetAdmin\Tests\GraphQL;
4
5
use SilverStripe\AssetAdmin\GraphQL\ReadFileQueryCreator;
6
use SilverStripe\AssetAdmin\Tests\Controller\AssetAdminTest\FileExtension;
7
use SilverStripe\AssetAdmin\Tests\Controller\AssetAdminTest\FolderExtension;
8
use SilverStripe\Assets\File;
9
use SilverStripe\Assets\Folder;
10
use SilverStripe\Dev\SapphireTest;
11
use GraphQL\Type\Definition\ResolveInfo;
12
use SilverStripe\GraphQL\Manager;
13
14
class ReadFileQueryCreatorTest extends SapphireTest
15
{
16
17
    protected $usesDatabase = true;
18
19
    public function setUp()
20
    {
21
        parent::setUp();
22
23
        File::add_extension(FileExtension::class);
24
        Folder::add_extension(FolderExtension::class);
25
    }
26
27
    public function tearDown()
28
    {
29
        File::remove_extension(FileExtension::class);
30
        Folder::remove_extension(FolderExtension::class);
31
32
        parent::tearDown();
33
    }
34
35
    /**
36
     * @expectedException \InvalidArgumentException
37
     * @expectedExceptionMessage view access not permitted
38
     */
39
    public function testItRestrictsQueryByCanView()
40
    {
41
        $folder = new Folder([
42
            'Name' => 'disallowCanView'
43
        ]);
44
        $folder->write();
45
46
        $args = [
47
            'parentId' => $folder->ID,
48
        ];
49
        $creator = new ReadFileQueryCreator(new Manager());
50
        $creator->resolveConnection(null, $args, null, new ResolveInfo([]));
51
    }
52
}
53