Esempio n. 1
0
 /**
  * @covers ::getProducts
  */
 public function testProducts()
 {
     $store = new Store();
     $items = $store->getProducts();
     $this->assertInstanceOf('Harp\\Harp\\Repo\\LinkMany', $items);
     $this->assertEquals(Product::getRepo(), $items->getRel()->getRepo());
 }
Esempio n. 2
0
 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());
 }
Esempio n. 3
0
 /**
  * @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));
 }
Esempio n. 4
0
 /**
  * @covers ::getProductItems
  */
 public function testProductItems()
 {
     $product = new Product();
     $items = $product->getProductItems();
     $this->assertContainsOnlyInstancesOf('CL\\Purchases\\ProductItem', $items->toArray());
 }
Esempio n. 5
0
 public static function initialize(Config $config)
 {
     parent::initialize($config);
     $config->addRels([new Rel\BelongsTo('product', $config, Product::getRepo(), ['key' => 'sourceId'])]);
 }
Esempio n. 6
0
 public static function initialize(Config $config)
 {
     SoftDeleteTrait::initialize($config);
     $config->addRels([new Rel\HasMany('products', $config, Product::getRepo(), ['inverseOf' => 'store']), new Rel\HasMany('storePurchases', $config, StorePurchase::getRepo(), ['inverseOf' => 'store'])])->addAsserts([new Assert\Present('name'), new Assert\LengthLessThan('name', 150)]);
 }