/** * Creates an instance of an entity. * * This method must return always an empty instance for related entity * * @return Order New Order instance */ public function create() { /** * @var Order $order */ $classNamespace = $this->getEntityNamespace(); $order = new $classNamespace(); $order->setQuantity(0)->setWidth(0)->setHeight(0)->setWidth(0)->setWeight(0)->setCreatedAt($this->now())->setPurchasableAmount($this->createZeroAmountMoney())->setAmount($this->createZeroAmountMoney())->setCouponAmount($this->createZeroAmountMoney())->setShippingAmount($this->createZeroAmountMoney()); $paymentStateLineStack = $this->paymentMachineManager->initialize($order, StateLineStack::create(new ArrayCollection(), null), 'Order not paid'); $order->setPaymentStateLineStack($paymentStateLineStack); $shippingStateLineStack = $this->shippingMachineManager->initialize($order, StateLineStack::create(new ArrayCollection(), null), 'Preparing Order'); $order->setShippingStateLineStack($shippingStateLineStack); return $order; }
/** * Test make transition with an initialized object */ public function testReachStateInitialized() { $machineManager = $this->getMachineManager(5); $order = new Order(); $stateLineStack = StateLineStack::create(new ArrayCollection(), null); $order->setStateLineStack($stateLineStack); $stateLineStack = $machineManager->initialize($order, $stateLineStack, ''); $order->setStateLineStack($stateLineStack); $stateLineStack = $machineManager->reachState($order, $stateLineStack, 'paid', ''); $this->assertEquals('paid', $stateLineStack->getLastStateLine()->getName()); $this->assertEquals('paid', $stateLineStack->getStateLines()->last()->getName()); }
/** * Get StateLineStack. * * @return StateLineStack StateLineStack */ public function getStateLineStack() { return StateLineStack::create($this->stateLines, $this->lastStateLine); }
/** * Get ShippingStateLineStack * * @return StateLineStack ShippingStateLineStack */ public function getShippingStateLineStack() { return StateLineStack::create($this->shippingStateLines, $this->shippingLastStateLine); }