SummationRowTest.php
4.99 KB
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
include_once(dirname(dirname(__FILE__)) . '/SummationRow.php');
class SummationRowTest extends PHPUnit_Framework_TestCase {
public function test_no_data_no_fields() {
$sum = new SummationRow();
$results = $sum->getTransformedData();
$this->assertTrue(is_array($results));
$this->assertEmpty($results);
}
public function test_no_data() {
$sum = new SummationRow('alpha', 'beta');
$results = $sum->getTransformedData();
$this->assertTrue(is_array($results));
$this->assertEmpty($results);
}
public function test_no_fields_to_sum() {
$sum = new SummationRow('alpha', 'beta');
$row = array('gamma' => '1', 'omega' => '2');
$sum->addEntry($row);
$results = $sum->getTransformedData();
$this->assertTrue(is_array($results));
$this->assertEquals(2, count($results));
$this->assertEquals(2, count($results[0]));
$this->assertEquals(2, count($results[1]));
$this->assertEquals('', $results[1]['alpha']);
$this->assertEquals('', $results[1]['beta']);
$this->assertTrue(isset($results[1]['gamma']));
$this->assertTrue(isset($results[1]['omega']));
$this->assertFalse(isset($results[1]['alpha']));
}
public function test_one_row_to_sum() {
$sum = new SummationRow('alpha', 'beta');
$row = array('alpha' => '1', 'beta' => '2');
$sum->addEntry($row);
$results = $sum->getTransformedData();
$this->assertTrue(is_array($results));
$this->assertEquals(2, count($results));
$this->assertEquals(2, count($results[0]));
$this->assertEquals(2, count($results[1]));
$this->assertEquals(1, $results[1]['alpha']);
$this->assertEquals(2, $results[1]['beta']);
}
public function test_several_rows_to_sum() {
$sum = new SummationRow('alpha', 'beta');
$row = array('alpha' => '1', 'beta' => '20');
$sum->addEntry($row);
$row = array('alpha' => '2', 'beta' => '30');
$sum->addEntry($row);
$row = array('alpha' => '3', 'beta' => '60');
$sum->addEntry($row);
$results = $sum->getTransformedData();
$this->assertTrue(is_array($results));
$this->assertEquals(4, count($results));
$this->assertEquals(2, count($results[0]));
$this->assertEquals(2, count($results[3]));
$this->assertEquals(6, $results[3]['alpha']);
$this->assertEquals(110, $results[3]['beta']);
}
public function test_rows_with_string_in_the_mix_to_sum() {
$sum = new SummationRow('alpha', 'beta');
$row = array('alpha' => '5', 'beta' => '20');
$sum->addEntry($row);
$row = array('alpha' => 'timber', 'beta' => '30');
$sum->addEntry($row);
$row = array('alpha' => '7', 'beta' => '60');
$sum->addEntry($row);
$results = $sum->getTransformedData();
$this->assertTrue(is_array($results));
$this->assertEquals(4, count($results));
$this->assertEquals(2, count($results[0]));
$this->assertEquals(2, count($results[3]));
$this->assertEquals(12, $results[3]['alpha']);
$this->assertEquals(110, $results[3]['beta']);
}
public function test_several_rows_to_sum_with_hardcoded() {
$sum = new SummationRow('alpha', 'beta', 'Name:Total:');
$row = array('alpha' => '1', 'beta' => '20', 'Name' => 'Mike1');
$sum->addEntry($row);
$row = array('alpha' => '2', 'beta' => '30', 'Name' => 'Mike2');
$sum->addEntry($row);
$row = array('alpha' => '3', 'beta' => '60', 'Name' => 'Mike3');
$sum->addEntry($row);
$results = $sum->getTransformedData();
$this->assertTrue(is_array($results));
$this->assertEquals(4, count($results));
$this->assertEquals(3, count($results[0]));
$this->assertEquals(3, count($results[3]));
$this->assertEquals(6, $results[3]['alpha']);
$this->assertEquals(110, $results[3]['beta']);
$this->assertEquals('Total:', $results[3]['Name']);
}
public function test_several_rows_to_sum_with_hardcoded_and_empty() {
$sum = new SummationRow('alpha', 'beta', 'Name:Total:');
$row = array('alpha' => '1', 'beta' => '20', 'gamma' => 7, 'Name' => 'Mike1');
$sum->addEntry($row);
$row = array('alpha' => '2', 'beta' => '30', 'gamma' => 7, 'Name' => 'Mike2');
$sum->addEntry($row);
$row = array('alpha' => '3', 'beta' => '60', 'gamma' => 7, 'Name' => 'Mike3');
$sum->addEntry($row);
$results = $sum->getTransformedData();
$this->assertTrue(is_array($results));
$this->assertEquals(4, count($results));
$this->assertEquals(4, count($results[0]));
$this->assertEquals(4, count($results[3]));
$this->assertEquals(6, $results[3]['alpha']);
$this->assertEquals(110, $results[3]['beta']);
$this->assertEquals('Total:', $results[3]['Name']);
$this->assertEquals('', $results[3]['gamma']);
}
}