/** * @param Order|object $order * @param float|null $newLifetime * @param array $changeSet * @dataProvider updateDataProvider */ public function testUpdate($order, $newLifetime = null, array $changeSet = array()) { $isUpdateRequired = array_intersect(array('subtotalAmount', 'status'), array_keys($changeSet)); if ($isUpdateRequired && $newLifetime) { $entityManager = $this->createEntityManagerMock($order->getCustomer(), $newLifetime); } else { $entityManager = $this->createEntityManagerMock(); } $listener = new OrderListener(); $listener->preUpdate(new PreUpdateEventArgs($order, $entityManager, $changeSet)); if ($isUpdateRequired) { $this->assertAttributeEquals(array($order->getId() => true), 'ordersForUpdate', $listener); } else { $this->assertAttributeEmpty('ordersForUpdate', $listener); } $listener->postUpdate(new LifecycleEventArgs($order, $entityManager)); $this->assertAttributeEmpty('ordersForUpdate', $listener); }
public function testNotScheduleLifetimeValueHistoryWithoutAccount() { $expectedLifetime = 200; $order = new Order(); $customer = new Customer(); $order->setCustomer($customer)->setSubtotalAmount($expectedLifetime); $entityManager = $this->createEntityManagerMock(); $this->customerRepository->expects($this->once())->method('updateCustomerLifetimeValue')->with($this->isInstanceOf('OroCRM\\Bundle\\MagentoBundle\\Entity\\Customer'), $expectedLifetime); $this->listener->expects($this->never())->method('scheduleEntityUpdate'); $listener = new OrderListener($this->listener); $listener->prePersist(new LifecycleEventArgs($order, $entityManager)); }