/**
  * Create maker
  *
  * @param Maker   $Maker
  * @param Product $Product
  *
  * @return ProductMaker
  */
 protected function createProductMaker(Maker $Maker, $Product = null)
 {
     /**
      * @var Generator $faker
      */
     $faker = $this->getFaker();
     if (!$Product) {
         // New product
         /**
          * @var Generator $faker
          */
         $faker = $this->getFaker();
         $formData = $this->createFormData();
         $formData['plg_maker'] = '';
         $formData['plg_maker_url'] = '';
         /**
          * @var Client $client
          */
         $client = $this->client;
         $client->request('POST', $this->app->url('admin_product_product_new'), array('admin_product' => $formData));
         $this->assertTrue($client->getResponse()->isRedirection());
         $arrTmp = explode('/', $client->getResponse()->getTargetUrl());
         $productId = $arrTmp[count($arrTmp) - 2];
         $client->followRedirect();
         $Product = $this->app['eccube.repository.product']->find($productId);
     }
     $ProductMaker = new ProductMaker();
     $ProductMaker->setMaker($Maker);
     $ProductMaker->setMakerUrl($faker->url);
     $ProductMaker->setDelFlg(Constant::DISABLED);
     $ProductMaker->setId($Product->getId());
     $this->app['orm.em']->persist($ProductMaker);
     $this->app['orm.em']->flush($ProductMaker);
     return $ProductMaker;
 }