Completed
Push — master ( 10e391...d5f2dc )
by Harry
06:06
created

FileNodeTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 3
c 1
b 0
f 1
lcom 0
cbo 5
dl 0
loc 41
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testInstanceOf() 0 10 1
A testEmptyFileWillReturnEmptyArrayForGetContents() 0 11 1
A testWhenCopyFailsItRaisesAnException() 0 15 1
1
<?php
2
/**
3
 * This file is part of graze/data-file
4
 *
5
 * Copyright (c) 2016 Nature Delivered Ltd. <https://www.graze.com>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 *
10
 * @license https://github.com/graze/data-file/blob/master/LICENSE.md
11
 * @link    https://github.com/graze/data-file
12
 */
13
14
namespace Graze\DataFile\Test\Unit\Node;
15
16
use Graze\DataFile\Format\FormatAwareInterface;
17
use Graze\DataFile\Modify\Compress\CompressionAwareInterface;
18
use Graze\DataFile\Modify\Encoding\EncodingAwareInterface;
19
use Graze\DataFile\Modify\Exception\CopyFailedException;
20
use Graze\DataFile\Node\FileNode;
21
use Graze\DataFile\Node\FileNodeInterface;
22
use Graze\DataFile\Test\TestCase;
23
use League\Flysystem\FilesystemInterface;
24
use Mockery as m;
25
26
class FileNodeTest extends TestCase
27
{
28
    public function testInstanceOf()
29
    {
30
        $fileSystem = m::mock(FilesystemInterface::class);
31
        $file = new FileNode($fileSystem, 'not/nop');
32
33
        static::assertInstanceOf(FileNodeInterface::class, $file);
34
        static::assertInstanceOf(FormatAwareInterface::class, $file);
35
        static::assertInstanceOf(CompressionAwareInterface::class, $file);
36
        static::assertInstanceOf(EncodingAwareInterface::class, $file);
37
    }
38
39
    public function testEmptyFileWillReturnEmptyArrayForGetContents()
40
    {
41
        $fileSystem = m::mock(FilesystemInterface::class);
42
        $file = new FileNode($fileSystem, 'not/exists');
43
44
        $fileSystem->shouldReceive('has')
45
                   ->with('not/exists')
46
                   ->andReturn(false);
47
48
        static::assertEquals([], $file->getContents());
49
    }
50
51
    public function testWhenCopyFailsItRaisesAnException()
52
    {
53
        $fileSystem = m::mock(FilesystemInterface::class);
54
        $localFile = new FileNode($fileSystem, 'some/random');
55
56
        $newPath = new FileNode($fileSystem, 'some/target');
57
58
        $fileSystem->shouldReceive('copy')
59
                   ->with($localFile->getPath(), $newPath->getPath())
60
                   ->andReturn(false);
61
62
        $this->expectException(CopyFailedException::class);
63
64
        $localFile->copy($newPath->getPath());
65
    }
66
}
67