/** * @depends testCreateStageValues */ public function testVariousCurrencyValues() { $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $currencies = Currency::getAll(); $currencyValue = new CurrencyValue(); $currencyValue->value = 100; $currencyValue->currency = $currencies[0]; $this->assertEquals('USD', $currencyValue->currency->code); $contract = new Contract(); $contract->owner = $super; $contract->name = 'test'; $contract->amount = $currencyValue; $contract->closeDate = '2011-01-01'; $contract->stage->value = 'Verbal'; $this->assertEquals(0, $contract->probability); $saved = $contract->save(); $this->assertTrue($saved); $this->assertEquals(75, $contract->probability); $contract1Id = $contract->id; $contract->forget(); $currencyValue = new CurrencyValue(); $currencyValue->value = 800; $currencyValue->currency = $currencies[0]; $this->assertEquals('USD', $currencyValue->currency->code); $contract = new Contract(); $contract->owner = $super; $contract->name = 'test'; $contract->amount = $currencyValue; $contract->closeDate = '2011-01-01'; $contract->stage->value = 'Verbal'; $saved = $contract->save(); $this->assertTrue($saved); $contract2Id = $contract->id; $contract->forget(); $currencyValue->forget(); //need to forget this to pull the accurate value from the database $contract1 = Contract::getById($contract1Id); $this->assertEquals(100, $contract1->amount->value); $contract2 = Contract::getById($contract2Id); $this->assertEquals(800, $contract2->amount->value); $contract1->delete(); $contract2->delete(); }