/**
  * test for method afterPrepareAdjustmentConfig
  */
 public function testAfterPrepareAdjustmentConfig()
 {
     $this->productMock->expects($this->once())->method('getTaxClassId')->will($this->returnValue('tax-class-id'));
     $this->calculationMock->expects($this->exactly(2))->method('getRateRequest')->will($this->returnValue($this->rateRequestMock));
     $this->calculationMock->expects($this->exactly(2))->method('getRate')->with($this->equalTo($this->rateRequestMock))->will($this->returnValue(99.09999999999999));
     $this->productMock->expects($this->once())->method('getPriceInfo')->will($this->returnValue($this->priceInfoMock));
     $this->priceInfoMock->expects($this->once())->method('getAdjustment')->with($this->equalTo(\Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE))->will($this->returnValue($this->adjustmentMock));
     $this->adjustmentMock->expects($this->once())->method('isIncludedInBasePrice')->will($this->returnValue(true));
     $this->taxHelperMock->expects($this->once())->method('displayPriceIncludingTax')->will($this->returnValue(true));
     $this->taxHelperMock->expects($this->once())->method('displayBothPrices')->will($this->returnValue(true));
     $expected = ['product' => $this->productMock, 'defaultTax' => 99.09999999999999, 'currentTax' => 99.09999999999999, 'customerId' => 1, 'includeTax' => true, 'showIncludeTax' => true, 'showBothPrices' => true];
     $this->assertEquals($expected, $this->plugin->afterPrepareAdjustmentConfig($this->attributePriceMock, ['product' => $this->productMock, 'defaultTax' => 0, 'currentTax' => 0, 'customerId' => 1]));
 }
示例#2
0
 /**
  * @dataProvider dataProviderGetWeeeAttributesForBundle
  * @param int $priceIncludesTax
  * @param bool $priceDisplay
  * @param array $expectedAmount
  */
 public function testGetWeeeAttributesForBundle($priceDisplay, $priceIncludesTax, $expectedAmount)
 {
     $prodId1 = 1;
     $prodId2 = 2;
     $fptCode1 = 'fpt' . $prodId1;
     $fptCode2 = 'fpt' . $prodId2;
     $weeeObject1 = new \Magento\Framework\DataObject(['code' => $fptCode1, 'amount' => '15', 'amount_excl_tax' => '15.0000', 'tax_amount' => '1']);
     $weeeObject2 = new \Magento\Framework\DataObject(['code' => $fptCode2, 'amount' => '10', 'amount_excl_tax' => '10.0000', 'tax_amount' => '5']);
     $expectedObject1 = new \Magento\Framework\DataObject(['code' => $fptCode1, 'amount' => $expectedAmount[0], 'amount_excl_tax' => '15.0000', 'tax_amount' => '1']);
     $expectedObject2 = new \Magento\Framework\DataObject(['code' => $fptCode2, 'amount' => $expectedAmount[1], 'amount_excl_tax' => '10.0000', 'tax_amount' => '5']);
     $expectedArray = [$prodId1 => [$fptCode1 => $expectedObject1], $prodId2 => [$fptCode2 => $expectedObject2]];
     $this->weeeTax->expects($this->any())->method('getProductWeeeAttributes')->will($this->returnValue([$weeeObject1, $weeeObject2]));
     $this->taxData->expects($this->any())->method('getPriceDisplayType')->willReturn($priceDisplay);
     $this->taxData->expects($this->any())->method('priceIncludesTax')->willReturn($priceIncludesTax);
     $productSimple = $this->getMock('\\Magento\\Catalog\\Model\\Product\\Type\\Simple', ['getId'], [], '', false);
     $productSimple->expects($this->at(0))->method('getId')->will($this->returnValue($prodId1));
     $productSimple->expects($this->at(1))->method('getId')->will($this->returnValue($prodId2));
     $productInstance = $this->getMock('\\Magento\\Bundle\\Model\\Product\\Type', [], [], '', false);
     $productInstance->expects($this->any())->method('getSelectionsCollection')->will($this->returnValue([$productSimple]));
     $store = $this->getMock('\\Magento\\Store\\Model\\Store', [], [], '', false);
     /** @var \Magento\Catalog\Model\Product $product */
     $product = $this->getMock('\\Magento\\Bundle\\Model\\Product', ['getTypeInstance', 'getStoreId', 'getStore', 'getTypeId'], [], '', false);
     $product->expects($this->any())->method('getTypeInstance')->will($this->returnValue($productInstance));
     $product->expects($this->any())->method('getStoreId')->will($this->returnValue(1));
     $product->expects($this->any())->method('getStore')->will($this->returnValue($store));
     $product->expects($this->any())->method('getTypeId')->will($this->returnValue('bundle'));
     $registry = $this->getMock('Magento\\Framework\\Registry', [], [], '', false);
     $registry->expects($this->any())->method('registry')->with('current_product')->will($this->returnValue($product));
     $result = $this->helperData->getWeeeAttributesForBundle($product);
     $this->assertEquals($expectedArray, $result);
 }
