public function testGetItems() { $optionId = 1; $optionData = ['title' => 'test title']; $productSku = 'product_sku'; $productMock = $this->getMock('\\Magento\\Catalog\\Api\\Data\\ProductInterface'); $productMock->expects($this->once())->method('getSku')->willReturn($productSku); $optionMock = $this->getMock('\\Magento\\Bundle\\Model\\Option', ['getOptionId', 'getData', 'getTitle', 'getDefaultTitle'], [], '', false); $optionsCollMock = $this->objectManager->getCollectionMock('Magento\\Bundle\\Model\\ResourceModel\\Option\\Collection', [$optionMock]); $this->typeMock->expects($this->once())->method('getOptionsCollection')->with($productMock)->willReturn($optionsCollMock); $optionMock->expects($this->exactly(2))->method('getOptionId')->willReturn($optionId); $optionMock->expects($this->once())->method('getData')->willReturn($optionData); $optionMock->expects($this->once())->method('getTitle')->willReturn(null); $optionMock->expects($this->once())->method('getDefaultTitle')->willReturn($optionData['title']); $linkMock = $this->getMock('\\Magento\\Bundle\\Api\\Data\\LinkInterface'); $this->linkListMock->expects($this->once())->method('getItems')->with($productMock, $optionId)->willReturn([$linkMock]); $newOptionMock = $this->getMock('\\Magento\\Bundle\\Api\\Data\\OptionInterface'); $this->dataObjectHelperMock->expects($this->once())->method('populateWithArray')->with($newOptionMock, $optionData, '\\Magento\\Bundle\\Api\\Data\\OptionInterface')->willReturnSelf(); $newOptionMock->expects($this->once())->method('setOptionId')->with($optionId)->willReturnSelf(); $newOptionMock->expects($this->once())->method('setTitle')->with($optionData['title'])->willReturnSelf(); $newOptionMock->expects($this->once())->method('setSku')->with($productSku)->willReturnSelf(); $newOptionMock->expects($this->once())->method('setProductLinks')->with([$linkMock])->willReturnSelf(); $this->optionFactoryMock->expects($this->once())->method('create')->willReturn($newOptionMock); $this->assertEquals([$newOptionMock], $this->model->getItems($productMock)); }
protected function setUp() { $this->objectManager = new ObjectManager($this); $this->collectionFactoryMock = $this->getMockBuilder(CollectionFactory::class)->setMethods(['create'])->disableOriginalConstructor()->getMock(); $this->collectionMock = $this->objectManager->getCollectionMock(Collection::class, []); $this->requestMock = $this->getMockBuilder(RequestInterface::class)->getMockForAbstractClass(); $this->collectionFactoryMock->expects($this->any())->method('create')->willReturn($this->collectionMock); $this->model = $this->objectManager->getObject(ReviewDataProvider::class, ['name' => 'testName', 'primaryFieldName' => 'testPrimaryFieldName', 'requestFieldName' => 'testRequestFieldName', 'meta' => [], 'data' => [], 'collectionFactory' => $this->collectionFactoryMock, 'request' => $this->requestMock]); }
public function testGetListReturnsTheListOfActiveCheckoutAgreements() { $this->scopeConfigMock->expects($this->once())->method('isSetFlag')->with('checkout/options/enable_agreements', ScopeInterface::SCOPE_STORE, null)->will($this->returnValue(true)); $agreementDataObject = $this->getMock('Magento\\CheckoutAgreements\\Model\\Agreement', [], [], '', false); $storeId = 1; $storeMock = $this->getMock('Magento\\Store\\Model\\Store', [], [], '', false); $storeMock->expects($this->any())->method('getId')->will($this->returnValue($storeId)); $this->storeManagerMock->expects($this->any())->method('getStore')->will($this->returnValue($storeMock)); $collectionMock = $this->objectManager->getCollectionMock('Magento\\CheckoutAgreements\\Model\\Resource\\Agreement\\Collection', [$agreementDataObject]); $this->factoryMock->expects($this->once())->method('create')->will($this->returnValue($collectionMock)); $collectionMock->expects($this->once())->method('addStoreFilter')->with($storeId); $collectionMock->expects($this->once())->method('addFieldToFilter')->with('is_active', 1); $this->assertEquals([$agreementDataObject], $this->model->getList()); }
public function testGetOptions() { $optionInstanceMock = $this->getMockBuilder('Magento\\Catalog\\Model\\Product\\Option')->disableOriginalConstructor()->getMock(); $optionFactory = $this->getMock('Magento\\Catalog\\Model\\Product\\OptionFactory', ['create'], [], '', false); $optionFactory->expects($this->any())->method('create')->willReturn($optionInstanceMock); $joinProcessorMock = $this->getMockBuilder('Magento\\Framework\\Api\\ExtensionAttribute\\JoinProcessorInterface')->disableOriginalConstructor()->getMock(); // the productModel $productModel = $this->objectManagerHelper->getObject('Magento\\Catalog\\Model\\Product', ['catalogProductOptionFactory' => $optionFactory, 'joinProcessor' => $joinProcessorMock]); $productModel->setHasOptions(true); $option1Id = 2; $optionMock1 = $this->getMockBuilder('\\Magento\\Catalog\\Model\\Product\\Option')->disableOriginalConstructor()->setMethods(['getId', 'setProduct'])->getMock(); $optionMock1->expects($this->once())->method('getId')->willReturn($option1Id); $optionMock1->expects($this->once())->method('setProduct')->with($productModel)->willReturn($option1Id); $option2Id = 3; $optionMock2 = $this->getMockBuilder('\\Magento\\Catalog\\Model\\Product\\Option')->disableOriginalConstructor()->setMethods(['getId', 'setProduct'])->getMock(); $optionMock2->expects($this->once())->method('getId')->willReturn($option2Id); $optionMock1->expects($this->once())->method('setProduct')->with($productModel)->willReturn($option1Id); $optionColl = $this->objectManagerHelper->getCollectionMock('Magento\\Catalog\\Model\\ResourceModel\\Product\\Option\\Collection', [$optionMock1, $optionMock2]); $optionInstanceMock->expects($this->once())->method('getProductOptionCollection')->with($productModel)->willReturn($optionColl); $joinProcessorMock->expects($this->once())->method('process')->with($this->isInstanceOf('Magento\\Catalog\\Model\\ResourceModel\\Product\\Option\\Collection')); $expectedOptions = [$option1Id => $optionMock1, $option2Id => $optionMock2]; $this->assertEquals($expectedOptions, $productModel->getOptions()); //Calling the method again, empty options array will be returned $productModel->setOptions([]); $this->assertEquals([], $productModel->getOptions()); }
protected function setUp() { $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $this->objectManagerHelper = new ObjectManagerHelper($this); $taxClass = $this->getMockBuilder('Magento\\Tax\\Model\\ClassModel')->disableOriginalConstructor()->getMock(); $taxClass->method('getClassName')->will($this->returnValue(self::TEST_TAX_CLASS_NAME)); $taxClass->method('getId')->will($this->returnValue(self::TEST_TAX_CLASS_ID)); $taxClassCollection = $this->objectManagerHelper->getCollectionMock('Magento\\Tax\\Model\\ResourceModel\\TaxClass\\Collection', [$taxClass]); $taxClassCollectionFactory = $this->getMock('Magento\\Tax\\Model\\ResourceModel\\TaxClass\\CollectionFactory', ['create'], [], '', false); $taxClassCollectionFactory->method('create')->will($this->returnValue($taxClassCollection)); $anotherTaxClass = $this->getMockBuilder('Magento\\Tax\\Model\\ClassModel')->disableOriginalConstructor()->getMock(); $anotherTaxClass->method('getClassName')->will($this->returnValue(self::TEST_TAX_CLASS_NAME)); $anotherTaxClass->method('getId')->will($this->returnValue(self::TEST_JUST_CREATED_TAX_CLASS_ID)); $taxClassFactory = $this->getMock('Magento\\Tax\\Model\\ClassModelFactory', ['create'], [], '', false); $taxClassFactory->method('create')->will($this->returnValue($anotherTaxClass)); $this->taxClassProcessor = new \Magento\CatalogImportExport\Model\Import\Product\TaxClassProcessor($taxClassCollectionFactory, $taxClassFactory); $this->product = $this->getMockForAbstractClass('Magento\\CatalogImportExport\\Model\\Import\\Product\\Type\\AbstractType', [], '', false); }
protected function setUp() { $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $this->objectManagerHelper = new ObjectManagerHelper($this); $childCategory = $this->getMockBuilder('Magento\\Catalog\\Model\\Category')->disableOriginalConstructor()->getMock(); $childCategory->method('getId')->will($this->returnValue(self::CHILD_CATEGORY_ID)); $childCategory->method('getName')->will($this->returnValue('Child')); $childCategory->method('getPath')->will($this->returnValue(self::PARENT_CATEGORY_ID . CategoryProcessor::DELIMITER_CATEGORY . self::CHILD_CATEGORY_ID)); $parentCategory = $this->getMockBuilder('Magento\\Catalog\\Model\\Category')->disableOriginalConstructor()->getMock(); $parentCategory->method('getId')->will($this->returnValue(self::PARENT_CATEGORY_ID)); $parentCategory->method('getName')->will($this->returnValue('Parent')); $parentCategory->method('getPath')->will($this->returnValue(self::PARENT_CATEGORY_ID)); $categoryCollection = $this->objectManagerHelper->getCollectionMock('Magento\\Catalog\\Model\\Resource\\Category\\Collection', [self::PARENT_CATEGORY_ID => $parentCategory, self::CHILD_CATEGORY_ID => $childCategory]); $map = [[self::PARENT_CATEGORY_ID, $parentCategory], [self::CHILD_CATEGORY_ID, $childCategory]]; $categoryCollection->expects($this->any())->method('getItemById')->will($this->returnValueMap($map)); $categoryColFactory = $this->getMock('Magento\\Catalog\\Model\\Resource\\Category\\CollectionFactory', ['create'], [], '', false); $categoryColFactory->method('create')->will($this->returnValue($categoryCollection)); $categoryFactory = $this->getMock('Magento\\Catalog\\Model\\CategoryFactory', ['create'], [], '', false); $categoryFactory->method('create')->will($this->returnValue($childCategory)); $this->categoryProcessor = new \Magento\CatalogImportExport\Model\Import\Product\CategoryProcessor($categoryColFactory, $categoryFactory); }
/** * @return void * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testBuildPositive() { //prepare mocks and data samples $instance = $this->getMock('Magento\\Bundle\\Model\\Product\\Type', ['setStoreFilter', 'getOptionsCollection', 'getSelectionsCollection', 'getOptionsIds'], [], '', false); $option = $this->getMock('Magento\\Bundle\\Model\\Option', ['getSelections', '__wakeup', 'getData'], [], '', false); $options = [$option]; $optionCollection = $this->objectManager->getCollectionMock('Magento\\Bundle\\Model\\ResourceModel\\Option\\Collection', $options); $optionRawData = [['required' => true, 'position' => 100, 'type' => 'someType', 'title' => 'title', 'delete' => '']]; $selectionRawData = [[['product_id' => 123, 'position' => 500, 'is_default' => false, 'selection_price_type' => 'priceType', 'selection_price_value' => 'priceVal', 'selection_qty' => 21, 'selection_can_change_qty' => 11, 'delete' => '']]]; $selection = $this->getMock('Magento\\Bundle\\Model\\Selection', ['getProductId', 'getPosition', 'getIsDefault', 'getSelectionPriceType', 'getSelectionPriceValue', 'getSelectionQty', 'getSelectionCanChangeQty', '__wakeup'], [], '', false); $selections = [$selection]; $selectionCollection = $this->getMock('Magento\\Bundle\\Model\\ResourceModel\\Selection\\Collection', [], [], '', false); // method flow $this->product->expects($this->once())->method('getTypeId')->will($this->returnValue('bundle')); $this->product->expects($this->any())->method('getTypeInstance')->will($this->returnValue($instance)); $instance->expects($this->once())->method('setStoreFilter')->with(null, $this->product); $instance->expects($this->once())->method('getOptionsCollection')->with($this->product)->will($this->returnValue($optionCollection)); $instance->expects($this->once())->method('getSelectionsCollection')->with(null, $this->product)->will($this->returnValue($selectionCollection)); $optionCollection->expects($this->once())->method('appendSelections')->with($selectionCollection); $option->expects($this->any())->method('getSelections')->will($this->returnValue($selections)); $option->expects($this->at(0))->method('getData')->with('required')->will($this->returnValue(true)); $option->expects($this->at(1))->method('getData')->with('position')->will($this->returnValue(100)); $option->expects($this->at(2))->method('getData')->with('type')->will($this->returnValue('someType')); $option->expects($this->at(3))->method('getData')->with('title')->will($this->returnValue('title')); $option->expects($this->at(4))->method('getData')->with('title')->will($this->returnValue('title')); $selection->expects($this->once())->method('getProductId')->will($this->returnValue(123)); $selection->expects($this->once())->method('getPosition')->will($this->returnValue(500)); $selection->expects($this->once())->method('getIsDefault')->will($this->returnValue(false)); $selection->expects($this->once())->method('getSelectionPriceType')->will($this->returnValue('priceType')); $selection->expects($this->once())->method('getSelectionPriceValue')->will($this->returnValue('priceVal')); $selection->expects($this->once())->method('getSelectionQty')->will($this->returnValue(21)); $selection->expects($this->once())->method('getSelectionCanChangeQty')->will($this->returnValue(11)); $this->duplicate->expects($this->once())->method('setBundleOptionsData')->with($optionRawData); $this->duplicate->expects($this->once())->method('setBundleSelectionsData')->with($selectionRawData); $this->model->build($this->product, $this->duplicate); }
public function testGetSwatchesByOptionsIdIf3() { $swatchMock = $this->getMock('\\Magento\\Swatches\\Model\\Swatch', [], [], '', false); $optionsData = ['type' => 0, 'store_id' => 0, 'value' => 'test_test', 'option_id' => 35, 'id' => 423]; $swatchMock->expects($this->at(0))->method('offsetGet')->with('type')->willReturn(0); $swatchMock->expects($this->at(1))->method('offsetGet')->with('store_id')->willReturn(0); $swatchMock->expects($this->at(2))->method('offsetGet')->with('store_id')->willReturn(0); $swatchMock->expects($this->at(3))->method('offsetGet')->with('option_id')->willReturn(35); $swatchMock->expects($this->at(4))->method('getData')->with('')->willReturn($optionsData); $swatchCollectionMock = $this->objectManager->getCollectionMock('\\Magento\\Swatches\\Model\\ResourceModel\\Swatch\\Collection', [$swatchMock]); $this->swatchCollectionFactoryMock->method('create')->willReturn($swatchCollectionMock); $swatchCollectionMock->method('addFilterByOptionsIds')->with([35])->will($this->returnSelf()); $storeMock = $this->getMock('\\Magento\\Store\\Model\\Store', [], [], '', false); $this->storeManagerMock->method('getStore')->willReturn($storeMock); $storeMock->method('getId')->willReturn(1); $this->swatchHelperObject->getSwatchesByOptionsId([35]); }
public function testGetListWhenFilterGroupExists() { $searchCriteriaMock = $this->getMock('Magento\\Framework\\Api\\SearchCriteriaInterface'); $filterGroupMock = $this->getMock('Magento\\Framework\\Api\\Search\\FilterGroup', [], [], '', false); $searchCriteriaMock->expects($this->any())->method('getFilterGroups')->will($this->returnValue([$filterGroupMock])); $filterMock = $this->getMock('Magento\\Framework\\Api\\Filter', [], [], '', false); $filterGroupMock->expects($this->once())->method('getFilters')->willReturn([$filterMock]); $filterMock->expects($this->exactly(2))->method('getConditionType')->willReturn('like'); $filterMock->expects($this->once())->method('getField')->willReturn('region_name'); $filterMock->expects($this->once())->method('getValue')->willReturn('condition_value'); $objectManager = new ObjectManager($this); $rateMock = $this->getTaxRateMock([]); $items = [$rateMock]; $collectionMock = $objectManager->getCollectionMock('Magento\\Tax\\Model\\ResourceModel\\Calculation\\Rate\\Collection', $items); $collectionMock->expects($this->once())->method('addFieldToFilter')->with(['region_table.code'], [['like' => 'condition_value']]); $sortOrderMock = $this->getMock('Magento\\Framework\\Api\\SortOrder', [], [], '', false); $searchCriteriaMock->expects($this->any())->method('getSortOrders')->will($this->returnValue([$sortOrderMock])); $sortOrderMock->expects($this->once())->method('getField')->willReturn('field_name'); $sortOrderMock->expects($this->once())->method('getDirection')->willReturn(SortOrder::SORT_ASC); $collectionMock->expects($this->once())->method('addOrder')->with('main_table.field_name', 'ASC'); $currentPage = 1; $pageSize = 100; $searchCriteriaMock->expects($this->any())->method('getCurrentPage')->will($this->returnValue($currentPage)); $searchCriteriaMock->expects($this->any())->method('getPageSize')->will($this->returnValue($pageSize)); $rateMock = $this->getTaxRateMock([]); $collectionMock->expects($this->once())->method('joinRegionTable'); $collectionMock->expects($this->once())->method('setCurPage')->with($currentPage); $collectionMock->expects($this->once())->method('setPageSize')->with($pageSize); $collectionMock->expects($this->once())->method('getSize')->will($this->returnValue(count($items))); $this->rateFactoryMock->expects($this->once())->method('create')->will($this->returnValue($rateMock)); $rateMock->expects($this->any())->method('getCollection')->will($this->returnValue($collectionMock)); $this->searchResultMock->expects($this->once())->method('setItems')->with($items)->willReturnSelf(); $this->searchResultMock->expects($this->once())->method('setTotalCount')->with(count($items))->willReturnSelf(); $this->searchResultMock->expects($this->once())->method('setSearchCriteria')->with($searchCriteriaMock)->willReturnSelf(); $this->searchResultFactory->expects($this->once())->method('create')->willReturn($this->searchResultMock); $this->joinProcessorMock->expects($this->once())->method('process')->with($collectionMock); $this->model->getList($searchCriteriaMock); }