public function test_send__always__delegatesSendingToSender()
 {
     // act
     $this->sut->send(self::SOME_MSISDN, self::SOME_CODE);
     // assert
     $expectedSentVerification = new Verification(self::SOME_MSISDN, self::SOME_CODE);
     self::assertTrue($this->fakeSender->sendHaveBeenCalledWith($expectedSentVerification));
 }
 public function test_send__firstSenderFails__delegatesToSecondSender()
 {
     // arrange
     $firstSender = new FakeVerificationSender();
     $firstSender->exception = new GatewayFailureException();
     $secondSender = new FakeVerificationSender();
     $sut = new VerificationSenderFailover([$firstSender, $secondSender]);
     // act
     $sut->send($this->someVerification);
     // assert
     self::assertTrue($secondSender->sendHaveBeenCalledWith($this->someVerification));
 }