示例#3
0
 public function testAfterAddressSave()
 {
     $this->moduleManagerMock->expects($this->once())->method('isEnabled')->with('Magento_PageCache')->willReturn(true);
     $this->cacheConfigMock->expects($this->once())->method('isEnabled')->willReturn(true);
     $this->taxHelperMock->expects($this->any())->method('isCatalogPriceDisplayAffectedByTax')->willReturn(true);
     $address = $this->objectManager->getObject('Magento\\Customer\\Model\\Address');
     $address->setIsDefaultShipping(true);
     $address->setIsDefaultBilling(true);
     $address->setIsPrimaryBilling(true);
     $address->setIsPrimaryShipping(true);
     $address->setCountryId(1);
     $address->setData('postcode', 11111);
     $this->customerSessionMock->expects($this->once())->method('setDefaultTaxBillingAddress')->with(['country_id' => 1, 'region_id' => null, 'postcode' => 11111]);
     $this->customerSessionMock->expects($this->once())->method('setDefaultTaxShippingAddress')->with(['country_id' => 1, 'region_id' => null, 'postcode' => 11111]);
     $this->observerMock->expects($this->once())->method('getCustomerAddress')->willReturn($address);
     $this->session->afterAddressSave($this->observerMock);
 }
示例#4
0
 public function testGetIncExcTaxLabel()
 {
     $flag = true;
     $text = "Incl. Tax";
     $expected = " (Incl. Tax)";
     $this->taxHelper->expects($this->once())->method('getIncExcText')->with($flag)->will($this->returnValue($text));
     $this->assertEquals($expected, $this->totalsObj->getIncExcTaxLabel($flag));
 }
示例#5
0
 /**
  * @param bool $inclTax
  */
 private function _prepareTestGetShippingPrice($inclTax)
 {
     $rate = $this->getMock('Magento\\Sales\\Model\\Quote\\Address\\Rate', ['__wakeup'], [], '', false);
     $rate->setPrice(self::SHIPPING_PRICE);
     $this->shippingAddress->setShippingMethod(self::SHIPPING_METHOD);
     $this->shippingAddress->expects($this->once())->method('getShippingRateByCode')->with(self::SHIPPING_METHOD)->will($this->returnValue($rate));
     $this->taxHelper->expects($this->once())->method('getShippingPrice')->with(self::SHIPPING_PRICE, $inclTax ? $this->isTrue() : $this->isFalse(), $this->shippingAddress)->will($this->returnValue(self::SHIPPING_PRICE_WITH_TAX));
     $this->store->expects($this->once())->method('formatPrice')->with(self::SHIPPING_PRICE_WITH_TAX)->will($this->returnValue(self::SHIPPING_PRICE_FORMATTED));
 }
示例#6
0
 public function testAroundDispatch()
 {
     $this->moduleManagerMock->expects($this->any())->method('isEnabled')->with('Magento_PageCache')->willReturn(true);
     $this->cacheConfigMock->expects($this->any())->method('isEnabled')->willReturn(true);
     $this->taxHelperMock->expects($this->any())->method('isCatalogPriceDisplayAffectedByTax')->willReturn(true);
     $this->customerSessionMock->expects($this->once())->method('getDefaultTaxBillingAddress')->willReturn(['country_id' => 1, 'region_id' => null, 'postcode' => 11111]);
     $this->customerSessionMock->expects($this->once())->method('getDefaultTaxShippingAddress')->willReturn(['country_id' => 1, 'region_id' => null, 'postcode' => 11111]);
     $this->customerSessionMock->expects($this->once())->method('getCustomerTaxClassId')->willReturn(1);
     $this->taxCalculationMock->expects($this->once())->method('getTaxRates')->with(['country_id' => 1, 'region_id' => null, 'postcode' => 11111], ['country_id' => 1, 'region_id' => null, 'postcode' => 11111], 1)->willReturn([]);
     $this->httpContextMock->expects($this->once())->method('setValue')->with('tax_rates', [], 0);
     $action = $this->objectManager->getObject('Magento\\Framework\\App\\Action\\Action');
     $request = $this->getMock('\\Magento\\Framework\\App\\Request\\Http', ['getActionName'], [], '', false);
     $expectedResult = 'expectedResult';
     $proceed = function ($request) use($expectedResult) {
         return $expectedResult;
     };
     $this->contextPlugin->aroundDispatch($action, $proceed, $request);
 }
