Completed
Push — master ( ebda25...4c5acd )
by Jeroen De
01:42
created

testNewDefinitionFromArray_typeDefaultsToString()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace ParamProcessor\Tests;
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 testCanConstruct() {
18
		new ParamDefinitionFactory();
19
		$this->assertTrue( true );
20
	}
21
22
	public function testNewDefinitionFromArray() {
23
		$definition = ParamDefinitionFactory::newDefault()->newDefinitionFromArray(
24
			[
25
				'name' => 'some-list',
26
				'type' => 'integer',
27
				'message' => 'test-message',
28
				'islist' => true
29
			]
30
		);
31
32
		$this->assertSame( 'some-list', $definition->getName() );
33
		$this->assertSame( 'integer', $definition->getType() );
34
		$this->assertSame( 'test-message', $definition->getMessage() );
35
		$this->assertTrue( $definition->isList() );
36
		$this->assertTrue( $definition->isRequired() );
37
	}
38
39
	public function testNewDefinition() {
40
		$definition = ParamDefinitionFactory::newDefault()->newDefinition(
41
			'integer',
42
			'some-list',
43
			null,
44
			'test-message',
45
			true
46
		);
47
48
		$this->assertSame( 'some-list', $definition->getName() );
49
		$this->assertSame( 'integer', $definition->getType() );
50
		$this->assertSame( 'test-message', $definition->getMessage() );
51
		$this->assertTrue( $definition->isList() );
52
		$this->assertTrue( $definition->isRequired() );
53
	}
54
55
	public function testNewDefinitionFromArray_typeDefaultsToString() {
56
		$this->assertSame( 'string', $this->newBasicParamFromArray()->getType() );
57
	}
58
59
	private function newBasicParamFromArray(): ParamDefinition {
60
		return ParamDefinitionFactory::newDefault()->newDefinitionFromArray(
61
			[
62
				'name' => 'irrelevant',
63
				'message' => 'irrelevant'
64
			]
65
		);
66
	}
67
68
	public function testNewDefinitionFromArray_isListDefaultsToFalse() {
69
		$this->assertFalse( $this->newBasicParamFromArray()->isList() );
70
	}
71
72
	public function testNewDefinitionFromArray_isRequiredDefaultsToTrue() {
73
		$this->assertTrue( $this->newBasicParamFromArray()->isRequired() );
74
	}
75
76
	public function testNewDefinitionFromArray_optionsAreSet() {
77
		$arrayDefinition = [
78
			'name' => 'some-list',
79
			'type' => 'integer',
80
			'message' => 'test-message',
81
			'islist' => true
82
		];
83
84
		$definition = ParamDefinitionFactory::newDefault()->newDefinitionFromArray( $arrayDefinition );
85
86
		$this->assertSame( $arrayDefinition, $definition->getOptions() );
87
	}
88
89
}
90