public static function initialize(Config $config) { TransferTrait::initialize($config); ItemGroupTrait::initialize($config); TimestampsTrait::initialize($config); RandomKeyTrait::initialize($config); CurrencyTrait::initialize($config); $config->setTable('Purchase')->addRels([new Rel\HasMany('items', $config, PurchaseItem::getRepo(), ['inverseOf' => 'purchase']), new Rel\HasMany('storePurchases', $config, StorePurchase::getRepo(), ['inverseOf' => 'purchase']), new Rel\BelongsTo('billing', $config, Address::getRepo())]); }
/** * @coversNothing */ public function testIntegration() { $address = Address::find(1); $purchase = Purchase::find(1); $country = Country::find(1); $city = City::find(2); $this->assertSame($purchase, $address->getPurchase()); $this->assertSame($city, $address->getCity()); $this->assertSame($country, $address->getCountry()); }
public function testStorePurchase() { $purchase = new Purchase(); $address = Address::find(1); $product1 = Product::find(5); $product2 = Product::find(6); $product3 = Product::find(7); $purchase->setBilling($address); $purchase->addProduct($product1, 4)->addProduct($product2)->addProduct($product3)->addProduct($product1); Purchase::save($purchase); $gateway = Omnipay::getFactory()->create('Dummy'); $parameters = ['card' => ['number' => '4242424242424242', 'expiryMonth' => 12, 'expiryYear' => date('Y'), 'cvv' => 123], 'clientIp' => '192.168.0.1']; $response = $purchase->purchase($gateway, $parameters); $this->assertTrue($response->isSuccessful()); $this->assertEquals('Success', $response->getMessage()); }
/** * @coversNothing */ public function testIntegration() { $purchase = Purchase::find(1); $item1 = PurchaseItem::find(1); $item2 = PurchaseItem::find(2); $item3 = PurchaseItem::find(3); $item4 = PurchaseItem::find(4); $storePurchase1 = StorePurchase::find(1); $storePurchase2 = StorePurchase::find(2); $billing = Address::find(1); $items = $purchase->getItems(); $this->assertSame([$item1, $item2, $item3, $item4], $purchase->getItems()->toArray()); $this->assertSame([$storePurchase1, $storePurchase2], $purchase->getStorePurchases()->toArray()); $this->assertSame($billing, $purchase->getBilling()); }