44
55class RendererTest extends \PHPUnit_Framework_TestCase
66{
7- public function testRender ()
7+ public function renderChangeDataProvider ()
88 {
9- $ expectedDiff = implode (PHP_EOL , [
10- 'line1 ' ,
11- '<del>line2</del> ' ,
12- '<ins>line2changed</ins> ' ,
13- 'line3 '
14- ]);
15-
16- $ diffRenderer = new Renderer ();
17- $ actualDiff = $ diffRenderer ->render (
18- implode (PHP_EOL , ['line1 ' , 'line2 ' , 'line3 ' ]),
19- implode (PHP_EOL , ['line1 ' , 'line2changed ' , 'line3 ' ])
20- );
21-
22- $ this ->assertEquals ($ expectedDiff , $ actualDiff );
23- }
24-
25- public function testRender_CustomFullySpecifiedFormat ()
26- {
27- $ expectedDiff = implode (PHP_EOL , [
28- 'line1 ' ,
29- '<del style="background: #ffe7e7;">line2</del> ' ,
30- '<ins style="background: #ddfade;">line2changed</ins> ' ,
31- 'line3 '
32- ]);
33-
34- $ diffRenderer = new Renderer ([
35- 'format ' => [
36- 'insert ' => [
37- 'tag ' => 'ins ' ,
38- 'attributes ' => 'style="background: #ddfade;" ' ,
9+ return [
10+ 'DefaultFormat ' => [
11+ [
12+ 'line1 ' ,
13+ '<del>line2</del> ' ,
14+ '<ins>line2changed</ins> ' ,
15+ 'line3 '
3916 ],
40- 'delete ' => [
41- 'tag ' => 'del ' ,
42- 'attributes ' => 'style="background: #ffe7e7;" ' ,
17+ ['line1 ' , 'line2 ' , 'line3 ' ],
18+ ['line1 ' , 'line2changed ' , 'line3 ' ],
19+ [],
20+ ],
21+ 'CustomFullySpecifiedFormat ' => [
22+ [
23+ 'line1 ' ,
24+ '<del style="background: #ffe7e7;">line2</del> ' ,
25+ '<ins style="background: #ddfade;">line2changed</ins> ' ,
26+ 'line3 '
27+ ],
28+ ['line1 ' , 'line2 ' , 'line3 ' ],
29+ ['line1 ' , 'line2changed ' , 'line3 ' ],
30+ [
31+ 'format ' => [
32+ 'insert ' => [
33+ 'tag ' => 'ins ' ,
34+ 'attributes ' => 'style="background: #ddfade;" ' ,
35+ ],
36+ 'delete ' => [
37+ 'tag ' => 'del ' ,
38+ 'attributes ' => 'style="background: #ffe7e7;" ' ,
39+ ]
40+ ]
4341 ]
44- ]
45- ]);
46-
47- $ actualDiff = $ diffRenderer ->render (
48- implode (PHP_EOL , ['line1 ' , 'line2 ' , 'line3 ' ]),
49- implode (PHP_EOL , ['line1 ' , 'line2changed ' , 'line3 ' ])
50- );
51-
52- $ this ->assertEquals ($ expectedDiff , $ actualDiff );
53- }
54-
55- public function testRender_CustomPartlySpecifiedFormat ()
56- {
57- $ expectedDiff = implode (PHP_EOL , [
58- 'line1 ' ,
59- '<del>line2</del> ' ,
60- '<ins class="insert">line2changed</ins> ' ,
61- 'line3 '
62- ]);
63-
64- $ diffRenderer = new Renderer ([
65- 'format ' => [
66- 'insert ' => [
67- 'attributes ' => 'class="insert" ' ,
42+ ],
43+ 'CustomPartlySpecifiedFormat ' => [
44+ [
45+ 'line1 ' ,
46+ '<del>line2</del> ' ,
47+ '<ins class="insert">line2changed</ins> ' ,
48+ 'line3 '
6849 ],
69- ]
70- ]);
71-
72- $ actualDiff = $ diffRenderer ->render (
73- implode (PHP_EOL , ['line1 ' , 'line2 ' , 'line3 ' ]),
74- implode (PHP_EOL , ['line1 ' , 'line2changed ' , 'line3 ' ])
75- );
76-
77- $ this ->assertEquals ($ expectedDiff , $ actualDiff );
50+ ['line1 ' , 'line2 ' , 'line3 ' ],
51+ ['line1 ' , 'line2changed ' , 'line3 ' ],
52+ [
53+ 'format ' => [
54+ 'insert ' => [
55+ 'attributes ' => 'class="insert" ' ,
56+ ],
57+ ]
58+ ],
59+ ],
60+ 'CustomNumericFormat ' => [
61+ [
62+ 'line1 ' ,
63+ '<del style="background: #ffe7e7;">line2</del> ' ,
64+ '<ins style="background: #ddfade;">line2changed</ins> ' ,
65+ 'line3 '
66+ ],
67+ ['line1 ' , 'line2 ' , 'line3 ' ],
68+ ['line1 ' , 'line2changed ' , 'line3 ' ],
69+ [
70+ 'format ' => Renderer::FORMAT_COLOUR
71+ ]
72+ ],
73+ ];
7874 }
7975
80- public function testRender_CustomNumericFormat ()
81- {
82- $ expectedDiff = implode (PHP_EOL , [
83- 'line1 ' ,
84- '<del style="background: #ffe7e7;">line2</del> ' ,
85- '<ins style="background: #ddfade;">line2changed</ins> ' ,
86- 'line3 '
87- ]);
88-
89- $ diffRenderer = new Renderer ([
90- 'format ' => Renderer::FORMAT_COLOUR
91- ]);
92-
93- $ actualDiff = $ diffRenderer ->render (
94- implode (PHP_EOL , ['line1 ' , 'line2 ' , 'line3 ' ]),
95- implode (PHP_EOL , ['line1 ' , 'line2changed ' , 'line3 ' ])
96- );
76+ /**
77+ * @dataProvider renderChangeDataProvider
78+ * @param $expectedDiff
79+ * @param $oldValue
80+ * @param $newValue
81+ * @param array|null $renderOptions
82+ */
83+ public function testRender_ChanageValueStringType (
84+ $ expectedDiff ,
85+ $ oldValue ,
86+ $ newValue ,
87+ array $ renderOptions = null
88+ ) {
89+ $ expectedDiff = implode (PHP_EOL , $ expectedDiff );
90+
91+ $ diffRenderer = new Renderer ($ renderOptions );
92+ $ actualDiff = $ diffRenderer ->render (new Change (
93+ implode (PHP_EOL , $ oldValue ),
94+ implode (PHP_EOL , $ newValue )
95+ ));
9796
9897 $ this ->assertEquals ($ expectedDiff , $ actualDiff );
9998 }
99+
100100}
0 commit comments