/** * @param int $transactionId * @param \SubscribePro\Service\Transaction\TransactionInterface|null $transaction * @return \SubscribePro\Service\Transaction\TransactionInterface * @throws \SubscribePro\Exception\EntityInvalidDataException * @throws \SubscribePro\Exception\HttpException */ public function credit($transactionId, TransactionInterface $transaction = null) { if ($transaction && !$transaction->isServiceDataValid()) { throw new EntityInvalidDataException('Currency code not specified for given amount.'); } $postData = $transaction ? [self::API_NAME_TRANSACTION => $transaction->getServiceFormData()] : []; $response = $this->httpClient->post("/services/v1/vault/transactions/{$transactionId}/credit.json", $postData); return $this->retrieveItem($response, self::API_NAME_TRANSACTION, $transaction); }
/** * @param array $data * @param bool $isValid * @dataProvider isServiceDataValidDataProvider */ public function testIsServiceDataValid($data, $isValid) { $this->transaction->importData($data); $this->assertEquals($isValid, $this->transaction->isServiceDataValid()); }