/**
  * @return mixed
  */
 public function createDelivery()
 {
     $faker = $this->getFaker();
     // create new delivery
     $Delivery = $this->app['eccube.repository.delivery']->findOrCreate(0);
     $Delivery->setConfirmUrl($faker->url);
     $Delivery->setDelFlg(Constant::DISABLED);
     $this->app['orm.em']->persist($Delivery);
     $this->app['orm.em']->flush();
     $Prefs = $this->app['eccube.repository.master.pref']->findAll();
     foreach ($Prefs as $Pref) {
         $DeliveryFee = $this->app['eccube.repository.delivery_fee']->findOrCreate(array('Delivery' => $Delivery, 'Pref' => $Pref));
         $DeliveryFee->setFee($faker->randomNumber(3));
         $this->app['orm.em']->persist($DeliveryFee);
         $this->app['orm.em']->flush();
         $Delivery->addDeliveryFee($DeliveryFee);
     }
     $Payment = $this->app['eccube.repository.payment']->findOrCreate(0);
     $this->app['orm.em']->persist($Payment);
     $this->app['orm.em']->flush();
     $PaymentOption = new PaymentOption();
     $PaymentOption->setDelivery($Delivery);
     $PaymentOption->setPayment($Payment);
     $PaymentOption->setDeliveryId($Delivery->getId());
     $PaymentOption->setPaymentId($Payment->getId());
     $this->app['orm.em']->persist($PaymentOption);
     $this->app['orm.em']->flush();
     $Delivery->addPaymentOption($PaymentOption);
     $this->app['orm.em']->persist($Delivery);
     $this->app['orm.em']->flush();
     return $Delivery;
 }