/** * @dataProvider saveWithValidateCategoryExceptionDataProvider */ public function testSaveWithValidateCategoryException($error, $expectedException, $expectedExceptionMessage) { $this->setExpectedException($expectedException, $expectedExceptionMessage); $categoryId = 5; $categoryMock = $this->getMock('\\Magento\\Catalog\\Model\\Category', [], [], '', false); $objectMock = $this->getMock('\\Magento\\Framework\\Object', ['getFrontend', 'getLabel'], [], '', false); $categoryMock->expects($this->atLeastOnce())->method('getId')->willReturn($categoryId); $this->categoryFactoryMock->expects($this->once())->method('create')->willReturn($categoryMock); $objectMock->expects($this->any())->method('getFrontend')->willReturn($objectMock); $objectMock->expects($this->any())->method('getLabel')->willReturn('ValidateCategoryTest'); $categoryMock->expects($this->once())->method('getParentId')->willReturn(3); $categoryMock->expects($this->once())->method('validate')->willReturn([42 => $error]); $this->categoryResourceMock->expects($this->any())->method('getAttribute')->with(42)->willReturn($objectMock); $categoryMock->expects($this->never())->method('unsetData'); $this->model->save($categoryMock); }