/**
  * @param \SubscribePro\Service\Customer\CustomerInterface $customer
  * @return \SubscribePro\Service\Customer\CustomerInterface
  * @throws \SubscribePro\Exception\EntityInvalidDataException
  * @throws \SubscribePro\Exception\HttpException
  */
 public function saveCustomer(CustomerInterface $customer)
 {
     if (!$customer->isValid()) {
         throw new EntityInvalidDataException('Not all required fields are set.');
     }
     $url = $customer->isNew() ? '/services/v2/customer.json' : "/services/v2/customers/{$customer->getId()}.json";
     $response = $this->httpClient->post($url, [self::API_NAME_CUSTOMER => $customer->getFormData()]);
     return $this->retrieveItem($response, self::API_NAME_CUSTOMER, $customer);
 }
 /**
  * @param array $data
  * @param array $expectedData
  * @dataProvider getFormDataProvider
  */
 public function testGetFormData($data, $expectedData)
 {
     $this->customer->importData($data);
     $this->assertEquals($expectedData, $this->customer->getFormData());
 }