/** * 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; }