Esempio n. 1
0
 /**
  * Test saveAction controller action - Update an existing customer
  *
  * @depends testAddCustomerPaymentDataWithDebit
  */
 public function testUpdateCustomerPaymentDataWithSepa($dummyDataId)
 {
     $dummyData = $this->repository->find($dummyDataId);
     $sepa = $this->manager->getRepository('Shopware\\Models\\Payment\\Payment')->findOneBy(array('name' => 'sepa'));
     $debit = $this->manager->getRepository('Shopware\\Models\\Payment\\Payment')->findOneBy(array('name' => 'debit'));
     $this->assertEquals($debit->getId(), $dummyData->getPaymentId());
     $this->assertCount(1, $dummyData->getPaymentData()->toArray());
     $params = array('id' => $dummyData->getId(), 'paymentId' => $sepa->getId(), 'paymentData' => array(array('accountHolder' => '', 'accountNumber' => '', 'bankCode' => '', 'bankName' => 'European bank name', 'bic' => '123bic312', 'iban' => '456iban654', 'useBillingData' => true)));
     $this->Request()->setMethod('POST')->setPost($params);
     $this->dispatch('/backend/Customer/save');
     $jsonBody = $this->View()->getAssign();
     $this->assertTrue($this->View()->success);
     $this->assertEquals($sepa->getId(), $jsonBody['data']['paymentId']);
     $this->manager->refresh($dummyData);
     $this->assertEquals($sepa->getId(), $dummyData->getPaymentId());
     $paymentDataArray = $dummyData->getPaymentData()->toArray();
     $this->assertCount(2, $paymentDataArray);
     // Old debit payment data is still there, it's just not used currently
     /** @var \Shopware\Models\Customer\PaymentData $paymentData */
     $paymentData = array_shift($paymentDataArray);
     $this->assertInstanceOf('\\Shopware\\Models\\Customer\\PaymentData', $paymentData);
     $this->assertEquals('Account Holder Name', $paymentData->getAccountHolder());
     $this->assertEquals('1234567890', $paymentData->getAccountNumber());
     $this->assertEquals('2345678901', $paymentData->getBankCode());
     $this->assertEquals('Bank name', $paymentData->getBankName());
     $this->assertEmpty($paymentData->getBic());
     $this->assertEmpty($paymentData->getIban());
     $this->assertFalse($paymentData->getUseBillingData());
     // New SEPA data
     /** @var \Shopware\Models\Customer\PaymentData $paymentData */
     $paymentData = array_shift($paymentDataArray);
     $this->assertInstanceOf('\\Shopware\\Models\\Customer\\PaymentData', $paymentData);
     $this->assertEmpty($paymentData->getAccountHolder());
     $this->assertEmpty($paymentData->getAccountNumber());
     $this->assertEmpty($paymentData->getBankCode());
     $this->assertEquals('European bank name', $paymentData->getBankName());
     $this->assertEquals('123bic312', $paymentData->getBic());
     $this->assertEquals('456iban654', $paymentData->getIban());
     $this->assertTrue($paymentData->getUseBillingData());
     $this->manager->remove($dummyData);
     $this->manager->flush();
 }