TransactionDiscardTest.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /*
  3. * This file is part of the Predis package.
  4. *
  5. * (c) Daniele Alessandri <suppakilla@gmail.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Predis\Commands;
  11. use \PHPUnit_Framework_TestCase as StandardTestCase;
  12. /**
  13. * @group commands
  14. * @group realm-transaction
  15. */
  16. class TransactionDiscardTest extends CommandTestCase
  17. {
  18. /**
  19. * {@inheritdoc}
  20. */
  21. protected function getExpectedCommand()
  22. {
  23. return 'Predis\Commands\TransactionDiscard';
  24. }
  25. /**
  26. * {@inheritdoc}
  27. */
  28. protected function getExpectedId()
  29. {
  30. return 'DISCARD';
  31. }
  32. /**
  33. * @group disconnected
  34. */
  35. public function testFilterArguments()
  36. {
  37. $command = $this->getCommand();
  38. $command->setArguments(array());
  39. $this->assertSame(array(), $command->getArguments());
  40. }
  41. /**
  42. * @group disconnected
  43. */
  44. public function testParseResponse()
  45. {
  46. $this->assertTrue($this->getCommand()->parseResponse(true));
  47. }
  48. /**
  49. * @group connected
  50. */
  51. public function testAbortsTransactionAndRestoresNormalFlow()
  52. {
  53. $redis = $this->getClient();
  54. $redis->multi();
  55. $this->assertInstanceOf('Predis\ResponseQueued', $redis->set('foo', 'bar'));
  56. $this->assertTrue($redis->discard());
  57. $this->assertFalse($redis->exists('foo'));
  58. }
  59. /**
  60. * @group connected
  61. * @expectedException Predis\ServerException
  62. * @expectedExceptionMessage ERR DISCARD without MULTI
  63. */
  64. public function testThrowsExceptionWhenCallingOutsideTransaction()
  65. {
  66. $redis = $this->getClient();
  67. $redis->discard();
  68. }
  69. }