TransactionStrategyTest.php 952 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. declare(strict_types=1);
  3. namespace Cake\Test\TestCase\TestSuite;
  4. use Cake\ORM\TableRegistry;
  5. use Cake\TestSuite\Fixture\TransactionStrategy;
  6. use Cake\TestSuite\TestCase;
  7. class TransactionStrategyTest extends TestCase
  8. {
  9. public $fixtures = ['core.Users'];
  10. /**
  11. * Test that beforeTest starts a transaction that afterTest closes.
  12. *
  13. * @return void
  14. */
  15. public function testTransactionWrapping()
  16. {
  17. $users = TableRegistry::get('Users');
  18. $strategy = new TransactionStrategy();
  19. $strategy->beforeTest();
  20. $user = $users->newEntity(['username' => 'testing', 'password' => 'secrets']);
  21. $users->save($user, ['atomic' => true]);
  22. $this->assertNotEmpty($users->get($user->id), 'User should exist.');
  23. // Rollback and the user should be gone.
  24. $strategy->afterTest();
  25. $this->assertNull($users->findById($user->id)->first(), 'No user expected.');
  26. }
  27. }