/** * @param DataStorageItem $storageItem * * @dataProvider dataProvider */ public function testXMLGeneration($storageItem) { $prophet = new Prophet(); $orderService = $prophet->prophesize('Checkdomain\\TeleCash\\IPG\\API\\Service\\OrderService'); $store = new StoreHostedData($orderService->reveal(), $storageItem); $document = $store->getDocument(); $document->appendChild($store->getElement()); $elementStore = $document->getElementsByTagName('ns2:StoreHostedData'); $this->assertEquals(1, $elementStore->length, 'Expected element StoreHostedData not found'); $children = []; /** @var \DOMNode $child */ foreach ($elementStore->item(0)->childNodes as $child) { $children[$child->nodeName] = $child->nodeValue; } $this->assertArrayHasKey('ns2:DataStorageItem', $children, 'Expected element DataStorageItem not found'); //no need to further test DataStorageItem, as this is already covered in DataStorageItemTest }
/** * Store credit card information externally * * @param string $ccNumber * @param string $ccValid * @param string $hostedDataId * * @return Response\Action\Confirm|Response\Error * @throws \Exception */ public function storeHostedData($ccNumber, $ccValid, $hostedDataId) { $service = $this->getService(); $validMonth = substr($ccValid, 0, 2); $validYear = substr($ccValid, 3, 4); $ccData = new Model\CreditCardData($ccNumber, $validMonth, $validYear); $ccItem = new Model\CreditCardItem($ccData, $hostedDataId); $storeAction = new Request\Action\StoreHostedData($service, $ccItem); return $storeAction->store(); }