public function testSaveUpdateMerge() { $synonymGroupModel = $this->getMock('Magento\\Search\\Model\\SynonymGroup', [], [], '', false); $synonymGroupModel->expects($this->once())->method('load')->with(1); $synonymGroupModel->expects($this->exactly(2))->method('getSynonymGroup')->willReturn('a,b,c'); $synonymGroupModel->expects($this->once())->method('getGroupId')->willReturn(1); $existingSynonymGroupModel = $this->getMock('Magento\\Search\\Model\\SynonymGroup', [], [], '', false); $existingSynonymGroupModel->expects($this->once())->method('load')->with(2); $existingSynonymGroupModel->expects($this->once())->method('delete'); $existingSynonymGroupModel->expects($this->once())->method('getSynonymGroup')->willReturn('d,e,f'); $synonymGroupModel->expects($this->once())->method('setStoreId'); $synonymGroupModel->expects($this->once())->method('setWebsiteId'); // merged result $synonymGroupModel->expects($this->once())->method('setSynonymGroup')->with('d,e,f,a,z'); $this->factory->expects($this->at(0))->method('create')->willReturn($synonymGroupModel); $this->factory->expects($this->at(1))->method('create')->willReturn($existingSynonymGroupModel); $this->resourceModel->expects($this->once())->method('getByScope')->willReturn([['group_id' => 1, 'synonyms' => 'a,b,c'], ['group_id' => 2, 'synonyms' => 'd,e,f']]); $this->resourceModel->expects($this->once())->method('save')->with($synonymGroupModel); $data = $this->getMockForAbstractClass('Magento\\Search\\Api\\Data\\SynonymGroupInterface', [], '', false); $data->expects($this->once())->method('getGroupId')->willReturn(1); $data->expects($this->exactly(2))->method('getStoreId'); $data->expects($this->exactly(2))->method('getWebsiteId'); $data->expects($this->exactly(3))->method('getSynonymGroup')->willReturn('a,d,z'); $this->object->save($data); }
public function testDelete() { /** @var \Magento\Search\Api\Data\SynonymGroupInterface $synonymGroup */ $synonymGroup = $this->objectManager->create('Magento\\Search\\Api\\Data\\SynonymGroupInterface'); $synonymGroup->setSynonymGroup('test1,test2,test3'); $this->model->save($synonymGroup); $id = $synonymGroup->getGroupId(); /** @var \Magento\Search\Model\SynonymGroup $synonymGroupModel */ $synonymGroupModel = $this->objectManager->create('Magento\\Search\\Model\\SynonymGroup'); $synonymGroupModel->load($id); $this->model->delete($synonymGroupModel); $synonymGroupModel = $this->objectManager->create('Magento\\Search\\Model\\SynonymGroup'); $synonymGroupModel->load($id); $this->assertNull($synonymGroupModel->getSynonymGroup()); }