public static function initialize(Config $config) { ItemGroupTrait::initialize($config); TimestampsTrait::initialize($config); RandomKeyTrait::initialize($config); $config->setTable('StorePurchase')->addRels([new Rel\BelongsTo('purchase', $config, Purchase::getRepo()), new Rel\BelongsTo('store', $config, Store::getRepo()), new Rel\HasMany('items', $config, PurchaseItem::getRepo(), ['inverseOf' => 'storePurchase']), new Rel\HasMany('refunds', $config, Refund::getRepo(), ['inverseOf' => 'storePurchase'])]); }
/** * @covers ::initialize */ public function testInitialize() { $refund = Refund::getRepo(); $storePurchase = $refund->getRelOrError('storePurchase'); $this->assertEquals('CL\\Purchases\\StorePurchase', $storePurchase->getRepo()->getModelClass()); $refund = new Refund(['isFrozen' => true]); $storePurchase = $this->getMock('CL\\Purchases\\StorePurchase', ['getRemainingValue']); $storePurchase->expects($this->exactly(4))->method('getRemainingValue')->will($this->returnValue(new Money(800, $storePurchase->getCurrency()))); $refund->setStorePurchase($storePurchase); $this->assertFalse($refund->validate()); $refund->value = 800; $this->assertTrue($refund->validate()); $refund->value = 300; $this->assertTrue($refund->validate()); $refund->value = -300; $this->assertFalse($refund->validate()); }
/** * @covers ::getRefunds */ public function testRefunds() { $storePurchase = new StorePurchase(); $refunds = $storePurchase->getRefunds(); $this->assertEquals(Refund::getRepo(), $refunds->getRel()->getRepo()); }