/** * {@inheritdoc} */ public function create(array $data) { $charge = new Charge($data['id']); $charge->setCreated($this->dateTimeUtil->createDateTimeByUnixTime($data['created']))->setPaid($data['paid'])->setCaptured($data['captured'])->setAmount(new Money(floatval($data['amount']), $data['currency']))->setSource($data['source'] ?: null)->setRefunded($data['refunded'])->setAmountRefunded(new Money(floatval($data['amount_refunded']), $data['currency']))->setDispute($data['dispute']); foreach ($data['refunds'] as $refund) { $charge->addRefund($refund); } return $charge; }
public function testAccessors() { $charge = new Charge('charge'); $charge->setCreated(new \DateTime('2015-01-01 10:00:00'))->setPaid(true)->setCaptured(true)->setSource($card = new Card())->setRefunded(true)->addRefund($refund1 = new Refund())->addRefund($refund2 = new Refund())->setDispute($dispute = new Dispute()); $this->assertEquals('charge', $charge->getId()); $this->assertEquals(new \DateTime('2015-01-01 10:00:00'), $charge->getCreated()); $this->assertTrue($charge->isPaid()); $this->assertTrue($charge->isCaptured()); $this->assertSame($card, $charge->getSource()); $this->assertTrue($charge->isRefunded()); $this->assertCount(2, $charge->getRefunds()); $this->assertSame($refund1, $charge->getRefunds()[0]); $this->assertSame($refund2, $charge->getRefunds()[1]); $this->assertSame($dispute, $charge->getDispute()); $charge->setSource(null)->setDispute(null); $this->assertNull($charge->getSource(), 'source can be a null'); $this->assertNull($charge->getDispute(), 'dispute can be a null'); }