ToggleBehaviorTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. namespace Tools\Test\TestCase\Model\Behavior;
  3. use Shim\TestSuite\TestCase;
  4. class ToggleBehaviorTest extends TestCase {
  5. /**
  6. * @var array
  7. */
  8. protected $fixtures = [
  9. 'plugin.Tools.ToggleAddresses',
  10. ];
  11. /**
  12. * @var \Tools\Model\Table\Table|\Tools\Model\Behavior\ToggleBehavior
  13. */
  14. protected $Addresses;
  15. /**
  16. * @return void
  17. */
  18. public function setUp(): void {
  19. parent::setUp();
  20. $this->Addresses = $this->getTableLocator()->get('ToggleAddresses');
  21. $this->Addresses->addBehavior('Tools.Toggle', ['scopeFields' => 'category_id']);
  22. }
  23. /**
  24. * @return void
  25. */
  26. public function testSaveBasic() {
  27. $data = [
  28. 'name' => 'Foo Bar',
  29. 'category_id' => 2,
  30. ];
  31. $entity = $this->Addresses->newEntity($data);
  32. $address = $this->Addresses->save($entity);
  33. $this->assertTrue((bool)$address);
  34. $this->assertTrue($address->primary);
  35. $data = [
  36. 'name' => 'Foo Bar Ext',
  37. 'category_id' => 2,
  38. ];
  39. $entity2 = $this->Addresses->newEntity($data);
  40. $address = $this->Addresses->save($entity2);
  41. $this->assertTrue((bool)$address);
  42. $address = $this->Addresses->get($entity2->id);
  43. $this->assertFalse($address->primary);
  44. $address->primary = true;
  45. $address = $this->Addresses->save($address);
  46. $this->assertTrue((bool)$address);
  47. $address = $this->Addresses->get($address->id);
  48. $this->assertTrue($address->primary);
  49. $address = $this->Addresses->get($entity->id);
  50. $this->assertFalse($address->primary);
  51. }
  52. /**
  53. * @return void
  54. */
  55. public function testDelete() {
  56. $data = [
  57. 'name' => 'Foo Bar',
  58. 'category_id' => 2,
  59. ];
  60. $entity = $this->Addresses->newEntity($data);
  61. $address = $this->Addresses->save($entity);
  62. $this->assertTrue((bool)$address);
  63. $this->assertTrue($address->primary);
  64. $data = [
  65. 'name' => 'Foo Bar Ext',
  66. 'category_id' => 2,
  67. 'primary' => true,
  68. ];
  69. $address2 = $this->Addresses->newEntity($data);
  70. $address2 = $this->Addresses->save($address2);
  71. $this->assertTrue((bool)$address2);
  72. $address = $this->Addresses->get($address->id);
  73. $this->assertFalse($address->primary);
  74. $address2 = $this->Addresses->get($address2->id);
  75. $this->assertTrue($address2->primary);
  76. $this->Addresses->delete($address2);
  77. $address = $this->Addresses->get($address->id);
  78. $this->assertTrue($address->primary);
  79. }
  80. /**
  81. * @return void
  82. */
  83. public function testToggleField() {
  84. $data = [
  85. 'name' => 'Foo Bar',
  86. 'category_id' => 2,
  87. ];
  88. $entity = $this->Addresses->newEntity($data);
  89. $address = $this->Addresses->save($entity);
  90. $this->assertTrue((bool)$address);
  91. $this->assertTrue($address->primary);
  92. $data = [
  93. 'name' => 'Foo Bar Ext',
  94. 'category_id' => 2,
  95. 'primary' => true,
  96. ];
  97. $address2 = $this->Addresses->newEntity($data);
  98. $address2 = $this->Addresses->save($address2);
  99. $this->assertTrue((bool)$address2);
  100. $address = $this->Addresses->get($address->id);
  101. $this->assertFalse($address->primary);
  102. $address2 = $this->Addresses->get($address2->id);
  103. $this->assertTrue($address2->primary);
  104. $this->Addresses->toggleField($address);
  105. $address = $this->Addresses->get($address->id);
  106. $this->assertTrue($address->primary);
  107. $address2 = $this->Addresses->get($address2->id);
  108. $this->assertFalse($address2->primary);
  109. }
  110. }