VPN licensing server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.9KB

  1. <?php
  2. class HelperTest extends SimpleTest {
  3. function test_1_verticalslice() {
  4. $all = DB::query("SELECT * FROM accounts ORDER BY id ASC");
  5. $names = DBHelper::verticalSlice($all, 'username');
  6. $this->assert(count($names) === 5);
  7. $this->assert($names[0] === 'Abe');
  8. $ages = DBHelper::verticalSlice($all, 'age', 'username');
  9. $this->assert(count($ages) === 5);
  10. $this->assert($ages['Abe'] === '700');
  11. }
  12. function test_2_reindex() {
  13. $all = DB::query("SELECT * FROM accounts ORDER BY id ASC");
  14. $names = DBHelper::reIndex($all, 'username');
  15. $this->assert(count($names) === 5);
  16. $this->assert($names['Bart']['username'] === 'Bart');
  17. $this->assert($names['Bart']['age'] === '15');
  18. $names = DBHelper::reIndex($all, 'username', 'age');
  19. $this->assert($names['Bart']['15']['username'] === 'Bart');
  20. $this->assert($names['Bart']['15']['age'] === '15');
  21. }
  22. function test_3_empty() {
  23. $none = DB::query("SELECT * FROM accounts WHERE username=%s", 'doesnotexist');
  24. $this->assert(is_array($none) && count($none) === 0);
  25. $names = DBHelper::verticalSlice($none, 'username', 'age');
  26. $this->assert(is_array($names) && count($names) === 0);
  27. $names_other = DBHelper::reIndex($none, 'username', 'age');
  28. $this->assert(is_array($names_other) && count($names_other) === 0);
  29. }
  30. function test_4_null() {
  31. DB::query("UPDATE accounts SET password = NULL WHERE username=%s", 'Bart');
  32. $all = DB::query("SELECT * FROM accounts ORDER BY id ASC");
  33. $ages = DBHelper::verticalSlice($all, 'age', 'password');
  34. $this->assert(count($ages) === 5);
  35. $this->assert($ages[''] === '15');
  36. $passwords = DBHelper::reIndex($all, 'password');
  37. $this->assert(count($passwords) === 5);
  38. $this->assert($passwords['']['username'] === 'Bart');
  39. $this->assert($passwords['']['password'] === NULL);
  40. }
  41. }
  42. ?>