/**
  * Build product based on user request
  *
  * @param RequestInterface $request
  * @return \Magento\Catalog\Model\Product
  */
 public function build(RequestInterface $request)
 {
     $productId = (int) $request->getParam('id');
     /** @var $product \Magento\Catalog\Model\Product */
     $product = $this->productFactory->create();
     $product->setStoreId($request->getParam('store', 0));
     $typeId = $request->getParam('type');
     if (!$productId && $typeId) {
         $product->setTypeId($typeId);
     }
     $product->setData('_edit_mode', true);
     if ($productId) {
         try {
             $product->load($productId);
         } catch (\Exception $e) {
             $product->setTypeId(\Magento\Catalog\Model\Product\Type::DEFAULT_TYPE);
             $this->logger->critical($e);
         }
     }
     $setId = (int) $request->getParam('set');
     if ($setId) {
         $product->setAttributeSetId($setId);
     }
     $this->registry->register('product', $product);
     $this->registry->register('current_product', $product);
     $this->wysiwygConfig->setStoreId($request->getParam('store'));
     return $product;
 }
 /**
  * @covers \Magento\Cms\Model\Wysiwyg\Config::isEnabled
  * @param string $wysiwygState
  * @param boolean $expectedResult
  *
  * @dataProvider isEnabledDataProvider
  */
 public function testIsEnabled($wysiwygState, $expectedResult)
 {
     $storeId = 1;
     $this->wysiwygConfig->setStoreId($storeId);
     $this->scopeConfigMock->expects($this->atLeastOnce())->method('getValue')->with('cms/wysiwyg/enabled', 'store', $storeId)->willReturn($wysiwygState);
     $this->assertEquals($expectedResult, $this->wysiwygConfig->isEnabled());
 }