protected function setUp() { /** @var $storeManager \Magento\Framework\StoreManagerInterface */ $storeManager = self::$_objectManager->get('Magento\\Framework\\StoreManagerInterface'); $this->_store = $storeManager->getStore(); $this->_model = self::$_objectManager->create('Magento\\Catalog\\Model\\Category'); }
/** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php */ public function testSetAddress() { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_1', 'reserved_order_id'); $cartId = $this->getQuoteMaskedId($quote->getId()); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . $cartId . '/billing-address', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'Assign']]; $addressData = ['firstname' => 'John', 'lastname' => 'Smith', 'email' => '', 'company' => 'Magento Commerce Inc.', 'street' => ['Typical Street', 'Tiny House 18'], 'city' => 'Big City', 'region_id' => 12, 'region' => 'California', 'region_code' => 'CA', 'postcode' => '0985432', 'country_id' => 'US', 'telephone' => '88776655', 'fax' => '44332255']; $requestData = ["cartId" => $cartId, 'address' => $addressData]; $addressId = $this->_webApiCall($serviceInfo, $requestData); //reset $quote to reload data $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_1', 'reserved_order_id'); $address = $quote->getBillingAddress(); $address->getRegionCode(); $savedData = $address->getData(); $this->assertEquals($addressId, $savedData['address_id']); //custom checks for street, region and address_type foreach ($addressData['street'] as $streetLine) { $this->assertContains($streetLine, $quote->getBillingAddress()->getStreet()); } unset($addressData['street']); unset($addressData['email']); $this->assertEquals('billing', $savedData['address_type']); //check the rest of fields foreach ($addressData as $key => $value) { $this->assertEquals($value, $savedData[$key]); } }
/** * @magentoDataFixture Magento/Customer/_files/customer.php * @magentoDataFixture Magento/Catalog/_files/product_simple.php * @dataProvider customerFunctionDataProvider * * @param bool isCustomerIdUsed */ public function testSend($isCustomerIdUsed) { \Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea(\Magento\Framework\App\Area::AREA_FRONTEND); $this->_emailModel = $this->_objectManager->create('Magento\\ProductAlert\\Model\\Email'); /** @var \Magento\Store\Model\Website $website */ $website = $this->_objectManager->create('Magento\\Store\\Model\\Website'); $website->load(1); $this->_emailModel->setWebsite($website); /** @var \Magento\Customer\Api\Data\CustomerInterface $customer */ $customerRepository = $this->_objectManager->create('Magento\\Customer\\Api\\CustomerRepositoryInterface'); $customer = $customerRepository->getById(1); if ($isCustomerIdUsed) { $this->_emailModel->setCustomerId(1); } else { $this->_emailModel->setCustomerData($customer); } /** @var \Magento\Catalog\Model\Product $product */ $product = $this->_objectManager->create('Magento\\Catalog\\Model\\Product'); $product->load(1); $this->_emailModel->addPriceProduct($product); $this->_emailModel->send(); /** @var \Magento\TestFramework\Mail\Template\TransportBuilderMock $transportBuilder */ $transportBuilder = $this->_objectManager->get('Magento\\TestFramework\\Mail\\Template\\TransportBuilderMock'); $this->assertContains('John Smith,', $transportBuilder->getSentMessage()->getBodyHtml()->getRawContent()); }
/** * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php */ public function testSave() { // sales/gift_options/allow_items must be set to 1 in system configuration // @todo remove next statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed $this->markTestIncomplete('This test relies on system configuration state.'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_item_with_message', 'reserved_order_id'); $product = $this->objectManager->create('Magento\\Catalog\\Model\\Product'); $product->load($product->getIdBySku('simple_with_message')); $itemId = $quote->getItemByProduct($product)->getId(); $cartId = $quote->getId(); /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Quote\\Model\\QuoteIdMaskFactory')->create(); $quoteIdMask->load($cartId, 'quote_id'); //Use masked cart Id $cartId = $quoteIdMask->getMaskedId(); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'Save']]; $requestData = ['cartId' => $cartId, 'itemId' => $itemId, 'giftMessage' => ['recipient' => 'John Doe', 'sender' => 'Jane Roe', 'message' => 'Gift Message Text New']]; $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); // $quote->load('test_order_item_with_message', 'reserved_order_id'); $messageId = $quote->getItemByProduct($product)->getGiftMessageId(); /** @var \Magento\GiftMessage\Model\Message $message */ $message = $this->objectManager->create('Magento\\GiftMessage\\Model\\Message')->load($messageId); $this->assertEquals('John Doe', $message->getRecipient()); $this->assertEquals('Jane Roe', $message->getSender()); $this->assertEquals('Gift Message Text New', $message->getMessage()); }
protected function setUp() { $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->filterBuilder = $this->objectManager->create('Magento\\Framework\\Api\\FilterBuilder'); $this->sortOrderBuilder = $this->objectManager->create('Magento\\Framework\\Api\\SortOrderBuilder'); $this->searchCriteriaBuilder = $this->objectManager->create('Magento\\Framework\\Api\\SearchCriteriaBuilder'); }
/** * @magentoDataFixture Magento/Catalog/_files/product_simple.php */ public function testSetGetProduct() { $this->assertSame($this->product, $this->block->getProduct()); $product = $this->objectManager->create('Magento\\Catalog\\Model\\Product'); $this->block->setProduct($product); $this->assertSame($product, $this->block->getProduct()); }
protected function setUp() { /** @var $objectManager \Magento\TestFramework\ObjectManager */ $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->_model = $this->_objectManager->create('Magento\\Tax\\Model\\Calculation'); $this->customerRepository = $this->_objectManager->create('Magento\\Customer\\Api\\CustomerRepositoryInterface'); $this->addressRepository = $this->_objectManager->create('Magento\\Customer\\Api\\AddressRepositoryInterface'); $this->groupRepository = $this->_objectManager->create('Magento\\Customer\\Api\\GroupRepositoryInterface'); }
protected function setUp() { /** @var $objectManager \Magento\TestFramework\ObjectManager */ $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->_model = $this->_objectManager->create('Magento\\Tax\\Model\\Calculation'); $this->_customerAccountService = $this->_objectManager->create('Magento\\Customer\\Service\\V1\\CustomerAccountService'); $this->_addressService = $this->_objectManager->create('Magento\\Customer\\Service\\V1\\CustomerAddressService'); $this->_groupService = $this->_objectManager->create('Magento\\Customer\\Service\\V1\\CustomerGroupService'); }
protected function setUp() { $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); /** @var $sessionManager \Magento\Framework\Session\SessionManager */ $sessionManager = $this->_objectManager->get('Magento\\Framework\\Session\\SessionManager'); if ($sessionManager->isSessionExists()) { $sessionManager->writeClose(); } $this->_model = $this->_objectManager->create('Magento\\Framework\\Session\\Config', array('saveMethod' => 'files', 'cacheLimiter' => $this->_cacheLimiter)); }
protected function setUp() { $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->config = $this->objectManager->create('Magento\\Config\\Model\\ResourceModel\\Config'); $this->config->saveConfig('google/analytics/active', 1, 'default', 0); $this->config->saveConfig('google/analytics/type', 'universal', 'default', 0); $this->config->saveConfig('google/analytics/experiments', 1, 'default', 0); $this->config->saveConfig('google/analytics/account', 1234567890, 'default', 0); $this->resetConfig(); }
/** * @covers \Magento\Catalog\Model\Product\Gallery\ReadHandler::execute */ public function testExecute() { /** @var \Magento\Catalog\Model\Product $product */ $product = $this->objectManager->create('Magento\\Catalog\\Model\\Product'); $product->setId(1); $this->readHandler->execute('Magento\\Catalog\\Api\\Data\\ProductInterface', $product); $data = $product->getData(); $this->assertArrayHasKey('media_gallery', $data); $this->assertArrayHasKey('images', $data['media_gallery']); $this->assertEquals('Image Alt Text', $data['media_gallery']['images'][0]['label']); }
/** * Receive product options with values * * @return array */ protected function getOptions() { /** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */ $productRepository = $this->objectManager->create('Magento\\Catalog\\Api\\ProductRepositoryInterface'); $product = $productRepository->get(self::SIMPLE_PRODUCT_SKU); $options = []; /** @var ProductCustomOptionInterface $option */ foreach ($product->getOptions() as $option) { $options[] = ['option_id' => $option->getId(), 'option_value' => $this->getOptionRequestValue($option)]; } return $options; }
/** * @magentoApiDataFixture Magento/Sales/_files/order.php */ public function testGet() { /** @var \Magento\Sales\Model\Order $order */ $order = $this->objectManager->create('Magento\\Sales\\Model\\Order'); $order->loadByIncrementId(self::ORDER_INCREMENT_ID); /** @var \Magento\Sales\Model\Order\Item $orderItem */ $orderItem = current($order->getItems()); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . '/' . $orderItem->getId(), 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'get']]; $response = $this->_webApiCall($serviceInfo, ['id' => $orderItem->getId()]); $this->assertTrue(is_array($response)); $this->assertOrderItem($orderItem, $response); }
/** * @magentoAppIsolation enabled * @magentoDataFixture Magento/Tax/_files/tax_classes.php */ public function testCheckClassCanBeDeletedProductClassUsedInTaxRule() { /** @var $registry \Magento\Framework\Registry */ $registry = $this->_objectManager->get('Magento\\Framework\\Registry'); /** @var $taxRule \Magento\Tax\Model\Calculation\Rule */ $taxRule = $registry->registry('_fixture/Magento_Tax_Model_Calculation_Rule'); $productClasses = $taxRule->getProductTaxClasses(); /** @var $model \Magento\Tax\Model\ClassModel */ $model = $this->_objectManager->create('Magento\\Tax\\Model\\ClassModel')->load($productClasses[0]); $this->setExpectedException('Magento\\Framework\\Exception\\CouldNotDeleteException', 'You cannot delete this tax class because it is used in' . ' Tax Rules. You have to delete the rules it is used in first.'); $model->delete(); }
/** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php */ public function testGetTotals() { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_1', 'reserved_order_id'); $cartId = $this->getQuoteMaskedId($quote->getId()); /** @var \Magento\Quote\Model\Quote\Address $shippingAddress */ $shippingAddress = $quote->getShippingAddress(); $data = [Totals::KEY_BASE_GRAND_TOTAL => $quote->getBaseGrandTotal(), Totals::KEY_GRAND_TOTAL => $quote->getGrandTotal(), Totals::KEY_BASE_SUBTOTAL => $quote->getBaseSubtotal(), Totals::KEY_SUBTOTAL => $quote->getSubtotal(), Totals::KEY_BASE_SUBTOTAL_WITH_DISCOUNT => $quote->getBaseSubtotalWithDiscount(), Totals::KEY_SUBTOTAL_WITH_DISCOUNT => $quote->getSubtotalWithDiscount(), Totals::KEY_DISCOUNT_AMOUNT => $shippingAddress->getDiscountAmount(), Totals::KEY_BASE_DISCOUNT_AMOUNT => $shippingAddress->getBaseDiscountAmount(), Totals::KEY_SHIPPING_AMOUNT => $shippingAddress->getShippingAmount(), Totals::KEY_BASE_SHIPPING_AMOUNT => $shippingAddress->getBaseShippingAmount(), Totals::KEY_SHIPPING_DISCOUNT_AMOUNT => $shippingAddress->getShippingDiscountAmount(), Totals::KEY_BASE_SHIPPING_DISCOUNT_AMOUNT => $shippingAddress->getBaseShippingDiscountAmount(), Totals::KEY_TAX_AMOUNT => $shippingAddress->getTaxAmount(), Totals::KEY_BASE_TAX_AMOUNT => $shippingAddress->getBaseTaxAmount(), Totals::KEY_SHIPPING_TAX_AMOUNT => $shippingAddress->getShippingTaxAmount(), Totals::KEY_BASE_SHIPPING_TAX_AMOUNT => $shippingAddress->getBaseShippingTaxAmount(), Totals::KEY_SUBTOTAL_INCL_TAX => $shippingAddress->getSubtotalInclTax(), Totals::KEY_BASE_SUBTOTAL_INCL_TAX => $shippingAddress->getBaseSubtotalTotalInclTax(), Totals::KEY_SHIPPING_INCL_TAX => $shippingAddress->getShippingInclTax(), Totals::KEY_BASE_SHIPPING_INCL_TAX => $shippingAddress->getBaseShippingInclTax(), Totals::KEY_BASE_CURRENCY_CODE => $quote->getBaseCurrencyCode(), Totals::KEY_QUOTE_CURRENCY_CODE => $quote->getQuoteCurrencyCode(), Totals::KEY_ITEMS => [$this->getQuoteItemTotalsData($quote)]]; $requestData = ['cartId' => $cartId]; $data = $this->formatTotalsData($data); $this->assertEquals($data, $this->_webApiCall($this->getServiceInfoForTotalsService($cartId), $requestData)); }
protected function tearDown() { try { $cart = $this->getCart('test01'); $cart->delete(); /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ $quoteIdMask = $this->objectManager->create('Magento\\Quote\\Model\\QuoteIdMask'); $quoteIdMask->delete($cart->getId()); } catch (\InvalidArgumentException $e) { // Do nothing if cart fixture was not used } parent::tearDown(); }
public function setUp() { $this->componentRegistrar = new ComponentRegistrar(); $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $xmlFiles = $this->getXmlConfigFiles(); if (!empty($xmlFiles)) { $this->_fileResolverMock = $this->getMockBuilder('Magento\\Framework\\App\\Arguments\\FileResolver\\Primary')->disableOriginalConstructor()->getMock(); /* Enable Validation regardles of MAGE_MODE */ $validateStateMock = $this->getMockBuilder('Magento\\Framework\\Config\\ValidationStateInterface')->disableOriginalConstructor()->getMock(); $validateStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true)); $this->_reader = $this->_objectManager->create($this->_getReaderClassName(), ['configFiles' => $xmlFiles, 'fileResolver' => $this->_fileResolverMock, 'validationState' => $validateStateMock]); $this->_schemaFile = $this->_getXsdPath(); } }
/** * @param string $behavior * @param string $sourceFile * @param array $dataBefore * @param array $dataAfter * @param array $errors * * @magentoDataFixture Magento/Customer/_files/import_export/customers_for_address_import.php * @magentoAppIsolation enabled * * @dataProvider importDataDataProvider */ public function testImportData($behavior, $sourceFile, array $dataBefore, array $dataAfter, array $errors = []) { \Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea(\Magento\Framework\App\Area::AREA_FRONTEND); // set entity adapter parameters $this->_entityAdapter->setParameters(['behavior' => $behavior]); /** @var \Magento\Framework\Filesystem $filesystem */ $filesystem = $this->_objectManager->create('Magento\\Framework\\Filesystem'); $rootDirectory = $filesystem->getDirectoryWrite(DirectoryList::ROOT); $this->_entityAdapter->getErrorAggregator()->initValidationStrategy(ProcessingErrorAggregatorInterface::VALIDATION_STRATEGY_STOP_ON_ERROR, 10); // set fixture CSV file $result = $this->_entityAdapter->setSource(\Magento\ImportExport\Model\Import\Adapter::findAdapterFor($sourceFile, $rootDirectory))->validateData()->hasToBeTerminated(); if ($errors) { $this->assertTrue($result); } else { $this->assertFalse($result); } // assert validation errors // can't use error codes because entity adapter gathers only error messages from aggregated adapters $actualErrors = array_values($this->_entityAdapter->getErrorAggregator()->getRowsGroupedByErrorCode()); $this->assertEquals($errors, $actualErrors); // assert data before import $this->_assertCustomerData($dataBefore); // import data $this->_entityAdapter->importData(); // assert data after import $this->_assertCustomerData($dataAfter); }
/** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_payment_saved.php */ public function testGet() { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_1_with_payment', 'reserved_order_id'); $cartId = $quote->getId(); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-methods', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'get']]; $requestData = ["cartId" => $cartId]; $requestResponse = $this->_webApiCall($serviceInfo, $requestData); $this->assertArrayHasKey('method', $requestResponse); $this->assertArrayHasKey('po_number', $requestResponse); $this->assertArrayHasKey('cc_owner', $requestResponse); $this->assertArrayHasKey('cc_type', $requestResponse); $this->assertArrayHasKey('cc_exp_year', $requestResponse); $this->assertArrayHasKey('cc_exp_month', $requestResponse); $this->assertArrayHasKey('additional_data', $requestResponse); $this->assertNotNull($requestResponse['method']); $this->assertNotNull($requestResponse['po_number']); $this->assertNotNull($requestResponse['cc_owner']); $this->assertNotNull($requestResponse['cc_type']); $this->assertNotNull($requestResponse['cc_exp_year']); $this->assertNotNull($requestResponse['cc_exp_month']); $this->assertNotNull($requestResponse['additional_data']); $this->assertEquals('checkmo', $requestResponse['method']); }
/** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php */ public function testSetMyAddress() { $this->_markTestAsRestOnly(); // get customer ID token /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ $customerTokenService = $this->objectManager->create('Magento\\Integration\\Api\\CustomerTokenServiceInterface'); $token = $customerTokenService->createCustomerAccessToken('*****@*****.**', 'password'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_1', 'reserved_order_id'); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . 'mine/billing-address', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, 'token' => $token]]; $addressData = ['firstname' => 'John', 'lastname' => 'Smith', 'company' => 'Magento Commerce Inc.', 'street' => ['Typical Street', 'Tiny House 18'], 'city' => 'Big City', 'region_id' => 12, 'region' => 'California', 'region_code' => 'CA', 'postcode' => '0985432', 'country_id' => 'US', 'telephone' => '88776655', 'fax' => '44332255']; $requestData = ['address' => $addressData]; $addressId = $this->_webApiCall($serviceInfo, $requestData); //reset $quote to reload data $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_1', 'reserved_order_id'); $address = $quote->getBillingAddress(); $address->getRegionCode(); $savedData = $address->getData(); $this->assertEquals($addressId, $savedData['address_id']); //custom checks for street, region and address_type foreach ($addressData['street'] as $streetLine) { $this->assertContains($streetLine, $quote->getBillingAddress()->getStreet()); } unset($addressData['street']); $this->assertEquals('billing', $savedData['address_type']); //check the rest of fields foreach ($addressData as $key => $value) { $this->assertEquals($value, $savedData[$key]); } }
/** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php */ public function testGetMyTotals() { $this->_markTestAsRestOnly(); // get customer ID token /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ $customerTokenService = $this->objectManager->create('Magento\\Integration\\Api\\CustomerTokenServiceInterface'); $token = $customerTokenService->createCustomerAccessToken('*****@*****.**', 'password'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_1', 'reserved_order_id'); $serviceInfo = ['rest' => ['resourcePath' => '/V1/carts/mine/totals', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, 'token' => $token]]; /** @var \Magento\Quote\Model\Quote\Address $shippingAddress */ $shippingAddress = $quote->getShippingAddress(); $data = [Totals::KEY_GRAND_TOTAL => $quote->getGrandTotal(), Totals::KEY_BASE_GRAND_TOTAL => $quote->getBaseGrandTotal(), Totals::KEY_SUBTOTAL => $quote->getSubtotal(), Totals::KEY_BASE_SUBTOTAL => $quote->getBaseSubtotal(), Totals::KEY_DISCOUNT_AMOUNT => $shippingAddress->getDiscountAmount(), Totals::KEY_BASE_DISCOUNT_AMOUNT => $shippingAddress->getBaseDiscountAmount(), Totals::KEY_SUBTOTAL_WITH_DISCOUNT => $quote->getSubtotalWithDiscount(), Totals::KEY_BASE_SUBTOTAL_WITH_DISCOUNT => $quote->getBaseSubtotalWithDiscount(), Totals::KEY_SHIPPING_AMOUNT => $shippingAddress->getShippingAmount(), Totals::KEY_BASE_SHIPPING_AMOUNT => $shippingAddress->getBaseShippingAmount(), Totals::KEY_SHIPPING_DISCOUNT_AMOUNT => $shippingAddress->getShippingDiscountAmount(), Totals::KEY_BASE_SHIPPING_DISCOUNT_AMOUNT => $shippingAddress->getBaseShippingDiscountAmount(), Totals::KEY_TAX_AMOUNT => $shippingAddress->getTaxAmount(), Totals::KEY_BASE_TAX_AMOUNT => $shippingAddress->getBaseTaxAmount(), Totals::KEY_SHIPPING_TAX_AMOUNT => $shippingAddress->getShippingTaxAmount(), Totals::KEY_BASE_SHIPPING_TAX_AMOUNT => $shippingAddress->getBaseShippingTaxAmount(), Totals::KEY_SUBTOTAL_INCL_TAX => $shippingAddress->getSubtotalInclTax(), Totals::KEY_BASE_SUBTOTAL_INCL_TAX => $shippingAddress->getBaseSubtotalTotalInclTax(), Totals::KEY_SHIPPING_INCL_TAX => $shippingAddress->getShippingInclTax(), Totals::KEY_BASE_SHIPPING_INCL_TAX => $shippingAddress->getBaseShippingInclTax(), Totals::KEY_BASE_CURRENCY_CODE => $quote->getBaseCurrencyCode(), Totals::KEY_QUOTE_CURRENCY_CODE => $quote->getQuoteCurrencyCode(), Totals::KEY_ITEMS_QTY => $quote->getItemsQty(), Totals::KEY_ITEMS => [$this->getQuoteItemTotalsData($quote)]]; $data = $this->formatTotalsData($data); $actual = $this->_webApiCall($serviceInfo); unset($actual['items'][0]['options']); unset($actual['weee_tax_applied_amount']); /** TODO: cover total segments with separate test */ unset($actual['total_segments']); if (array_key_exists('extension_attributes', $actual)) { unset($actual['extension_attributes']); } $this->assertEquals($data, $actual); }
/** * Get customer ID token * * @return string */ protected function getCustomerToken() { /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ $customerTokenService = $this->objectManager->create('Magento\\Integration\\Api\\CustomerTokenServiceInterface'); $token = $customerTokenService->createCustomerAccessToken('*****@*****.**', 'password'); return $token; }
/** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php */ public function testUpdateItem() { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_item_with_items', 'reserved_order_id'); $cartId = $quote->getId(); /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Quote\\Model\\QuoteIdMaskFactory')->create(); $quoteIdMask->load($cartId, 'quote_id'); //Use masked cart Id $cartId = $quoteIdMask->getMaskedId(); $product = $this->objectManager->create('Magento\\Catalog\\Model\\Product'); $productId = $product->getIdBySku('simple_one'); $product->load($productId); $itemId = $quote->getItemByProduct($product)->getId(); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . $cartId . '/items/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'Save']]; if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) { $requestData = ["cartItem" => ["qty" => 5, "quote_id" => $cartId, "itemId" => $itemId]]; } else { $requestData = ["cartItem" => ["qty" => 5, "quote_id" => $cartId]]; } $this->_webApiCall($serviceInfo, $requestData); $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_item_with_items', 'reserved_order_id'); $this->assertTrue($quote->hasProductId(1)); $item = $quote->getItemByProduct($product); $this->assertEquals(5, $item->getQty()); $this->assertEquals($itemId, $item->getItemId()); }
/** * @magentoApiDataFixture Magento/Sales/_files/quote.php * @magentoApiDataFixture Magento/Checkout/_files/discount_10percent.php */ public function testSetCouponSuccess() { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test01', 'reserved_order_id'); $cartId = $quote->getId(); $salesRule = $this->objectManager->create('Magento\\SalesRule\\Model\\Rule'); $salesRule->load('Test Coupon', 'name'); $couponCode = $salesRule->getCouponCode(); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . $cartId . '/coupons/' . $couponCode, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'Set']]; $requestData = ["cartId" => $cartId, "couponCode" => $couponCode]; $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); $quoteWithCoupon = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quoteWithCoupon->load('test01', 'reserved_order_id'); $this->assertEquals($quoteWithCoupon->getCouponCode(), $couponCode); }
/** * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php */ public function testSaveForMyCart() { $this->_markTestAsRestOnly(); // get customer ID token /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ $customerTokenService = $this->objectManager->create('Magento\\Integration\\Api\\CustomerTokenServiceInterface'); $token = $customerTokenService->createCustomerAccessToken('*****@*****.**', 'password'); // sales/gift_options/allow_items must be set to 1 in system configuration // @todo remove next statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed $this->markTestIncomplete('This test relies on system configuration state.'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_item_with_message', 'reserved_order_id'); $product = $this->objectManager->create('Magento\\Catalog\\Model\\Product'); $product->load($product->getIdBySku('simple_with_message')); $itemId = $quote->getItemByProduct($product)->getId(); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . 'mine/gift-message/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, 'token' => $token]]; $requestData = ['itemId' => $itemId, 'giftMessage' => ['recipient' => 'John Doe', 'sender' => 'Jane Roe', 'message' => 'Gift Message Text New']]; $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); // $quote->load('test_order_item_with_message', 'reserved_order_id'); $messageId = $quote->getItemByProduct($product)->getGiftMessageId(); /** @var \Magento\GiftMessage\Model\Message $message */ $message = $this->objectManager->create('Magento\\GiftMessage\\Model\\Message')->load($messageId); $this->assertEquals('John Doe', $message->getRecipient()); $this->assertEquals('Jane Roe', $message->getSender()); $this->assertEquals('Gift Message Text New', $message->getMessage()); }
/** * @magentoApiDataFixture Magento/Customer/_files/customer.php * @magentoApiDataFixture Magento/Sales/_files/quote.php * @magentoApiDataFixture Magento/Checkout/_files/discount_10percent_generalusers.php */ public function testSetMyCouponSuccess() { $this->_markTestAsRestOnly(); // get customer ID token /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ $customerTokenService = $this->objectManager->create('Magento\\Integration\\Api\\CustomerTokenServiceInterface'); $token = $customerTokenService->createCustomerAccessToken('*****@*****.**', 'password'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test01', 'reserved_order_id'); $cartId = $quote->getId(); /** @var \Magento\SalesRule\Model\Rule $salesRule */ $salesRule = $this->objectManager->create('Magento\\SalesRule\\Model\\Rule'); $salesRuleId = $this->objectManager->get('Magento\\Framework\\Registry')->registry('Magento/Checkout/_file/discount_10percent_generalusers'); $salesRule->load($salesRuleId); $couponCode = $salesRule->getPrimaryCoupon()->getCode(); /* Since this isn't a full quote fixture, need to assign it to the right customer */ $cartManagementService = $this->objectManager->create('Magento\\Quote\\Api\\CartManagementInterface'); $cartManagementService->assignCustomer($cartId, 1, 1); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . 'mine/coupons/' . $couponCode, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, 'token' => $token]]; $requestData = ["couponCode" => $couponCode]; $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); $quoteWithCoupon = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quoteWithCoupon->load('test01', 'reserved_order_id'); $this->assertEquals($quoteWithCoupon->getCouponCode(), $couponCode); }
/** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php */ public function testSaveAddresses() { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test_order_1', 'reserved_order_id'); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . 'mine/addresses', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'SaveAddresses']]; $addressData = ['firstname' => 'John', 'lastname' => 'Smith', 'email' => '*****@*****.**', 'company' => 'eBay Inc', 'street' => ['Typical Street', 'Tiny House 18'], 'city' => 'Big City', 'region_id' => 12, 'region' => 'California', 'region_code' => 'CA', 'postcode' => '0985432', 'country_id' => 'US', 'telephone' => '88776655', 'fax' => '44332255']; $requestData = ['cart_id' => $quote->getId(), 'billingAddress' => $addressData, 'shippingAddress' => $addressData]; $response = $this->_webApiCall($serviceInfo, $requestData); $this->assertArrayHasKey('shipping_methods', $response); $this->assertCount(1, $response['shipping_methods']); $this->assertEquals('flatrate', $response['shipping_methods'][0]['method_code']); $this->assertArrayHasKey('payment_methods', $response); $this->assertCount(2, $response['payment_methods']); $this->assertEquals('checkmo', $response['payment_methods'][0]['code']); }
/** * @param string $behavior * @param string $sourceFile * @param array $dataBefore * @param array $dataAfter * @param array $errors * * @magentoDataFixture Magento/Customer/_files/import_export/customers_for_address_import.php * @magentoAppIsolation enabled * * @dataProvider importDataDataProvider */ public function testImportData($behavior, $sourceFile, array $dataBefore, array $dataAfter, array $errors = array()) { \Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea(\Magento\Framework\App\Area::AREA_FRONTEND); // set entity adapter parameters $this->_entityAdapter->setParameters(array('behavior' => $behavior)); /** @var \Magento\Framework\App\Filesystem $filesystem */ $filesystem = $this->_objectManager->create('Magento\\Framework\\App\\Filesystem'); $rootDirectory = $filesystem->getDirectoryWrite(\Magento\Framework\App\Filesystem::ROOT_DIR); // set fixture CSV file $result = $this->_entityAdapter->setSource(\Magento\ImportExport\Model\Import\Adapter::findAdapterFor($sourceFile, $rootDirectory))->isDataValid(); if ($errors) { $this->assertFalse($result); } else { $this->assertTrue($result); } // assert validation errors // can't use error codes because entity adapter gathers only error messages from aggregated adapters $actualErrors = array_values($this->_entityAdapter->getErrorMessages()); $this->assertEquals($errors, $actualErrors); // assert data before import $this->_assertCustomerData($dataBefore); // import data $this->_entityAdapter->importData(); // assert data after import $this->_assertCustomerData($dataAfter); }
/** * Test to get my cart based on customer authentication token or session * * @magentoApiDataFixture Magento/Sales/_files/quote_with_customer.php */ public function testGetCartForCustomer() { // get customer ID token /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ $customerTokenService = $this->objectManager->create('Magento\\Integration\\Api\\CustomerTokenServiceInterface'); $token = $customerTokenService->createCustomerAccessToken('*****@*****.**', 'password'); $cart = $this->getCart('test01'); $customerId = $cart->getCustomer()->getId(); $serviceInfo = ['rest' => ['resourcePath' => '/V1/carts/mine', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, 'token' => $token], 'soap' => ['service' => 'quoteCartManagementV1', 'serviceVersion' => 'V1', 'operation' => 'quoteCartManagementV1GetCartForCustomer', 'token' => $token]]; $requestData = ['customerId' => $customerId]; $cartData = $this->_webApiCall($serviceInfo, $requestData); $this->assertEquals($cart->getId(), $cartData['id']); $this->assertEquals($cart->getCreatedAt(), $cartData['created_at']); $this->assertEquals($cart->getUpdatedAt(), $cartData['updated_at']); $this->assertEquals($cart->getIsActive(), $cartData['is_active']); $this->assertEquals($cart->getIsVirtual(), $cartData['is_virtual']); $this->assertEquals($cart->getOrigOrderId(), $cartData['orig_order_id']); $this->assertEquals($cart->getItemsCount(), $cartData['items_count']); $this->assertEquals($cart->getItemsQty(), $cartData['items_qty']); $this->assertContains('customer', $cartData); $this->assertEquals(false, $cartData['customer_is_guest']); $this->assertContains('currency', $cartData); $this->assertEquals($cart->getGlobalCurrencyCode(), $cartData['currency']['global_currency_code']); $this->assertEquals($cart->getBaseCurrencyCode(), $cartData['currency']['base_currency_code']); $this->assertEquals($cart->getQuoteCurrencyCode(), $cartData['currency']['quote_currency_code']); $this->assertEquals($cart->getStoreCurrencyCode(), $cartData['currency']['store_currency_code']); $this->assertEquals($cart->getBaseToGlobalRate(), $cartData['currency']['base_to_global_rate']); $this->assertEquals($cart->getBaseToQuoteRate(), $cartData['currency']['base_to_quote_rate']); $this->assertEquals($cart->getStoreToBaseRate(), $cartData['currency']['store_to_base_rate']); $this->assertEquals($cart->getStoreToQuoteRate(), $cartData['currency']['store_to_quote_rate']); }
/** * @covers \Magento\Catalog\Model\Product\Gallery\ReadHandler::execute */ public function testExecute() { /** @var \Magento\Catalog\Model\Product $product */ $product = $this->objectManager->create('Magento\\Catalog\\Model\\Product'); /** * @var $entityMetadata \Magento\Framework\Model\Entity\EntityMetadata */ $entityMetadata = $this->objectManager->get(MetadataPool::class)->getMetadata(ProductInterface::class); $productRepository = $this->objectManager->get(\Magento\Catalog\Api\ProductRepositoryInterface::class); $linkFieldId = $productRepository->get('simple')->getData($entityMetadata->getLinkField()); $product->setData($entityMetadata->getLinkField(), $linkFieldId); $this->readHandler->execute('Magento\\Catalog\\Api\\Data\\ProductInterface', $product); $data = $product->getData(); $this->assertArrayHasKey('media_gallery', $data); $this->assertArrayHasKey('images', $data['media_gallery']); $this->assertEquals('Image Alt Text', $data['media_gallery']['images'][0]['label']); }