ChadoRecordTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. namespace Tests;
  3. use StatonLab\TripalTestSuite\DBTransaction;
  4. use StatonLab\TripalTestSuite\TripalTestCase;
  5. module_load_include('inc', 'tripal_chado', 'includes/api/ChadoRecord');
  6. class ChadoRecordTest extends TripalTestCase {
  7. use DBTransaction;
  8. /**
  9. * Data provider. A variety of chado records.
  10. *
  11. * @return array
  12. */
  13. public function recordProvider() {
  14. //table, factory or NULL, record_id or NULL
  15. $a = factory('chado.feature')->create();
  16. $b = factory('chado.organism')->create();
  17. return [
  18. ['feature', NULL, NULL],
  19. ['feature', $a->feature_id, $a],
  20. ['organism', $b->organism_id, $b],
  21. ];
  22. }
  23. /**
  24. * Tests that the class can be initiated with or without a record specified
  25. *
  26. * @group api
  27. * @group chado
  28. * @group wip
  29. * @dataProvider recordProvider
  30. */
  31. public function testInitClass($table, $id, $factory) {
  32. $record = new \ChadoRecord($table);
  33. $this->assertNotNull($record);
  34. $record = new \ChadoRecord($table, $id);
  35. $this->assertNotNull($record);
  36. }
  37. /**
  38. * @group api
  39. * @group chado
  40. * @group wip
  41. * @throws \Exception
  42. * @dataProvider recordProvider
  43. */
  44. public function testGetTable($table, $id, $factory) {
  45. $record = new \ChadoRecord($table, $id);
  46. $this->assertEquals($table, $record->getTable());
  47. }
  48. /**
  49. * @group wip
  50. * @group api
  51. * @group chado
  52. * @dataProvider recordProvider
  53. *
  54. * @throws \Exception
  55. */
  56. public function testGetID($table, $id, $factory) {
  57. $record = new \ChadoRecord($table, $id);
  58. $returned_id = $record->getID();
  59. if ($id) {
  60. $this->assertEquals($id, $returned_id);
  61. }
  62. else {
  63. $this->assertNull($returned_id);
  64. }
  65. }
  66. /**
  67. * @group api
  68. * @group wip
  69. * @group chado
  70. * @dataProvider recordProvider
  71. *
  72. *
  73. */
  74. public function testGetValues($table, $id, $factory) {
  75. $record = new \ChadoRecord($table, $id);
  76. if (!$id) {
  77. $returned_vals = $record->getValues();
  78. $this->assertEmpty($returned_vals);
  79. }
  80. else {
  81. $values = $record->getValues();
  82. $this->assertNotEmpty($values);
  83. foreach ($factory as $key => $value) {
  84. $this->assertArrayHasKey($key, $values);
  85. $this->assertEquals($value, $values[$key]);
  86. }
  87. }
  88. }
  89. /**
  90. * @group api
  91. * @group wip
  92. * @group chado
  93. * @dataProvider recordProvider
  94. *
  95. */
  96. public function testGetValue($table, $id, $factory) {
  97. $record = new \ChadoRecord($table, $id);
  98. if (!$id) {
  99. $returned_id = $record->getValue($table . '_id');
  100. $this->assertNull($returned_id);
  101. //need to set first.
  102. }
  103. else {
  104. foreach ($factory as $key => $value) {
  105. $returned_value = $record->getValue($key);
  106. $this->assertEquals($value, $returned_value);
  107. }
  108. }
  109. }
  110. }