-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathConfigTest.php
110 lines (84 loc) · 3.96 KB
/
ConfigTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
namespace gossi\codegen\tests\config;
use gossi\codegen\config\CodeFileGeneratorConfig;
use gossi\codegen\config\CodeGeneratorConfig;
use gossi\docblock\Docblock;
use gossi\codegen\generator\CodeGenerator;
use phootwork\lang\ComparableComparator;
use phootwork\lang\Comparator;
/**
* @group config
*/
class ConfigTest extends \PHPUnit_Framework_TestCase {
public function testCodeGeneratorConfigDefaults() {
$config = new CodeGeneratorConfig();
$this->assertTrue($config->getGenerateDocblock());
$this->assertTrue($config->getGenerateEmptyDocblock());
$this->assertFalse($config->getGenerateScalarTypeHints());
$this->assertFalse($config->getGenerateReturnTypeHints());
$this->assertTrue($config->isSortingEnabled());
$this->assertEquals(CodeGenerator::SORT_USESTATEMENTS_DEFAULT, $config->getUseStatementSorting());
$this->assertEquals(CodeGenerator::SORT_CONSTANTS_DEFAULT, $config->getConstantSorting());
$this->assertEquals(CodeGenerator::SORT_PROPERTIES_DEFAULT, $config->getPropertySorting());
$this->assertEquals(CodeGenerator::SORT_METHODS_DEFAULT, $config->getMethodSorting());
}
public function testCodeGeneratorConfigDisableDocblock() {
$config = new CodeGeneratorConfig(['generateDocblock' => false]);
$this->assertFalse($config->getGenerateDocblock());
$this->assertFalse($config->getGenerateEmptyDocblock());
$this->assertFalse($config->getGenerateScalarTypeHints());
$this->assertFalse($config->getGenerateReturnTypeHints());
}
public function testCodeGeneratorConfigSetters() {
$config = new CodeGeneratorConfig();
$config->setGenerateDocblock(false);
$this->assertFalse($config->getGenerateDocblock());
$this->assertFalse($config->getGenerateEmptyDocblock());
$config->setGenerateEmptyDocblock(true);
$this->assertTrue($config->getGenerateDocblock());
$this->assertTrue($config->getGenerateEmptyDocblock());
$config->setGenerateEmptyDocblock(false);
$this->assertTrue($config->getGenerateDocblock());
$this->assertFalse($config->getGenerateEmptyDocblock());
$config->setGenerateReturnTypeHints(true);
$this->assertTrue($config->getGenerateReturnTypeHints());
$config->setGenerateScalarTypeHints(true);
$this->assertTrue($config->getGenerateScalarTypeHints());
$config->setGeneratePsrCode(true);
$this->assertTrue($config->getGeneratePsrCode());
$config->setUseStatementSorting(false);
$this->assertFalse($config->getUseStatementSorting());
$config->setConstantSorting('abc');
$this->assertEquals('abc', $config->getConstantSorting());
$config->setPropertySorting(new ComparableComparator());
$this->assertTrue($config->getPropertySorting() instanceof Comparator);
$cmp = function($a, $b) {
return strcmp($a, $b);
};
$config->setMethodSorting($cmp);
$this->assertSame($cmp, $config->getMethodSorting());
$config->setSortingEnabled(false);
$this->assertFalse($config->isSortingEnabled());
}
public function testCodeFileGeneratorConfigDefaults() {
$config = new CodeFileGeneratorConfig();
$this->assertNull($config->getHeaderComment());
$this->assertNull($config->getHeaderDocblock());
$this->assertTrue($config->getBlankLineAtEnd());
$this->assertFalse($config->getDeclareStrictTypes());
}
public function testCodeFileGeneratorConfigDeclareStrictTypes() {
$config = new CodeFileGeneratorConfig(['declareStrictTypes' => true]);
$this->assertTrue($config->getDeclareStrictTypes());
$this->assertTrue($config->getGenerateReturnTypeHints());
$this->assertTrue($config->getGenerateScalarTypeHints());
}
public function testCodeFileGeneratorConfigSetters() {
$config = new CodeFileGeneratorConfig();
$this->assertEquals('hello world', $config->setHeaderComment('hello world')->getHeaderComment());
$docblock = new Docblock();
$this->assertSame($docblock, $config->setHeaderDocblock($docblock)->getHeaderDocblock());
$this->assertFalse($config->setBlankLineAtEnd(false)->getBlankLineAtEnd());
$this->assertTrue($config->setDeclareStrictTypes(true)->getDeclareStrictTypes());
}
}