simplificationProvider()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 166
Code Lines 114

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 1
Metric Value
c 2
b 1
f 1
dl 0
loc 166
rs 8.2857
cc 1
eloc 114
nc 1
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace PPP\Module\TreeSimplifier;
4
5
use PPP\DataModel\FirstNode;
6
use PPP\DataModel\IntersectionNode;
7
use PPP\DataModel\LastNode;
8
use PPP\DataModel\MissingNode;
9
use PPP\DataModel\ResourceListNode;
10
use PPP\DataModel\StringResourceNode;
11
use PPP\DataModel\TripleNode;
12
use PPP\DataModel\UnionNode;
13
14
/**
15
 * @covers PPP\Module\TreeSimplifier\SetOperatorNodeSimplifier
16
 *
17
 * @licence MIT
18
 * @author Thomas Pellissier Tanon
19
 */
20
class SetOperatorNodeSimplifierTest extends NodeSimplifierBaseTest {
21
22
	protected function buildSimplifier() {
23
		return new SetOperatorNodeSimplifier();
24
	}
25
26
	public function simplifiableProvider() {
27
		return array(
28
			array(
29
				new UnionNode(array())
30
			),
31
			array(
32
				new IntersectionNode(array())
33
			)
34
		);
35
	}
36
37
	public function nonSimplifiableProvider() {
38
		return array(
39
			array(
40
				new MissingNode()
41
			)
42
		);
43
	}
44
45
	public function simplificationProvider() {
46
		return array(
47
			array(
48
				new ResourceListNode(array(
49
					new StringResourceNode('foo'),
50
					new StringResourceNode('bar')
51
				)),
52
				new UnionNode(array(
53
					new ResourceListNode(array(new StringResourceNode('foo'))),
54
					new ResourceListNode(array(
55
						new StringResourceNode('foo'),
56
						new StringResourceNode('bar')
57
					))
58
				)),
59
			),
60
			array(
61
				new UnionNode(array(
62
					new MissingNode(),
63
					new ResourceListNode(array(
64
						new StringResourceNode('foo'),
65
						new StringResourceNode('bar')
66
					))
67
				)),
68
				new UnionNode(array(
69
					new ResourceListNode(array(new StringResourceNode('foo'))),
70
					new MissingNode(),
71
					new ResourceListNode(array(new StringResourceNode('bar')))
72
				))
73
			),
74
			array(
75
				new ResourceListNode(array(
76
					new StringResourceNode('bar')
77
				)),
78
				new UnionNode(array(
79
					new UnionNode(array(
80
						new ResourceListNode(array(new StringResourceNode('bar')))
81
					))
82
				))
83
			),
84
			array(
85
				new ResourceListNode(),
86
				new UnionNode(array())
87
			),
88
			array(
89
				new ResourceListNode(array(new StringResourceNode('foo'))),
90
				new IntersectionNode(array(
91
					new ResourceListNode(array(
92
						new StringResourceNode('foo'),
93
						new StringResourceNode('bar')
94
					)),
95
					new ResourceListNode(array(new StringResourceNode('foo')))
96
				))
97
			),
98
			array(
99
				new ResourceListNode(),
100
				new IntersectionNode(array(
101
					new ResourceListNode(array(new StringResourceNode('foo'))),
102
					new ResourceListNode(array(new StringResourceNode('bar')))
103
				))
104
			),
105
			array(
106
				new IntersectionNode(array(
107
					new MissingNode(),
108
					new ResourceListNode(array(new StringResourceNode('foo') ))
109
				)),
110
				new IntersectionNode(array(
111
					new IntersectionNode(array(
112
						new ResourceListNode(array(new StringResourceNode('foo'))),
113
						new ResourceListNode(array(new StringResourceNode('foo')))
114
					)),
115
					new MissingNode(),
116
					new ResourceListNode(array(new StringResourceNode('foo')))
117
				))
118
			),
119
			array(
120
				new IntersectionNode(array()),
121
				new IntersectionNode(array())
122
			),
123
			array(
124
				new ResourceListNode(array(new StringResourceNode('baz'))),
125
				new IntersectionNode(array(
126
					new UnionNode(array(
127
						new ResourceListNode(array(new StringResourceNode('baz')))
128
					))
129
				))
130
			),
131
			array(
132
				new UnionNode(array(
133
					new IntersectionNode(array(
134
						new FirstNode(new ResourceListNode()),
135
						new ResourceListNode(array(new StringResourceNode('baz')))
136
					)),
137
					new IntersectionNode(array(
138
						new LastNode(new ResourceListNode()),
139
						new ResourceListNode(array(new StringResourceNode('baz')))
140
					)),
141
				)),
142
				new IntersectionNode(array(
143
					new UnionNode(array(
144
						new FirstNode(new ResourceListNode()),
145
						new LastNode(new ResourceListNode())
146
					)),
147
					new ResourceListNode(array(new StringResourceNode('baz'))),
148
				))
149
			),
150
			array(
151
				new UnionNode(array(
152
					new IntersectionNode(array(
153
						new FirstNode(new ResourceListNode()),
154
						new ResourceListNode(array(new StringResourceNode('baz')))
155
					)),
156
					new IntersectionNode(array(
157
						new LastNode(new ResourceListNode()),
158
						new ResourceListNode(array(new StringResourceNode('baz')))
159
					)),
160
				)),
161
				new IntersectionNode(array(
162
					new UnionNode(array(
163
						new FirstNode(new ResourceListNode()),
164
						new LastNode(new ResourceListNode())
165
					)),
166
					new UnionNode(array(
167
						new ResourceListNode(array(new StringResourceNode('baz')))
168
					)),
169
				))
170
			),
171
			array(
172
				new UnionNode(array(
173
					new TripleNode(
174
						new MissingNode(),
175
						new ResourceListNode(array(
176
							new StringResourceNode('bar'),
177
							new StringResourceNode('baz'))
178
						),
179
						new ResourceListNode(array(new StringResourceNode('foo')))
180
					),
181
					new TripleNode(
182
						new ResourceListNode(array(new StringResourceNode('foo'))),
183
						new ResourceListNode(array(
184
							new StringResourceNode('bar1'),
185
							new StringResourceNode('baz1'))
186
						),
187
						new MissingNode()
188
					)
189
				)),
190
				new UnionNode(array(
191
					new TripleNode(
192
						new MissingNode(),
193
						new ResourceListNode(array(
194
							new StringResourceNode('bar'),
195
							new StringResourceNode('baz'))
196
						),
197
						new ResourceListNode(array(new StringResourceNode('foo')))
198
					),
199
					new TripleNode(
200
						new ResourceListNode(array(new StringResourceNode('foo'))),
201
						new ResourceListNode(array(
202
							new StringResourceNode('bar1'),
203
							new StringResourceNode('baz1'))
204
						),
205
						new MissingNode()
206
					)
207
				))
208
			)
209
		);
210
	}
211
}
212