public function testOtherAccessors() { $request = new ChargeRequest(); $this->assertTrue($request->isCapture()); $this->assertSame([], $request->getProducts()); $request->setCapture(false)->addProduct($productA = new Product('product-a-id'))->addProduct($productB = new Product('product-b-id')); $this->assertFalse($request->isCapture()); $this->assertCount(2, $request->getProducts()); $this->assertSame($productA, $request->getProducts()[0]); $this->assertSame($productB, $request->getProducts()[1]); }
/** * Creates a new charge. * * @param ChargeRequest $request * @return Charge * * @throws RequestException */ public function charge(ChargeRequest $request) { $result = $this->request('POST', '/charges', ['card' => $request->getToken(), 'amount' => $request->getAmount() ? $request->getAmount()->getAmount() : null, 'currency' => $request->getAmount() ? $request->getAmount()->getCurrency() : null, 'capture' => $request->isCapture() ? 'true' : 'false', 'products' => json_encode($request->getProducts())]); return $this->objectConverter->convert($result); }