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()); }
/** * @covers ::addProduct */ public function testAddProduct() { $purchase = Purchase::find(2); $product1 = Product::find(1); $product2 = Product::find(5); $purchase->addProduct($product1)->addProduct($product1, 4)->addProduct($product2); Purchase::save($purchase); $item1 = $purchase->getItems()->getFirst(); $this->assertInstanceOf('CL\\Purchases\\ProductItem', $item1); $this->assertSame($product1, $item1->getProduct()); $this->assertEquals(5, $item1->quantity); $item2 = $purchase->getItems()->getNext(); $this->assertInstanceOf('CL\\Purchases\\ProductItem', $item2); $this->assertSame($product2, $item2->getProduct()); $this->assertEquals(1, $item2->quantity); $this->assertCount(2, $purchase->getItems()); $this->assertCount(1, $purchase->getStorePurchases()); $this->assertEquals($product1->getStore(), $purchase->getStorePurchases()->getFirst()->getStore()); $this->assertTrue($purchase->getStorePurchases()->getFirst()->getItems()->has($item1)); $this->assertTrue($purchase->getStorePurchases()->getFirst()->getItems()->has($item2)); }