/** * Assert product is present on mini shopping cart * * @param CmsIndex $cmsIndex * @param array $products * @return void */ public function processAssert(CmsIndex $cmsIndex, array $products) { $cmsIndex->open(); foreach ($products as $product) { $cmsIndex->getCartSidebarBlock()->openMiniCart(); \PHPUnit_Framework_Assert::assertTrue($cmsIndex->getCartSidebarBlock()->getCartItem($product)->isVisible(), 'Product ' . $product->getName() . ' is absent in Mini Shopping Cart.'); } }
/** * Update product from mini shopping cart. * * @param string $originalProduct * @param array $checkoutData * @return array */ public function test($originalProduct, $checkoutData) { // Preconditions: $product = $this->createProduct($originalProduct); $this->addToCart($product); // Steps: $productData = $product->getData(); $productData['checkout_data'] = $checkoutData; $newProduct = $this->createProduct(explode('::', $originalProduct)[0], [$productData]); $miniShoppingCart = $this->cmsIndex->getCartSidebarBlock(); $miniShoppingCart->openMiniCart(); $miniShoppingCart->getCartItem($newProduct)->clickEditItem(); $this->catalogProductView->getViewBlock()->addToCart($newProduct); // Prepare data for asserts: $cart['data']['items'] = ['products' => [$newProduct]]; $deletedCart['data']['items'] = ['products' => [$product]]; return ['deletedCart' => $this->fixtureFactory->createByCode('cart', $deletedCart), 'cart' => $this->fixtureFactory->createByCode('cart', $cart)]; }
/** * Assert that product quantity in the mini shopping cart is equals to expected quantity from data set * * @param CmsIndex $cmsIndex * @param Cart $cart * @return void */ public function processAssert(CmsIndex $cmsIndex, Cart $cart) { $cmsIndex->open(); /** @var Items $sourceProducts */ $sourceProducts = $cart->getDataFieldConfig('items')['source']; $products = $sourceProducts->getProducts(); $items = $cart->getItems(); $productsData = []; $miniCartData = []; foreach ($items as $key => $item) { /** @var CatalogProductSimple $product */ $product = $products[$key]; $productName = $product->getName(); /** @var FixtureInterface $item */ $checkoutItem = $item->getData(); $productsData[$productName] = ['qty' => $checkoutItem['qty']]; $miniCartData[$productName] = ['qty' => $cmsIndex->getCartSidebarBlock()->getProductQty($productName)]; } $error = $this->verifyData($productsData, $miniCartData, true); \PHPUnit_Framework_Assert::assertEmpty($error, $error); }
/** * Remove product form cart * * @param FixtureInterface $product * @return void */ protected function removeProduct(FixtureInterface $product) { $this->cmsIndex->open(); $this->cmsIndex->getCartSidebarBlock()->openMiniCart(); $this->cmsIndex->getCartSidebarBlock()->getCartItem($product)->removeItemFromMiniCart(); }
/** * Assert that customer minicart is empty * * @param CmsIndex $cmsIndex */ public function processAssert(CmsIndex $cmsIndex) { \PHPUnit_Framework_Assert::assertEquals(self::TEXT_EMPTY_MINICART, $cmsIndex->getCartSidebarBlock()->getEmptyMessage(), 'Empty minicart message not found'); \PHPUnit_Framework_Assert::assertFalse($cmsIndex->getCartSidebarBlock()->isItemsQtyVisible(), 'Minicart is not empty'); }
/** * Assert product is absent on mini shopping cart * * @param CmsIndex $cmsIndex * @param FixtureInterface $deletedProduct * @return void */ public function processAssert(CmsIndex $cmsIndex, FixtureInterface $deletedProduct) { $cmsIndex->open(); $cmsIndex->getCartSidebarBlock()->openMiniCart(); \PHPUnit_Framework_Assert::assertFalse($cmsIndex->getCartSidebarBlock()->getCartItem($deletedProduct)->isVisible(), 'Product ' . $deletedProduct->getName() . ' is presents in Mini Shopping Cart.'); }