Example #1
0
 public function testCircuitOpens()
 {
     $stub = $this->getMockBuilder('FakeCircuit')->setMethods(['foo'])->getMock();
     $stub->method('foo')->will($this->throwException(new \Exception()));
     $cb = new SimpleCircuitBreaker($stub);
     for ($i = 0; $i < 10; $i++) {
         try {
             $cb->foo();
         } catch (\Exception $e) {
         }
     }
     // successful method call should fail with Circuit Open
     $stub->method('foo')->willReturn('bar');
     $this->expectException(CircuitBreakerOpenException::class);
     $cb->foo();
 }