/**
  * @large
  */
 public function testEnrollmentRequest()
 {
     $creditCard = new CreditCardData();
     $creditCard->creditCardNumber = 4012000300002001;
     $creditCard->setExpirationDate('2019-01');
     $creditCard->cardHolderName = 'John Doe';
     $address = new BillingAddress('John', 'Doe', '550 South Winchester blvd.', 'P.O. Box 850', 'San Jose', '95128', 'CA', 'US', '+1(202)555-1234', '*****@*****.**');
     $trustCenter = new TrustCenterData($address);
     $transaction = new Transaction();
     $transaction->mode = Transaction::MODE_LIVE;
     $transaction->id = '9457892347623478';
     $transaction->amount = new Amount(500);
     $transaction->currency = 'USD';
     $transaction->countryCode = 'US';
     $transaction->creditCardData = $creditCard;
     $transaction->trustCenterData = $trustCenter;
     $check = new EnrollmentCheck($transaction);
     $job = Job::createEnrollmentJob(self::SIGNATURE, $check);
     $request = new Request($job);
     /** @var WireCard $wireCard */
     $wireCard = WireCard::createWithRequest($request);
     $body = $this->serializer->serialize($wireCard, 'xml');
     $response = $this->client->send($this->createRequest($body));
     $wireCard = $this->serializer->deserialize($response->getBody(true), 'Wirecard\\Element\\WireCard', 'xml');
     $response = $wireCard->response;
     $this->assertTrue($response->isSuccessful());
     $this->assertTrue($response->isRedirect());
     $this->assertNotNull($response->getUrl());
     $this->assertNotNull($response->getToken());
     $this->assertNull($response->getMessage());
     return $response;
 }
 /**
  * @inheritdoc
  */
 protected function buildData()
 {
     $transaction = $this->buildTransaction();
     $check = new EnrollmentCheck($transaction);
     return Job::createEnrollmentJob($this->getSignature(), $check);
 }