示例#7
0
 /**
  * Test displayBothPrices
  *
  * @param string $zone
  * @param string $methodName
  * @dataProvider testDisplayBothPricesDataProvider
  */
 public function testDisplayBothPrices($zone, $methodName)
 {
     $storeId = 1;
     $flag = true;
     $itemMock = $this->getItemMockWithStoreId($storeId);
     $this->renderer->setItem($itemMock);
     $this->renderer->setZone($zone);
     $this->taxHelper->expects($this->once())->method($methodName)->with($storeId)->will($this->returnValue($flag));
     $this->assertEquals($flag, $this->renderer->displayBothPrices());
 }
 /**
  * test Execute
  * @dataProvider getPriceConfigurationProvider
  * @param array $testArray
  * @param array $expectedArray
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function testExecute($testArray, $expectedArray)
 {
     $configObj = new \Magento\Framework\DataObject(['config' => $testArray]);
     $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
     $className = '\\Magento\\Framework\\Registry';
     $this->registry = $this->getMock($className, [], [], '', false);
     $className = '\\Magento\\Tax\\Helper\\Data';
     $this->taxData = $this->getMock($className, [], [], '', false);
     $observerObject = $this->getMock('Magento\\Framework\\Event\\Observer', [], [], '', false);
     $observerObject->expects($this->any())->method('getData')->with('configObj')->will($this->returnValue($configObj));
     $baseAmount = $this->getMock('Magento\\Framework\\Pricing\\Amount\\Base', ['getBaseAmount', 'getAdjustmentAmount', 'hasAdjustment'], [], '', false);
     $baseAmount->expects($this->any())->method('hasAdjustment')->will($this->returnValue(true));
     $baseAmount->expects($this->any())->method('getBaseAmount')->will($this->returnValue(33.5));
     $baseAmount->expects($this->any())->method('getAdjustmentAmount')->will($this->returnValue(1.5));
     $priceInfo = $this->getMock('Magento\\Framework\\Pricing\\Priceinfo\\Base', ['getPrice'], [], '', false);
     $basePrice = $this->getMock('Magento\\Catalog\\Price\\BasePrice', ['getAmount'], [], '', false);
     $basePrice->expects($this->any())->method('getAmount')->will($this->returnValue($baseAmount));
     $priceInfo->expects($this->any())->method('getPrice')->will($this->returnValue($basePrice));
     $prod1 = $this->getMock('Magento\\Catalog\\Model\\Product', ['getId', 'getPriceInfo'], [], '', false);
     $prod2 = $this->getMock('Magento\\Catalog\\Model\\Product', [], [], '', false);
     $prod1->expects($this->any())->method('getId')->will($this->returnValue(1));
     $prod1->expects($this->any())->method('getPriceInfo')->will($this->returnValue($priceInfo));
     $optionCollection = $this->getMock('Magento\\Bundle\\Model\\ResourceModel\\Selection\\Collection', ['getItems'], [], '', false);
     $optionCollection->expects($this->any())->method('getItems')->will($this->returnValue([$prod1, $prod2]));
     $productInstance = $this->getMock('Magento\\Catalog\\Model\\Product\\Type', ['setStoreFilter', 'getSelectionsCollection', 'getOptionsIds'], [], '', false);
     $product = $this->getMock('\\Magento\\Bundle\\Model\\Product\\Type', ['getTypeInstance', 'getTypeId', 'getStoreId', 'getSelectionsCollection'], [], '', false);
     $product->expects($this->any())->method('getTypeInstance')->will($this->returnValue($productInstance));
     $product->expects($this->any())->method('getTypeId')->will($this->returnValue('bundle'));
     $product->expects($this->any())->method('getStoreId')->will($this->returnValue(null));
     $productInstance->expects($this->any())->method('getSelectionsCollection')->will($this->returnValue($optionCollection));
     $productInstance->expects($this->any())->method('getOptionsIds')->will($this->returnValue(true));
     $this->registry->expects($this->any())->method('registry')->with('current_product')->will($this->returnValue($product));
     $this->taxData->expects($this->any())->method('displayPriceIncludingTax')->will($this->returnValue(true));
     $objectManager = new ObjectManager($this);
     $this->model = $objectManager->getObject('Magento\\Tax\\Observer\\GetPriceConfigurationObserver', ['taxData' => $this->taxData, 'registry' => $this->registry]);
     $this->model->execute($observerObject);
     $this->assertEquals($expectedArray, $configObj->getData('config'));
 }
 public function testExecute()
 {
     $this->moduleManagerMock->expects($this->once())->method('isEnabled')->with('Magento_PageCache')->willReturn(true);
     $this->cacheConfigMock->expects($this->once())->method('isEnabled')->willReturn(true);
     $this->taxHelperMock->expects($this->any())->method('isCatalogPriceDisplayAffectedByTax')->willReturn(true);
     $customerMock = $this->getMockBuilder('Magento\\Customer\\Model\\Data\\Customer')->disableOriginalConstructor()->getMock();
     $this->observerMock->expects($this->once())->method('getData')->with('customer')->willReturn($customerMock);
     $customerMock->expects($this->once())->method('getGroupId')->willReturn(1);
     $customerGroupMock = $this->getMockBuilder('Magento\\Customer\\Model\\Data\\Group')->disableOriginalConstructor()->getMock();
     $this->groupRepositoryMock->expects($this->once())->method('getById')->with(1)->willReturn($customerGroupMock);
     $customerGroupMock->expects($this->once())->method('getTaxClassId')->willReturn(1);
     $this->customerSessionMock->expects($this->once())->method('setCustomerTaxClassId')->with(1);
     $address = $this->objectManager->getObject('Magento\\Customer\\Model\\Data\\Address');
     $address->setIsDefaultShipping(true);
     $address->setIsDefaultBilling(true);
     $address->setCountryId(1);
     $address->setPostCode(11111);
     $addresses = [$address];
     $customerMock->expects($this->once())->method('getAddresses')->willReturn($addresses);
     $this->customerSessionMock->expects($this->once())->method('setDefaultTaxBillingAddress')->with(['country_id' => 1, 'region_id' => null, 'postcode' => 11111]);
     $this->customerSessionMock->expects($this->once())->method('setDefaultTaxShippingAddress')->with(['country_id' => 1, 'region_id' => null, 'postcode' => 11111]);
     $this->session->execute($this->observerMock);
 }
 public function testAroundDispatchBasedOnShipping()
 {
     $this->customerSessionMock->expects($this->once())->method('isLoggedIn')->willReturn(true);
     $this->moduleManagerMock->expects($this->once())->method('isEnabled')->with('Magento_PageCache')->willReturn(true);
     $this->cacheConfigMock->expects($this->once())->method('isEnabled')->willReturn(true);
     $this->weeeHelperMock->expects($this->once())->method('isEnabled')->willReturn(true);
     $this->taxHelperMock->expects($this->once())->method('getTaxBasedOn')->willReturn('shipping');
     $storeMock = $this->getMockBuilder('Magento\\Store\\Model\\Store')->disableOriginalConstructor()->getMock();
     $storeMock->expects($this->once())->method('getWebsiteId')->willReturn(1);
     $this->storeManagerMock->expects($this->once())->method('getStore')->willReturn($storeMock);
     $this->scopeConfigMock->expects($this->at(0))->method('getValue')->with(\Magento\Tax\Model\Config::CONFIG_XML_PATH_DEFAULT_COUNTRY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, null)->willReturn('US');
     $this->scopeConfigMock->expects($this->at(1))->method('getValue')->with(\Magento\Tax\Model\Config::CONFIG_XML_PATH_DEFAULT_REGION, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, null)->willReturn(0);
     $this->customerSessionMock->expects($this->once())->method('getDefaultTaxShippingAddress')->willReturn(['country_id' => 'US', 'region_id' => 1]);
     $this->weeeTaxMock->expects($this->once())->method('isWeeeInLocation')->with('US', 1, 1)->willReturn(true);
     $this->httpContextMock->expects($this->once())->method('setValue')->with('weee_tax_region', ['countryId' => 'US', 'regionId' => 1], 0);
     $action = $this->objectManager->getObject('Magento\\Framework\\App\\Test\\Unit\\Action\\Stub\\ActionStub');
     $request = $this->getMock('\\Magento\\Framework\\App\\Request\\Http', ['getActionName'], [], '', false);
     $expectedResult = 'expectedResult';
     $proceed = function ($request) use($expectedResult) {
         return $expectedResult;
     };
     $this->contextPlugin->aroundDispatch($action, $proceed, $request);
 }
示例#11
0
 public function testDisplayShippingBothPrices()
 {
     $this->taxHelper->expects($this->once())->method('displayShippingBothPrices');
     $this->priceObj->displayShippingBothPrices();
 }