ModuleRepositoryTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 7

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testConstructor() 0 12 1
A testAdd() 0 18 1
A testaddTwoEqualObjects() 0 20 1
1
<?php
2
3
namespace Wambo\Core\Module;
4
5
use League\Flysystem\Filesystem;
6
use League\Flysystem\Memory\MemoryAdapter;
7
use PHPUnit\Framework\TestCase;
8
use Wambo\Core\Storage\StorageInterface;
9
10
class ModuleRepositoryTest extends TestCase
11
{
12
    /**
13
     * @test
14
     */
15
    public function testConstructor()
16
    {
17
        // arrange
18
19
        /** @var StorageInterface $storage */
20
        $storage = $this->createMock(StorageInterface::class);
21
22
        /** @var ModuleMapper $mapper */
23
        $mapper = $this->createMock(ModuleMapper::class);
24
25
        new ModuleRepository($storage, $mapper);
26
    }
27
28
    /**
29
     * @test
30
     */
31
    public function testAdd()
32
    {
33
        // arrange
34
        $filesystem = new Filesystem(new MemoryAdapter());
35
        $storage = new JSONModuleStorage($filesystem, 'modules.json');
36
        $mapper = new ModuleMapper();
37
38
39
        $repo = new ModuleRepository($storage, $mapper);
40
        $module = new Module('Test', 'v3.3.2', 'Wambo\\Test\\Boostrap');
41
42
        // act
43
        $repo->add($module);
44
        $allModules = $repo->getAll();
45
46
        // assert
47
        $this->assertEquals($module, array_pop($allModules));
48
    }
49
50
    /**
51
     * @test
52
     */
53
    public function testaddTwoEqualObjects()
54
    {
55
        // arrange
56
        $filesystem = new Filesystem(new MemoryAdapter());
57
        $storage = new JSONModuleStorage($filesystem, 'modules.json');
58
        $mapper = new ModuleMapper();
59
60
61
        $repo = new ModuleRepository($storage, $mapper);
62
        $module = new Module('Test', 'v3.4.3', 'Wambo\\Test\\Boostrap');
63
64
        // act
65
        $repo->add($module);
66
        $repo->add($module);
67
        $allModules = $repo->getAll();
68
69
        // assert
70
        $this->assertTrue(count($allModules) == 1);
71
        $this->assertEquals($module, array_pop($allModules));
72
    }
73
}