Completed
Push — master ( 039b1a...93e4df )
by Jeroen De
01:39
created

testNewDefinitionFromArray()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace ParamProcessor\Tests\Unit;
4
5
use ParamProcessor\ParamDefinition;
6
use ParamProcessor\ParamDefinitionFactory;
7
use PHPUnit\Framework\TestCase;
8
9
/**
10
 * @covers \ParamProcessor\ParamDefinitionFactory
11
 *
12
 * @licence GNU GPL v2+
13
 * @author Jeroen De Dauw < [email protected] >
14
 */
15
class ParamDefinitionFactoryTest extends TestCase {
16
17
	public function testNewDefinitionFromArray() {
18
		$definition = ParamDefinitionFactory::newDefault()->newDefinitionFromArray(
19
			[
20
				'name' => 'some-list',
21
				'type' => 'integer',
22
				'message' => 'test-message',
23
				'islist' => true
24
			]
25
		);
26
27
		$this->assertSame( 'some-list', $definition->getName() );
28
		$this->assertSame( 'integer', $definition->getType() );
29
		$this->assertSame( 'test-message', $definition->getMessage() );
30
		$this->assertTrue( $definition->isList() );
31
		$this->assertTrue( $definition->isRequired() );
32
	}
33
34
	public function testNewDefinition() {
35
		$definition = ParamDefinitionFactory::newDefault()->newDefinition(
36
			'integer',
37
			'some-list',
38
			null,
39
			'test-message',
40
			true
41
		);
42
43
		$this->assertSame( 'some-list', $definition->getName() );
44
		$this->assertSame( 'integer', $definition->getType() );
45
		$this->assertSame( 'test-message', $definition->getMessage() );
46
		$this->assertTrue( $definition->isList() );
47
		$this->assertTrue( $definition->isRequired() );
48
	}
49
50
	public function testNewDefinitionFromArray_typeDefaultsToString() {
51
		$this->assertSame( 'string', $this->newBasicParamFromArray()->getType() );
52
	}
53
54
	private function newBasicParamFromArray(): ParamDefinition {
55
		return ParamDefinitionFactory::newDefault()->newDefinitionFromArray(
56
			[
57
				'name' => 'irrelevant',
58
				'message' => 'irrelevant'
59
			]
60
		);
61
	}
62
63
	public function testNewDefinitionFromArray_isListDefaultsToFalse() {
64
		$this->assertFalse( $this->newBasicParamFromArray()->isList() );
65
	}
66
67
	public function testNewDefinitionFromArray_isRequiredDefaultsToTrue() {
68
		$this->assertTrue( $this->newBasicParamFromArray()->isRequired() );
69
	}
70
71
	public function testNewDefinitionFromArray_optionsAreSet() {
72
		$arrayDefinition = [
73
			'name' => 'some-list',
74
			'type' => 'integer',
75
			'message' => 'test-message',
76
			'islist' => true
77
		];
78
79
		$definition = ParamDefinitionFactory::newDefault()->newDefinitionFromArray( $arrayDefinition );
80
81
		$this->assertSame( $arrayDefinition, $definition->getOptions() );
82
	}
83
84
}
85