/** * @param \SubscribePro\Service\Product\ProductInterface $product * @return \SubscribePro\Service\Product\ProductInterface * @throws \SubscribePro\Exception\EntityInvalidDataException * @throws \SubscribePro\Exception\HttpException */ public function saveProduct(ProductInterface $product) { if (!$product->isValid()) { throw new EntityInvalidDataException('Not all required fields are set.'); } $url = $product->isNew() ? '/services/v2/product.json' : "/services/v2/products/{$product->getId()}.json"; $response = $this->httpClient->post($url, [self::API_NAME_PRODUCT => $product->getFormData()]); return $this->retrieveItem($response, self::API_NAME_PRODUCT, $product); }
/** * @param array $data * @param bool $isValid * @dataProvider isValidDataProvider */ public function testIsValid($data, $isValid) { $this->product->importData($data); $this->assertEquals($isValid, $this->product->isValid()); }