Open Journal Systems  3.3.0
AbstractBackoffStrategyTest.php
1 <?php
2 
4 
8 
13 {
14  protected function getMockStrategy()
15  {
16  return $this->getMockBuilder('Guzzle\Plugin\Backoff\AbstractBackoffStrategy')
17  ->setMethods(array('getDelay', 'makesDecision'))
18  ->getMockForAbstractClass();
19  }
20 
22  {
23  $request = new Request('GET', 'http://www.foo.com');
24  $mock = $this->getMockStrategy();
25  $mock->expects($this->atLeastOnce())->method('getDelay')->will($this->returnValue(null));
26  $this->assertEquals(0, $mock->getBackoffPeriod(0, $request));
27  }
28 
29  public function testReturnsFalse()
30  {
31  $request = new Request('GET', 'http://www.foo.com');
32  $mock = $this->getMockStrategy();
33  $mock->expects($this->atLeastOnce())->method('getDelay')->will($this->returnValue(false));
34  $this->assertEquals(false, $mock->getBackoffPeriod(0, $request));
35  }
36 
38  {
39  $request = new Request('GET', 'http://www.foo.com');
40  $mock = $this->getMockStrategy();
41  $mock->expects($this->atLeastOnce())->method('getDelay')->will($this->returnValue(null));
42  $mock->expects($this->any())->method('makesDecision')->will($this->returnValue(false));
43 
44  $mock2 = $this->getMockStrategy();
45  $mock2->expects($this->atLeastOnce())->method('getDelay')->will($this->returnValue(10));
46  $mock2->expects($this->atLeastOnce())->method('makesDecision')->will($this->returnValue(true));
47  $mock->setNext($mock2);
48 
49  $this->assertEquals(10, $mock->getBackoffPeriod(0, $request));
50  }
51 
53  {
54  $request = new Request('GET', 'http://www.foo.com');
55  $s = new TruncatedBackoffStrategy(2);
56  $this->assertFalse($s->getBackoffPeriod(0, $request));
57  }
58 
59  public function testHasNext()
60  {
61  $a = new TruncatedBackoffStrategy(2);
62  $b = new TruncatedBackoffStrategy(2);
63  $a->setNext($b);
64  $this->assertSame($b, $a->getNext());
65  }
66 
68  {
69  $a = new CallbackBackoffStrategy(function () { return null; }, true);
70  $b = new CallbackBackoffStrategy(function () { return true; }, true);
71  $c = new CallbackBackoffStrategy(function () { return null; }, true);
72  $d = new CallbackBackoffStrategy(function () { return 10; }, false);
73  $a->setNext($b);
74  $b->setNext($c);
75  $c->setNext($d);
76  $this->assertEquals(10, $a->getBackoffPeriod(2, new Request('GET', 'http://www.foo.com')));
77  }
78 
80  {
81  $a = new CallbackBackoffStrategy(function () { return null; }, true);
82  $b = new CallbackBackoffStrategy(function () { return true; }, true);
83  $a->setNext($b);
84  $this->assertSame(0, $a->getBackoffPeriod(2, new Request('GET', 'http://www.foo.com')));
85  }
86 }
Guzzle\Tests\GuzzleTestCase
Definition: GuzzleTestCase.php:22
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest\testReturnsZeroWhenDecisionMakerReturnsTrueButNoFurtherStrategiesAreInTheChain
testReturnsZeroWhenDecisionMakerReturnsTrueButNoFurtherStrategiesAreInTheChain()
Definition: AbstractBackoffStrategyTest.php:79
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest\testHasNext
testHasNext()
Definition: AbstractBackoffStrategyTest.php:59
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest\getMockStrategy
getMockStrategy()
Definition: AbstractBackoffStrategyTest.php:14
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest\testReturnsFalseWhenNullAndNoNext
testReturnsFalseWhenNullAndNoNext()
Definition: AbstractBackoffStrategyTest.php:52
Guzzle\Plugin\Backoff\CallbackBackoffStrategy
Definition: CallbackBackoffStrategy.php:13
Guzzle\Plugin\Backoff\AbstractBackoffStrategy\setNext
setNext(AbstractBackoffStrategy $next)
Definition: AbstractBackoffStrategy.php:21
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest\testReturnsZeroWhenNoNextAndGotNull
testReturnsZeroWhenNoNextAndGotNull()
Definition: AbstractBackoffStrategyTest.php:21
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest\testReturnsNextValueWhenNullOrTrue
testReturnsNextValueWhenNullOrTrue()
Definition: AbstractBackoffStrategyTest.php:37
Guzzle\Http\Message\Request
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php:25
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest\testSkipsOtherDecisionsInChainWhenOneReturnsTrue
testSkipsOtherDecisionsInChainWhenOneReturnsTrue()
Definition: AbstractBackoffStrategyTest.php:67
Guzzle\Plugin\Backoff\TruncatedBackoffStrategy
Definition: TruncatedBackoffStrategy.php:12
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest
Definition: AbstractBackoffStrategyTest.php:12
Guzzle\Tests\Plugin\Backoff\AbstractBackoffStrategyTest\testReturnsFalse
testReturnsFalse()
Definition: AbstractBackoffStrategyTest.php:29
Guzzle\Tests\Plugin\Backoff
Definition: AbstractBackoffStrategyTest.php:3