示例#1
0
 function testUnserializeAndStripeFailures()
 {
     $billingAddress = $this->getUSAddress();
     $lineItem = $this->getElectronicServiceLineItem();
     $successOutput = [];
     /** @var Basket $view */
     $view = $this->prepareBasket($lineItem, $successOutput, $billingAddress);
     $state = $view->getStateForTesting();
     $serialised = serialize($view);
     /** @var Basket $unserialised */
     $unserialised = unserialize($serialised);
     $unserialised->updateView(['transactionSuccessCallback' => $this->successCallback]);
     $state = $view->getStateForTesting();
     $this->assertTrue($state->readyForPaymentInfo());
     // Check stripe method fails
     StripeFacade::$testMode = true;
     /** @var Basket $uns */
     $unserialised = unserialize($serialised);
     $this->failOn3DifferentCountries($unserialised);
     /** @var Basket $uns */
     $unserialised = unserialize($serialised);
     $this->failOnOnlyIPandCardMatch($unserialised);
     /** @var Basket $uns */
     $unserialised = unserialize($serialised);
     $this->succeedOnSameAddressAndCardCountries($unserialised, $successOutput);
     /** @var Basket $uns */
     $unserialised = unserialize($serialised);
     $this->succeedOnAllCountriesMatch($unserialised, $successOutput);
 }