Odyssey
AuditTest.php
1 <?php
2 
3 use PHPUnit\Framework\TestCase;
4 
5 /**
6  * @var AuditTest
7  * Tests the aAudit.i file.
8  */
9 class AuditTest extends TestCase {
10 
11  /**
12  * function setUp()
13  * Includes the file to test.
14  */
15  function setUp() {
16  $admLibrary = "/var/www/html/admcom/library";
17  require_once("$admLibrary/aAudit.i");
18  }
19 
20  /**
21  * function test_ValidateParseUserAuditRow()
22  * Test the _ValidateParseUserAuditRow function.
23  */
25  $row = null;
26  $Cu = null;
27  $dbh = null;
28  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
29  $this->assertEquals($results["error"], "Row is invalid.");
30 
31  $row = "invalid";
32  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
33  $this->assertEquals($results["error"], "Row is invalid.");
34 
35  $row = array();
36  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
37  $this->assertEquals($results["error"], "Cu is invalid.");
38 
39  $Cu = "NOCU";
40  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
41  $this->assertEquals($results["error"], "Dbh is invalid.");
42 
43  $dbh = "just needs to be set";
44  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
45  $this->assertEquals($results["error"], "Row is not valid.");
46 
47  $row = array("before" => "");
48  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
49  $this->assertEquals($results["error"], "Row is not valid.");
50 
51  $row = array("before" => "", "after" => ""); // Has both "before" and "after" attributes.
52  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
53  $this->assertEquals($results["error"], "Before JSON is not valid.");
54 
55  $row["before"] = "[]";
56  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
57  $this->assertEquals($results["error"], "After JSON is not valid.");
58 
59  $row["after"] = "{\"ifOnInternet\":true}";
60  $results = _ValidateParseUserAuditRow($row, $Cu, $dbh);
61  $this->assertEquals($results["status"], "000");
62  $this->assertEquals($results["data"]["details"], array());
63  $this->assertEquals($results["data"]["after"]["ifOnInternet"], true);
64  $this->assertEquals($results["data"]["before"], array());
65  }
66 
67  /**
68  * function test_ValidateTable()
69  * Tests the _ValidateTable function.
70  */
71  function test_ValidateTable() {
72  $table = null;
73  $after = null;
74  $tableDefinition = null;
75  $results = _ValidateTable ($table, $after, $tableDefinition);
76  $this->assertEquals($results["error"], "Table is invalid.");
77 
78  $table = "table";
79  $results = _ValidateTable ($table, $after, $tableDefinition);
80  $this->assertEquals($results["error"], "After is invalid.");
81 
82  $after = array();
83  $results = _ValidateTable ($table, $after, $tableDefinition);
84  $this->assertEquals($results["error"], "Table definition is invalid.");
85 
86  $tableDefinition = array();
87  $results = _ValidateTable ($table, $after, $tableDefinition);
88  $this->assertEquals($results["error"], "Table mismatch.");
89 
90  $after = array("table" => array());
91  $results = _ValidateTable ($table, $after, $tableDefinition);
92  $this->assertEquals($results["status"], "000");
93  $this->assertEquals($results["data"]["afterTable"], array());
94  $this->assertEquals($results["data"]["dontDoTableForeach"], false);
95  $this->assertEquals($results["data"]["newTableRow"], array("table" => "table", "label" => "table", "rows" => array()));
96 
97  $tableDefinition = array("_label" => "label");
98  $results = _ValidateTable ($table, $after, $tableDefinition);
99  $this->assertEquals($results["status"], "000");
100  $this->assertEquals($results["data"]["newTableRow"]["label"], "label");
101  }
102 
103  /**
104  * function test_DoGroupAudit()
105  * Tests the _DoGroupAudit function.
106  */
107  function test_DoGroupAudit() {
108  $table = "not group";
109  $newTableRow = null;
110  $changedRows = null;
111  $afterTable = null;
112  $results = _DoGroupAudit ($table, $newTableRow, $changedRows, $afterTable);
113  $this->assertEquals($results["error"], "Table isn't \"group\".");
114 
115  $table = "group";
116  $results = _DoGroupAudit ($table, $newTableRow, $changedRows, $afterTable);
117  $this->assertEquals($results["error"], "New table row isn't valid.");
118 
119  $newTableRow = array();
120  $results = _DoGroupAudit ($table, $newTableRow, $changedRows, $afterTable);
121  $this->assertEquals($results["error"], "Changed Rows isn't valid.");
122 
123  $changedRows = array();
124  $results = _DoGroupAudit ($table, $newTableRow, $changedRows, $afterTable);
125  $this->assertEquals($results["error"], "After table isn't valid.");
126 
127  $afterTable = array();
128  $results = _DoGroupAudit ($table, $newTableRow, $changedRows, $afterTable);
129  $this->assertEquals($results["error"], "Group audit is invalid.");
130 
131  $changedRows = array(array("group_name" => "group1"));
132  $results = _DoGroupAudit ($table, $newTableRow, $changedRows, $afterTable);
133  $this->assertEquals($results["status"], "000");
134  $this->assertEquals($results["data"]["newTableRow"]["altDesc"], "<b>group1</b> was removed.");
135 
136  $afterTable = array(array("group_name" => "group2"));
137  $results = _DoGroupAudit ($table, $newTableRow, $changedRows, $afterTable);
138  $this->assertEquals($results["status"], "000");
139  $this->assertEquals($results["data"]["newTableRow"]["altDesc"], "<b>group1</b> was changed.");
140  // Takes the $changedRow's value. User audit can only remove group or add group on user add or user delete respectively.
141 
142  $changedRows = array();
143  $results = _DoGroupAudit ($table, $newTableRow, $changedRows, $afterTable);
144  $this->assertEquals($results["status"], "000");
145  $this->assertEquals($results["data"]["newTableRow"]["altDesc"], "<b>group2</b> was added.");
146  }
147 
148  /**
149  * function test_ValidateParseUserAuditTable()
150  * Tests the _ValidateParseUserAuditTable function.
151  */
153  $changedRows = null;
154  $afterTable = null;
155  $tableDefinition = null;
156  $table = null;
157  $dbh = null;
158  $Cu = null;
159  $results = _ValidateParseUserAuditTable ($changedRows, $afterTable, $tableDefinition, $table, $dbh, $Cu);
160  $this->assertEquals($results["error"], "Changed rows is not valid.");
161 
162  $changedRows = array();
163  $results = _ValidateParseUserAuditTable ($changedRows, $afterTable, $tableDefinition, $table, $dbh, $Cu);
164  $this->assertEquals($results["error"], "After table is not valid.");
165 
166  $afterTable = array();
167  $results = _ValidateParseUserAuditTable ($changedRows, $afterTable, $tableDefinition, $table, $dbh, $Cu);
168  $this->assertEquals($results["error"], "Table definition is not valid.");
169 
170  $tableDefinition = array();
171  $results = _ValidateParseUserAuditTable ($changedRows, $afterTable, $tableDefinition, $table, $dbh, $Cu);
172  $this->assertEquals($results["error"], "Table is not valid.");
173 
174  $table = "table";
175  $results = _ValidateParseUserAuditTable ($changedRows, $afterTable, $tableDefinition, $table, $dbh, $Cu);
176  $this->assertEquals($results["error"], "Dbh is not valid.");
177 
178  $dbh = 2;
179  $results = _ValidateParseUserAuditTable ($changedRows, $afterTable, $tableDefinition, $table, $dbh, $Cu);
180  $this->assertEquals($results["error"], "Cu is not valid.");
181 
182  $Cu = "NOCU";
183  $results = _ValidateParseUserAuditTable ($changedRows, $afterTable, $tableDefinition, $table, $dbh, $Cu);
184  $this->assertEquals($results["status"], "000");
185  }
186 
187  /**
188  * function test_GetMemberAcctRightsDescrs()
189  * tests the GetMemberAcctRightsDescrs function.
190  */
192  $changedRows = null;
193  $afterTable = null;
194  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
195  $this->assertEquals($results["error"], "Changed Rows is not valid.");
196 
197  $changedRows = array();
198  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
199  $this->assertEquals($results["error"], "After table is not valid.");
200 
201  $afterTable = array();
202  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
203  $this->assertEquals($results["error"], "Member acct audit doesn't have any information.");
204 
205  $changedRows = array(array());
206  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
207  $this->assertEquals($results["error"], "Member acct audit doesn't have any information.");
208 
209  $changedRows = array(array(), array("invalid" => "invalid"));
210  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
211  $this->assertEquals($results["error"], "Before right is not found.");
212 
213  $afterTable = array(array(1));
214  $changedRows = array(array("whichright" => "set"));
215  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
216  $this->assertEquals($results["error"], "Before accountnumber is not found.");
217 
218  $changedRows = array(array("whichright" => "set", "accountnumber" => "set"));
219  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
220  $this->assertEquals($results["error"], "After right is not found.");
221 
222  $afterTable = array(array("whichright" => "set"));
223  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
224  $this->assertEquals($results["error"], "After accountnumber is not found.");
225 
226 
227  $changedRows = array(array("whichright" => "set", "platform" => "[\"not used\"]", "accountnumber" => "set"));
228  $afterTable = array(array("whichright" => "set", "accountnumber" => "set"));
229  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
230  $this->assertEquals($results["error"], "Before platform is invalid.");
231 
232  $afterTable = array(array("whichright" => "set", "platform" => "[\"error\"]", "accountnumber" => "set"));
233  $changedRows = array(array("whichright" => "set", "accountnumber" => "set"));
234  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
235  $this->assertEquals($results["error"], "After platform is invalid.");
236 
237  $afterTable = array(array("whichright" => "set", "platform" => "[\"A\"]", "accountnumber" => "set"));
238  $changedRows = array(array("whichright" => "set", "accountnumber" => "set"));
239  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
240  $this->assertEquals($results["error"], "Right is not valid.");
241 
242  $changedRows = array(array("whichright" => "ACCESS", "accountnumber" => "11"));
243  $afterTable = array(array("whichright" => "RDC", "accountnumber" => "22", "platform" => "[\"A\"]"));
244  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
245  $this->assertEquals($results["status"], "000");
246  $this->assertEquals($results["returnedRows"][0], array("type" => "desc", "value" => array(), "altDesc" => "<b>11</b>: Removed access rights."));
247  $this->assertEquals($results["returnedRows"][1]["altDesc"], "<b>22</b>: Added RDC rights for the apps.");
248 
249  $changedRows = array(array("whichright" => "ES", "accountnumber" => "11", "platform" => "[\"A\"]"), array("whichright" => "BP", "accountnumber" => "22", "platform" => "[\"D\"]"));
250  $afterTable = array(array("whichright" => "BP", "accountnumber" => "22", "platform" => "[\"A\"]"), array("whichright" => "ES", "accountnumber" => "11", "platform" => "[\"D\"]"));
251  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
252  $this->assertEquals($results["status"], "000");
253  $this->assertEquals($results["returnedRows"][0]["altDesc"], "<b>11</b>: Changed eStatement rights from apps to desktop.");
254  $this->assertEquals($results["returnedRows"][1]["altDesc"], "<b>22</b>: Changed BillPay rights from desktop to apps.");
255 
256  // Change: make sure that there are distinct labels for different accounts.
257  $changedRows = array(array("whichright" => "ES", "accountnumber" => "11", "platform" => "[\"A\"]"));
258  $afterTable = array(array("whichright" => "ES", "accountnumber" => "22", "platform" => "[\"D\"]"));
259  $results = GetMemberAcctRightsDescrs($changedRows, $afterTable);
260  $this->assertEquals($results["status"], "000");
261  $this->assertEquals($results["returnedRows"][0]["altDesc"], "<b>11</b>: Removed eStatement rights for the apps.");
262  $this->assertEquals($results["returnedRows"][1]["altDesc"], "<b>22</b>: Added eStatement rights for desktop.");
263  }
264 }
test_ValidateTable()
Definition: AuditTest.php:71
test_ValidateParseUserAuditRow()
Definition: AuditTest.php:24
test_DoGroupAudit()
Definition: AuditTest.php:107
test_GetMemberAcctRightsDescrs()
Definition: AuditTest.php:191
test_ValidateParseUserAuditTable()
Definition: AuditTest.php:152