/** * 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); }
/** * Assert that cart item options for product(s) display with correct information block * (custom options, variations, links, samples, bundle items etc) according to passed from dataset. * * @param CheckoutCart $checkoutCart * @param Cart $cart * @return void */ public function processAssert(CheckoutCart $checkoutCart, Cart $cart) { $checkoutCart->open(); /** @var Items $sourceProducts */ $sourceProducts = $cart->getDataFieldConfig('items')['source']; $products = $sourceProducts->getProducts(); $items = $cart->getItems(); $productsData = []; $cartData = []; foreach ($items as $key => $item) { /** @var CatalogProductSimple $product */ $product = $products[$key]; $productName = $product->getName(); /** @var FixtureInterface $item */ $checkoutItem = $item->getData(); $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); $productsData[$productName] = ['options' => $this->sortDataByPath($checkoutItem['options'], '::title')]; $cartData[$productName] = ['options' => $this->sortDataByPath($cartItem->getOptions(), '::title')]; } $error = $this->verifyContainsData($productsData, $cartData, true); \PHPUnit_Framework_Assert::assertEmpty($error, $error); }
/** * Assert that subtotal total in the shopping cart is equals to expected total from data set * * @param CheckoutCart $checkoutCart * @param Cart $cart * @param boolean $requireReload * @return void */ public function processAssert(CheckoutCart $checkoutCart, Cart $cart, $requireReload = true) { if ($requireReload) { $checkoutCart->open(); } /** @var Items $sourceProducts */ $sourceProducts = $cart->getDataFieldConfig('items')['source']; $products = $sourceProducts->getProducts(); $items = $cart->getItems(); $productsData = []; $cartData = []; foreach ($items as $key => $item) { /** @var CatalogProductSimple $product */ $product = $products[$key]; $productName = $product->getName(); /** @var FixtureInterface $item */ $checkoutItem = $item->getData(); $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); $productsData[$productName] = ['subtotal' => $checkoutItem['subtotal']]; $cartData[$productName] = ['subtotal' => $cartItem->getSubtotalPrice()]; } $error = $this->verifyData($productsData, $cartData, true); \PHPUnit_Framework_Assert::assertEmpty($error, $error); }