From 8515566a16cbf8167036a0c3e8fce4d332101060 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Sun, 19 May 2019 17:42:46 +0200 Subject: [PATCH] Api-functional tests for guest added --- .../GraphQl/Quote/Guest/CartTotalsTest.php | 24 ++++++++++++------- .../_files/cart_rule_discount_no_coupon.php | 14 +++++++---- .../cart_rule_discount_no_coupon_rollback.php | 17 +++++-------- .../_files/coupon_code_with_wildcard.php | 1 + 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/CartTotalsTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/CartTotalsTest.php index 58c5c9d23f7a3..37b75ffd413cf 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/CartTotalsTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/CartTotalsTest.php @@ -129,7 +129,6 @@ public function testGetSelectedShippingMethodFromCustomerCart() * @magentoApiDataFixture Magento/GraphQl/Catalog/_files/simple_product.php * @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php * @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php - * @group recent */ public function testGetDiscountInformation() { @@ -138,18 +137,27 @@ public function testGetDiscountInformation() $response = $this->graphQlQuery($query); $discountResponse = $response['cart']['prices']['discount']; - self::assertEquals(-20, $discountResponse['amount']['value']); - self::assertEquals('100% Off for all orders', $discountResponse['label']); + self::assertEquals(-10, $discountResponse['amount']['value']); + self::assertEquals('50% Off for all orders', $discountResponse['label']); } + /** + * @magentoApiDataFixture Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon.php + * @magentoApiDataFixture Magento/GraphQl/Catalog/_files/simple_product.php + * @magentoApiDataFixture Magento/SalesRule/_files/coupon_code_with_wildcard.php + * @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php + * @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php + * @magentoApiDataFixture Magento/GraphQl/Quote/_files/apply_coupon.php + */ public function testGetDiscountInformationWithTwoRulesApplied() { - self::fail(); - } + $maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote'); + $query = $this->getQuery($maskedQuoteId); + $response = $this->graphQlQuery($query); - public function testGetDiscountInformationForRuleWithNoLabel() - { - self::fail(); + $discountResponse = $response['cart']['prices']['discount']; + self::assertEquals(-15, $discountResponse['amount']['value']); + self::assertEquals('50% Off for all orders, 5$ fixed discount on whole cart', $discountResponse['label']); } /** diff --git a/dev/tests/integration/testsuite/Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon.php b/dev/tests/integration/testsuite/Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon.php index 335fe758953ac..a8b284fe1549b 100644 --- a/dev/tests/integration/testsuite/Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon.php +++ b/dev/tests/integration/testsuite/Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon.php @@ -7,9 +7,12 @@ use Magento\Customer\Model\GroupManagement as CustomerGroupManagement; use Magento\Framework\Api\DataObjectHelper; +use Magento\SalesRule\Api\Data\RuleInterface; +use Magento\SalesRule\Api\Data\RuleLabelInterface; use Magento\SalesRule\Api\RuleRepositoryInterface; use Magento\SalesRule\Model\Data\Rule as RuleData; -use Magento\Store\Model\StoreManagerInterface as StoreManagerInterface; +use Magento\SalesRule\Model\Data\RuleLabelFactory; +use Magento\Store\Model\StoreManagerInterface; use Magento\TestFramework\Helper\Bootstrap; @@ -18,13 +21,13 @@ $ruleRepository = $objectManager->get(RuleRepositoryInterface::class); /** @var DataObjectHelper $dataObjectHelper */ $dataObjectHelper = Bootstrap::getObjectManager()->get(DataObjectHelper::class); -$ruleLabel = $objectManager->create(\Magento\SalesRule\Api\Data\RuleLabelInterface::class); -$ruleLabelFactory = $objectManager->get(\Magento\SalesRule\Model\Data\RuleLabelFactory::class); +$ruleLabel = $objectManager->create(RuleLabelInterface::class); +$ruleLabelFactory = $objectManager->get(RuleLabelFactory::class); /** @var RuleData $salesRule */ $salesRule = $objectManager->create(RuleData::class); -/** @var \Magento\SalesRule\Api\Data\RuleLabelInterface $ruleLabel */ +/** @var RuleLabelInterface $ruleLabel */ $ruleLabel = $ruleLabelFactory->create(); $ruleLabel->setStoreId(0); $ruleLabel->setStoreLabel('50% Off for all orders'); @@ -45,8 +48,9 @@ 'discount_qty' => 0, 'apply_to_shipping' => 1, 'simple_free_shipping' => 1, + 'stop_rules_processing' => 0 ]; -$dataObjectHelper->populateWithArray($salesRule, $ruleData, \Magento\SalesRule\Api\Data\RuleInterface::class); +$dataObjectHelper->populateWithArray($salesRule, $ruleData, RuleInterface::class); $salesRule->setStoreLabels([$ruleLabel]); $ruleRepository->save($salesRule); diff --git a/dev/tests/integration/testsuite/Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon_rollback.php b/dev/tests/integration/testsuite/Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon_rollback.php index 4fbc390d869dd..b94365c4a2c2b 100644 --- a/dev/tests/integration/testsuite/Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon_rollback.php +++ b/dev/tests/integration/testsuite/Magento/GraphQl/Quote/_files/cart_rule_discount_no_coupon_rollback.php @@ -6,21 +6,16 @@ declare(strict_types=1); use Magento\SalesRule\Api\RuleRepositoryInterface; -use Magento\SalesRule\Model\ResourceModel\Rule as RuleResource; -use Magento\SalesRule\Model\RuleFactory as RuleFactory; +use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory as RuleCollectionFactory; use Magento\TestFramework\Helper\Bootstrap; $objectManager = Bootstrap::getObjectManager(); /** @var RuleRepositoryInterface $ruleRepository */ $ruleRepository = $objectManager->get(RuleRepositoryInterface::class); -/** @var RuleResource $ruleResource */ -$ruleResource = $objectManager->get(RuleResource::class); -/** @var RuleFactory $ruleFactory */ -$ruleFactory = $objectManager->get(RuleFactory::class); -$salesRule = $ruleFactory->create(); +/** @var RuleCollectionFactory $ruleCollectionFactory */ +$ruleCollectionFactory = $objectManager->get(RuleCollectionFactory::class); +$ruleCollection = $ruleCollectionFactory->create(); -$ruleResource->load($salesRule, '50% Off for all orders', 'name'); -// FIXME: the rule cannot be found for some reason -if ($salesRule->getRuleId()) { - $ruleRepository->deleteById($salesRule->getRuleId()); +foreach ($ruleCollection->getItems() as $rule) { + $ruleRepository->deleteById($rule->getRuleId()); } diff --git a/dev/tests/integration/testsuite/Magento/SalesRule/_files/coupon_code_with_wildcard.php b/dev/tests/integration/testsuite/Magento/SalesRule/_files/coupon_code_with_wildcard.php index 9005284f984cf..61fe3e9ea74f1 100644 --- a/dev/tests/integration/testsuite/Magento/SalesRule/_files/coupon_code_with_wildcard.php +++ b/dev/tests/integration/testsuite/Magento/SalesRule/_files/coupon_code_with_wildcard.php @@ -27,6 +27,7 @@ 'discount_amount' => 5, 'discount_step' => 0, 'stop_rules_processing' => 1, + 'store_labels' => [0 => '5$ fixed discount on whole cart'], 'website_ids' => [ $objectManager->get(StoreManagerInterface::class)->getWebsite()->getId(), ],