/**
  * @param Quote $quote
  * @param array $offerData
  * @return Order|null
  */
 protected function onSuccess(Quote $quote, array $offerData)
 {
     $order = $this->converter->convert($quote, $this->user, $offerData);
     $this->manager->persist($order);
     $this->manager->flush();
     return $order;
 }
 public function testConvertFromSelectedOffers()
 {
     $sku = 'sku1';
     $unit = 'kg';
     $qty = 55.5;
     $price = 555;
     $subtotalAmount = 25355.5;
     $quoteProduct = $this->createQuoteProduct($sku, true);
     $quoteProduct->setProduct((new Product())->setSku('test sku'));
     $quote = $this->createMainEntity(self::ACCOUNT_NAME, self::ACCOUNT_USER_FIRST_NAME, self::ACCOUNT_USER_LAST_NAME);
     $order = $this->createMainEntity(self::ACCOUNT_NAME, self::ACCOUNT_USER_FIRST_NAME, self::ACCOUNT_USER_LAST_NAME, true)->setCurrency(self::CURRENCY)->addLineItem($this->createOrderLineItem($sku, $unit, $qty, OrderLineItem::PRICE_TYPE_UNIT, $price, self::CURRENCY))->setSubtotal($subtotalAmount);
     $offer = $this->createQuoteProductOffer($unit, 1000, QuoteProductOffer::PRICE_TYPE_UNIT, $price, self::CURRENCY);
     $this->createQuoteProduct($sku, true)->addQuoteProductOffer($offer);
     $this->assertCalculateSubtotalsCalled($subtotalAmount);
     $this->assertEquals($order, $this->converter->convert($quote, null, [['offer' => $offer, 'quantity' => $qty]]));
 }