Класс OrderHelper использует класс OrderRepository для обновления заказов (с помощью метода save
). Я пытаюсь проверить, вызывается ли OrderRepository::save
внутри OrderHelper::saveOrderSource
.
Но он продолжает говорить:
Ожидание не удалось для имени метода при вызове равно «save» 1 раз. Ожидается, что метод будет вызываться 1 раз, фактически вызываться 0 раз.
Пожалуйста, помогите.
setUp () метод:
protected function setUp()
{
$objectManager = new ObjectManager($this);
$this->orderRepository = $this->getMockBuilder(OrderRepositoryInterface::class)
->setMethods(['save','getList','get','delete'])
->disableOriginalConstructor()
->getMock();
$this->helper = $objectManager->getObject(
OrderHelper::class,
[
'orderRepository' => $this->orderRepository
]
);
}
Класс теста:
public function testSave()
{
$order = $this->createMock(OrderInterface::class);
$this->orderRepository->expects($this->once())
->method('save')
->with($order)
->willReturn($this->helper);
$this->helper->saveOrderSource($order, 1);
}
Оригинальный метод в OrderHelper :: saveOrderSource:
public function saveOrderSource(OrderInterface $order, $source = null) : OrderHelper
{
if(!is_null($order) && !$source){
$order->setOrderSource($source);
$this->orderRepository->save($order);
}
return $this;
}