/**
  * @test
  * @expectedException Exception
  * @expectedExceptionMessage fail
  */
 public function it_disposes_if_observer_on_completed_throws()
 {
     $disposed = false;
     $disposable = new CallbackDisposable(function () use(&$disposed) {
         $disposed = true;
     });
     $observer = new AutoDetachObserver(new CallbackObserver(null, null, function () {
         throw new Exception('fail');
     }));
     $observer->setDisposable($disposable);
     $observer->onCompleted();
     $this->assertTrue($disposed);
 }