Completed
Push — CI ( ee6bd7...0f01dd )
by Adam
22:32
created

AOR_ChartTest::testsave_lines()   B

Complexity

Conditions 2
Paths 3

Size

Total Lines 29
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 29
rs 8.8571
c 1
b 0
f 1
cc 2
eloc 16
nc 3
nop 0
1
<?php
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 4 and the first side effect is on line 3.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
2
3
require_once 'modules/AOR_Charts/lib/pChart/pChart.php';
4
class AOR_ChartTest extends PHPUnit_Framework_TestCase {
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
5
	
6
	public function testAOR_Chart(){
7
8
		//execute the contructor and check for the Object type and  attributes
9
		$aorChart = new AOR_Chart();
10
		$this->assertInstanceOf('AOR_Chart',$aorChart);
11
		$this->assertInstanceOf('Basic',$aorChart);
12
		$this->assertInstanceOf('SugarBean',$aorChart);
13
		 
14
		$this->assertAttributeEquals('AOR_Charts', 'module_dir', $aorChart);
15
		$this->assertAttributeEquals('AOR_Chart', 'object_name', $aorChart);
16
		$this->assertAttributeEquals('aor_charts', 'table_name', $aorChart);
17
		$this->assertAttributeEquals(true, 'new_schema', $aorChart);
18
		$this->assertAttributeEquals(true, 'disable_row_level_security', $aorChart);
19
		$this->assertAttributeEquals(true, 'importable', $aorChart);
20
	
21
	}
22
23
    public function testsave_lines(){
24
25
    	error_reporting(E_ERROR | E_PARSE);
26
    	
27
    	$aorChart = new AOR_Chart();
28
29
    	//preset the required data
30
    	$post = array();
31
    	$post['chartid'] = array('test'=>'');
32
    	$post['charttitle'] = array('test'=>'test');
33
    	$post['charttype'] = array('test'=>'bar');
34
    	$post['chartx_field'] = array('test'=>'1');
35
    	$post['charty_field'] = array('test'=>'2');
36
    	
37
    	$postKey = "chart";
38
    	
39
    	$bean = new AOR_Report();
40
    	
41
    	//execute the method and test if it works and does not throws an exception.
42
    	try {
43
    		$result = $aorChart->save_lines($post, $bean, $postKey);
0 ignored issues
show
Unused Code introduced by
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
44
    		$this->assertTrue(true);
45
    	}
46
    	catch (Exception $e) {
47
    		$this->fail();
48
    	}
49
    	
50
    	
51
    }
52
53
54
    public function testbuildChartImageBar(){
55
56
   	
57
    	$aorChart = new AOR_Chart();
58
    	  	
59
    	$chartData = new pData();
60
    	$chartData->addPoints(10,'data');
61
    	$chartData->addPoints(10,'Labels');
62
       	
63
    	 
64
    	//execute with recordImageMap true and verify that the chartPicture is changed
65
    	$chartPicture = new pImage(700,700,$chartData);
66
    	$aorChart->buildChartImageBar($chartPicture,true);
67
    	$this->assertNotEquals($chartPicture, new pImage(700,700,$chartData) );
68
    	
69
    	
70
    	//execute with recordImageMap false and verify that the chartPicture is changed
71
    	$chartPicture = new pImage(700,700,$chartData);
72
    	$aorChart->buildChartImageBar($chartPicture,false);
73
    	$this->assertNotEquals($chartPicture, new pImage(700,700,$chartData) );
74
75
    	unset($chartData);
76
    	unset($chartPicture);
77
    }
78
79
    public function testbuildChartImagePie(){
80
81
    	
82
    	$aorChart = new AOR_Chart();
83
    	
84
    	$chartData = new pData();
85
    	$chartData->addPoints(10,'data');
86
    	$chartData->addPoints(10,'Labels');
87
    	 
88
    		
89
    	//execute with recordImageMap false  and verify that the chartPicture is changed
90
    	$chartPicture = new pImage(700,700,$chartData);
91
    	$aorChart->buildChartImagePie($chartPicture,$chartData,array(array('x'=>10), array('x'=>20)),700, 700, 'x',false);
92
    	$this->assertNotEquals($chartPicture, new pImage(700,700,$chartData) );
93
    	
94
    	
95
    	//execute with recordImageMap true and verify that the chartPicture is changed
96
    	$chartPicture = new pImage(700,700,$chartData);
97
    	$aorChart->buildChartImagePie($chartPicture,$chartData,array(array('x'=>10), array('x'=>20)),700, 700, 'x',true);
98
    	$this->assertNotEquals($chartPicture, new pImage(700,700,$chartData) );
99
    	
100
    	unset($chartData);
101
    	unset($chartPicture);
102
    	
103
    }
104
105
    public function testbuildChartImageLine(){
106
107
    	$aorChart = new AOR_Chart();
108
    	
109
    	$chartData = new pData();
110
    	$chartData->addPoints(10,'data');
111
    	$chartData->addPoints(10,'Labels');
112
    	
113
    		 
114
    	//execute with recordImageMap true  and verify that the chartPicture is changed
115
    	$chartPicture = new pImage(700,700,$chartData);
116
    	$aorChart->buildChartImageLine($chartPicture,true);
117
    	$this->assertNotEquals($chartPicture, new pImage(700,700,$chartData) );
118
    	 
119
    	//execute with recordImageMap false  and verify that the chartPicture is changed
120
    	$chartPicture = new pImage(700,700,$chartData);
121
    	$aorChart->buildChartImageLine($chartPicture,false);
122
    	$this->assertNotEquals($chartPicture, new pImage(700,700,$chartData) );
123
    	 
124
    	
125
    	unset($chartData);
126
    	unset($chartPicture);
127
    	
128
    }
129
130
    public function testbuildChartImageRadar(){
131
132
    	
133
    	$aorChart = new AOR_Chart();
134
    	 
135
    	//preset the required objects and properties
136
    	$chartData = new pData();
137
    	$chartData->loadPalette("modules/AOR_Charts/lib/pChart/palettes/navy.color", TRUE);
138
    	$chartData->addPoints(10,'data');
139
    	$chartData->addPoints('10','Labels');
140
    	$chartData->addPoints(120,'data');
141
    	$chartData->addPoints('120','Labels');
142
   
143
    	$chartData->setSerieDescription("Months","Month");
144
    	$chartData->setAbscissa("Labels");
145
    	 
146
    	$imageWidth = 700;
147
    	$imageHeight = 700;
148
    	
149
    	
150
    	//execute with recordImageMap true and verify that the chartPicture is changed
151
    	$chartPicture = new pImage($imageWidth,$imageHeight,$chartData);
152
    	$chartPicture->setGraphArea(60,60,$imageWidth-60,$imageHeight-100);
153
    	$aorChart->buildChartImageRadar($chartPicture,$chartData,true);
154
    	$this->assertNotEquals($chartPicture, new pImage(700,700,$chartData) );
155
    	
156
    	
157
    	
158
    	//execute with recordImageMap false and verify that the chartPicture is changed
159
    	$chartPicture = new pImage(700,700,$chartData);
160
    	$chartPicture->setGraphArea(60,60,$imageWidth-60,$imageHeight-100);
161
    	$aorChart->buildChartImageRadar($chartPicture,$chartData,false);
162
    	$this->assertNotEquals($chartPicture, new pImage(700,700,$chartData) );
163
    	
164
165
    	unset($chartData);
166
    	unset($chartPicture);
167
    	
168
    }
169
170
    public function testbuildChartImage(){
171
172
        $this->markTestSkipped("Skipping testing chart image");
173
174
    	global $current_user;
175
    	
176
    	$current_user->id = "1";
177
    	
178
    	$aorChart = new AOR_Chart();
179
180
    	//preset the required objects and properties
181
    	
182
    	$aorChart->x_field = 'x';
183
    	$aorChart->y_field = 'y';
184
    	
185
    	$fields = Array();
186
    	$fields['x'] = json_decode('{"label": "x"}'); 
187
    	$fields['y'] = json_decode('{"label": "y"}'); 
188
189
    	$reportData = array(array('xx'=>10,'yy'=>10), array('xx'=>20, 'yy'=>20));
190
191
    	//execute the method and verify it returns expected results
192
    	$aorChart->type = 'bar';
193
    	$result = $aorChart->buildChartImage($reportData, $fields);
194
    	$this->assertEquals('data:image/png;base64,',$result);
195
    	
196
    	
197
    	//execute the method and verify it returns expected results
198
    	$aorChart->type = 'Line';
199
    	$result = $aorChart->buildChartImage($reportData, $fields);
200
    	$this->assertEquals('',$result);
201
    	
202
    	
203
    	//execute the method and verify it returns expected results
204
    	$aorChart->type = 'pie';
205
    	$result = $aorChart->buildChartImage($reportData, $fields);
206
    	$this->assertEquals('data:image/png;base64,',$result);
207
    	
208
    	
209
    	//execute the method and verify it returns expected results
210
    	$aorChart->type = 'radar';
211
    	$result = $aorChart->buildChartImage($reportData, $fields,true);
212
		$this->assertEquals('data:image/png;base64,',$result);
213
 
214
    	 
215
    }
216
217
    public function testbuildChartHTML(){
218
        $this->markTestSkipped("Skipping testing chart HTML");
219
    	$aorChart = new AOR_Chart();
220
221
    	//preset the required objects and properties
222
    	$aorChart->x_field = 'x';
223
    	$aorChart->y_field = 'y';
224
    	 
225
    	$fields = Array();
226
    	$fields['x'] = json_decode('{"label": "x"}');
227
    	$fields['y'] = json_decode('{"label": "y"}');
228
    	
229
    	$reportData = array(array('xx'=>10,'yy'=>10), array('xx'=>20, 'yy'=>20));
230
   
231
    	$aorChart->type = 'bar';
232
233
    	//test with type CHART_TYPE_PCHART and verify it returns expected results
234
    	$expected = "<img id='_img' src='data:image/png;base64,'><script>\nSUGAR.util.doWhen(\"typeof addImage != 'undefined'\", function(){\n    addImage('_img','_img_map','index.php?module=AOR_Charts&action=getImageMap&to_pdf=1&imageMapId=0');\n});\n</script>";
235
    	$result = $aorChart->buildChartHTML($reportData, $fields);
236
    	$this->assertSame($expected, $result);
237
    	
238
    	//test with type CHART_TYPE_CHARTJS verify it returns expected results
239
    	$expected = "<h3></h3><canvas id='chart' width='400' height='400'></canvas>        <script>\n        \$(document).ready(function(){\n            SUGAR.util.doWhen(\"typeof Chart != 'undefined'\", function(){\n                var data = {\"labels\":[\"10 [a]\",\"20 [e]\"],\"datasets\":[{\"fillColor\":\"rgba(151,187,205,0.2)\",\"strokeColor\":\"rgba(151,187,205,1)\",\"pointColor\":\"rgba(151,187,205,1)\",\"pointStrokeColor\":\"#fff\",\"pointHighlightFill\":\"#fff\",\"pointHighlightStroke\":\"rgba(151,187,205,1)4\",\"data\":[10,20]}]};\n                var ctx = document.getElementById(\"chart\").getContext(\"2d\");\n                console.log('Creating new chart');\n                var config = [];\n                var chart = new Chart(ctx).Bar(data, config);\n                var legend = chart.generateLegend();\n                $('#chart').after(legend);\n            });\n        });\n        </script>" ;    	
240
    	$result = $aorChart->buildChartHTML($reportData, $fields,0, AOR_Report::CHART_TYPE_CHARTJS);    	
241
    	$this->assertSame($expected, $result);
242
    	 
243
244
    }
245
246
 
247
 
248
}
249