ResourceDO   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 9
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
c 1
b 0
f 0
lcom 0
cbo 1
dl 0
loc 9
ccs 2
cts 2
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A getMimeType() 0 5 1
1
<?php
2
namespace Staticus\Resources;
3
4
class ResourceDO extends ResourceDOAbstract
5
{
6
    const TYPE = 'type';
7 1
    public function getMimeType()
8
    {
9
10 1
        return 'abstract';
11
    }
12
}
13
14
class ResourceDOAbstractTest extends \PHPUnit_Framework_TestCase
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class should be in its own file to aid autoloaders.

Having each class in a dedicated file usually plays nice with PSR autoloaders and is therefore a well established practice. If you use other autoloaders, you might not want to follow this rule.

Loading history...
15
{
16
    /**
17
     * @var ResourceDO
18
     */
19
    protected $resourceDO;
20
21
    /**
22
     * @return ResourceDO
23
     */
24 19
    protected function getResourceDO()
25
    {
26 19
        return clone $this->resourceDO;
27
    }
28
29 19
    protected function setUp()
30
    {
31 19
        parent::setUp();
32 19
        $this->resourceDO = new ResourceDO();
33 19
    }
34
35 1
    public function testReset()
36
    {
37 1
        $resourceDO = $this->getResourceDO();
38 1
        $this->putTestValuesToResource($resourceDO);
39 1
        $resourceDO->reset();
40
41 1
        $this->assertEquals($this->resourceDO, $resourceDO);
42 1
    }
43 4
    protected function putTestValuesToResource(ResourceDO $resourceDO)
44
    {
45
        $resourceDO
46 4
            ->setName('testname')
47 4
            ->setNamespace('testnamespace')
48 4
            ->setType('testtype')
49 4
            ->setAuthor('testauthor')
50 4
            ->setBaseDirectory('testbasedir')
51 4
            ->setNameAlternative('testnamealternative')
52 4
            ->setNew(true)
53 4
            ->setRecreate(true)
54 4
            ->setVariant('testvariant')
55 4
            ->setVersion(2);
56 4
    }
57
58 1
    public function testGetMimeType()
59
    {
60 1
        $resourceDO = $this->getResourceDO();
61 1
        $result = $resourceDO->getMimeType();
62 1
        $this->assertEquals('abstract', $result);
63 1
    }
64
65 1
    public function testUuid()
66
    {
67 1
        $resourceDO = $this->getResourceDO();
68
69
        // UUID must be created for a empty string
70 1
        $result = $resourceDO->getUuid();
71 1
        $modelUuid = 'd41d8cd98f00b204e9800998ecf8427e';
72 1
        $this->assertEquals($modelUuid, $result);
73
74
        // UUID must be changed after name have been changed
75 1
        $resourceDO->setName('testname');
76 1
        $modelUuid = 'afe107acd2e1b816b5da87f79c90fdc7';
77 1
        $result = $resourceDO->getUuid();
78 1
        $this->assertEquals($modelUuid, $result);
79
80
        // UUID must be changed after alter name have been changed
81 1
        $resourceDO->setNameAlternative('testnamealternative');
82 1
        $modelUuid = '8a0e2c505add6e3d1f83fd23f3a381a8';
83 1
        $result = $resourceDO->getUuid();
84 1
        $this->assertEquals($modelUuid, $result);
85
86
        // UUID must be changed after alter name have been changed
87 1
        $resourceDO->setNameAlternative();
88 1
        $modelUuid = 'afe107acd2e1b816b5da87f79c90fdc7';
89 1
        $result = $resourceDO->getUuid();
90 1
        $this->assertEquals($modelUuid, $result);
91 1
    }
92
93 1
    public function testName()
94
    {
95 1
        $resourceDO = $this->getResourceDO();
96 1
        $result = $resourceDO->getName();
97 1
        $this->assertEquals('', $result);
98 1
        $model = 'testname';
99 1
        $resourceDO->setName($model);
100 1
        $result = $resourceDO->getName();
101 1
        $this->assertEquals($model, $result);
102
103 1
        $result = $resourceDO->getUuid();
104 1
        $modelUuid = 'afe107acd2e1b816b5da87f79c90fdc7';
105 1
        $this->assertEquals($modelUuid, $result);
106 1
    }
107
108 1
    public function testNamespace()
109
    {
110 1
        $resourceDO = $this->getResourceDO();
111 1
        $result = $resourceDO->getNamespace();
112 1
        $this->assertEquals('', $result);
113 1
        $model = 'testnamespace';
114 1
        $resourceDO->setNamespace($model);
115 1
        $result = $resourceDO->getNamespace();
116 1
        $this->assertEquals($model, $result);
117
118 1
        $result = $resourceDO->getUuid();
119 1
        $modelUuid = 'd41d8cd98f00b204e9800998ecf8427e';
120 1
        $this->assertEquals($modelUuid, $result);
121
122 1
        $result = $resourceDO->getFilePath();
123 1
        $model = 'testnamespace/type/def/def/0/d41/d41d8cd98f00b204e9800998ecf8427e.type';
124 1
        $this->assertEquals($model, $result);
125 1
    }
126
127 1
    public function testType()
128
    {
129 1
        $resourceDO = $this->getResourceDO();
130 1
        $result = $resourceDO->getType();
131 1
        $this->assertEquals('type', $result);
132 1
        $model = 'test';
133 1
        $resourceDO->setType($model);
134 1
        $result = $resourceDO->getType();
135 1
        $this->assertEquals($model, $result);
136 1
    }
137
138 1
    public function testAuthor()
139
    {
140 1
        $resourceDO = $this->getResourceDO();
141 1
        $result = $resourceDO->getAuthor();
142 1
        $this->assertEquals('', $result);
143 1
        $model = 'test';
144 1
        $resourceDO->setAuthor($model);
145 1
        $result = $resourceDO->getAuthor();
146 1
        $this->assertEquals($model, $result);
147 1
    }
148
149 1
    public function testBaseDirectory()
150
    {
151 1
        $resourceDO = $this->getResourceDO();
152 1
        $result = $resourceDO->getBaseDirectory();
153 1
        $this->assertEquals('', $result);
154
155 1
        $model = ''; // Empty
156 1
        $resourceDO->setBaseDirectory($model);
157 1
        $result = $resourceDO->getBaseDirectory();
158 1
        $this->assertEquals($model, $result);
159
160 1
        $model = 'testbasedir';
161 1
        $resourceDO->setBaseDirectory($model);
162 1
        $result = $resourceDO->getBaseDirectory();
163 1
        $this->assertEquals($model . '/', $result);
164
165 1
        $result = $resourceDO->getFilePath();
166 1
        $model = 'testbasedir/type/def/def/0/d41/d41d8cd98f00b204e9800998ecf8427e.type';
167 1
        $this->assertEquals($model, $result);
168 1
    }
169
170 1
    public function testNameAlternative()
171
    {
172 1
        $resourceDO = $this->getResourceDO();
173 1
        $result = $resourceDO->getNameAlternative();
174 1
        $this->assertEquals('', $result);
175
176 1
        $model = 'test';
177 1
        $resourceDO->setNameAlternative($model);
178 1
        $result = $resourceDO->getNameAlternative();
179 1
        $this->assertEquals($model, $result);
180
181 1
        $result = $resourceDO->getUuid();
182 1
        $modelUuid = '098f6bcd4621d373cade4e832627b4f6';
183 1
        $this->assertEquals($modelUuid, $result);
184 1
    }
185
186 1
    public function testNew()
187
    {
188 1
        $resourceDO = $this->getResourceDO();
189 1
        $result = $resourceDO->isNew();
190 1
        $this->assertFalse($result);
191 1
        $resourceDO->setNew(true);
192 1
        $this->assertTrue($resourceDO->isNew());
193 1
    }
194
195 1
    public function testRecreate()
196
    {
197 1
        $resourceDO = $this->getResourceDO();
198 1
        $result = $resourceDO->isRecreate();
199 1
        $this->assertFalse($result);
200 1
        $resourceDO->setRecreate(true);
201 1
        $this->assertTrue($resourceDO->isRecreate());
202 1
    }
203
204 1
    public function testVariant()
205
    {
206 1
        $resourceDO = $this->getResourceDO();
207 1
        $result = $resourceDO->getVariant();
208 1
        $this->assertEquals('def', $result);
209
210 1
        $model = 'testvariant';
211 1
        $resourceDO->setVariant($model);
212 1
        $result = $resourceDO->getVariant();
213 1
        $this->assertEquals($model, $result);
214
215 1
        $result = $resourceDO->getFilePath();
216 1
        $model = 'type/tes/testvariant/0/d41/d41d8cd98f00b204e9800998ecf8427e.type';
217 1
        $this->assertEquals($model, $result);
218 1
    }
219
220 1
    public function testVersion()
221
    {
222 1
        $resourceDO = $this->getResourceDO();
223 1
        $result = $resourceDO->getVersion();
224 1
        $this->assertEquals(0, $result);
225
226 1
        $model = 2;
227 1
        $resourceDO->setVersion($model);
228 1
        $result = $resourceDO->getVersion();
229 1
        $this->assertEquals($model, $result);
230
231 1
        $result = $resourceDO->getFilePath();
232 1
        $model = 'type/def/def/2/d41/d41d8cd98f00b204e9800998ecf8427e.type';
233 1
        $this->assertEquals($model, $result);
234 1
    }
235
236 1
    public function testGenerateFilePathForEmptyResource()
237
    {
238 1
        $resourceDO = $this->getResourceDO();
239 1
        $result = $resourceDO->generateFilePath();
240 1
        $model = 'type/def/def/0/d41/d41d8cd98f00b204e9800998ecf8427e.type';
241 1
        $this->assertEquals($model, $result);
242 1
    }
243
244 1
    public function testGenerateFilePathForMockedResource()
245
    {
246 1
        $resourceDO = $this->getResourceDO();
247 1
        $this->putTestValuesToResource($resourceDO);
248 1
        $result = $resourceDO->generateFilePath();
249 1
        $model = 'testbasedir/testnamespace/testtype/tes/testvariant/2/8a0/8a0e2c505add6e3d1f83fd23f3a381a8.testtype';
250 1
        $this->assertEquals($model, $result);
251 1
    }
252
253 1
    public function testGetDirectoryTokensForEmptyResource()
254
    {
255 1
        $resourceDO = $this->getResourceDO();
256 1
        $result = $resourceDO->getDirectoryTokens();
257
        $model = [
258 1
            ResourceDOAbstract::TOKEN_BASEDIRECTORY => '',
259 1
            ResourceDOAbstract::TOKEN_NAMESPACE => '',
260 1
            ResourceDOAbstract::TOKEN_TYPE => 'type/',
261 1
            ResourceDOAbstract::TOKEN_SHARD_VARIANT => 'def/',
262 1
            ResourceDOAbstract::TOKEN_VARIANT => 'def/',
263 1
            ResourceDOAbstract::TOKEN_VERSION => '0/',
264 1
            ResourceDOAbstract::TOKEN_SHARD_FILENAME => 'd41/',
265 1
        ];
266 1
        $this->assertEquals($model, $result);
267 1
    }
268
269 1
    public function testGetDirectoryTokensForMockedResource()
270
    {
271 1
        $resourceDO = $this->getResourceDO();
272 1
        $this->putTestValuesToResource($resourceDO);
273 1
        $result = $resourceDO->getDirectoryTokens();
274
        $model = [
275 1
            ResourceDOAbstract::TOKEN_BASEDIRECTORY => 'testbasedir/',
276 1
            ResourceDOAbstract::TOKEN_NAMESPACE => 'testnamespace/',
277 1
            ResourceDOAbstract::TOKEN_TYPE => 'testtype/',
278 1
            ResourceDOAbstract::TOKEN_SHARD_VARIANT => 'tes/',
279 1
            ResourceDOAbstract::TOKEN_VARIANT => 'testvariant/',
280 1
            ResourceDOAbstract::TOKEN_VERSION => '2/',
281 1
            ResourceDOAbstract::TOKEN_SHARD_FILENAME => '8a0/',
282 1
        ];
283 1
        $this->assertEquals($model, $result);
284 1
    }
285
286 1
    public function testEmptyResourceToArray()
287
    {
288 1
        $resourceDO = $this->getResourceDO();
289
        $model = [
290 1
            'name' => '',
291 1
            'nameAlternative' => '',
292 1
            'namespace' => '',
293 1
            'new' => false,
294 1
            'recreate' => false,
295 1
            'type' => 'type',
296 1
            'uuid' => '',
297 1
            'variant' => 'def',
298 1
            'version' => 0,
299 1
            'body' => '',
300 1
        ];
301 1
        $result = $resourceDO->toArray();
302 1
        $this->assertEquals($model, $result);
303 1
    }
304
305 1
    public function testMockedResourceToArray()
306
    {
307 1
        $resourceDO = $this->getResourceDO();
308
        $model = [
309 1
            'name' => 'testname',
310 1
            'nameAlternative' => 'testnamealternative',
311 1
            'namespace' => 'testnamespace',
312 1
            'new' => true,
313 1
            'recreate' => true,
314 1
            'type' => 'testtype',
315 1
            'uuid' => '8a0e2c505add6e3d1f83fd23f3a381a8',
316 1
            'variant' => 'testvariant',
317 1
            'version' => 2,
318 1
            'body' => '',
319 1
        ];
320 1
        $this->putTestValuesToResource($resourceDO);
321 1
        $result = $resourceDO->toArray();
322 1
        $this->assertEquals($model, $result);
323 1
    }
324
}
325