/** * @depends testCreateAndGetOpportunityById */ public function testUpdateOpportunityFromForm() { Yii::app()->user->userModel = User::getByUsername('super'); $user = User::getByUsername('billy'); $opportunities = Opportunity::getByName('Test Opportunity'); $opportunity = $opportunities[0]; $this->assertEquals($opportunity->name, 'Test Opportunity'); $currencies = Currency::getAll(); $postData = array('owner' => array('id' => $user->id), 'name' => 'New Name', 'amount' => array('value' => '500.54', 'currency' => array('id' => $currencies[0]->id)), 'closeDate' => '2011-01-01', 'stage' => array('value' => 'Negotiating')); $opportunity->setAttributes($postData); $this->assertTrue($opportunity->save()); $id = $opportunity->id; unset($opportunity); $opportunity = Opportunity::getById($id); $this->assertEquals('New Name', $opportunity->name); $this->assertEquals(500.54, $opportunity->amount->value); $this->assertEquals(50, $opportunity->probability); $this->assertEquals(1, $currencies[0]->rateToBase); //Updating probability mapping should make changes on saving opportunity $metadata = OpportunitiesModule::getMetadata(); $metadata['global']['stageToProbabilityMapping']['Negotiating'] = 60; OpportunitiesModule::setMetadata($metadata); $postData = array(); $opportunity->setAttributes($postData); $this->assertTrue($opportunity->save()); unset($opportunity); $opportunity = Opportunity::getById($id); $this->assertEquals('New Name', $opportunity->name); $this->assertEquals(500.54, $opportunity->amount->value); $this->assertEquals(60, $opportunity->probability); $this->assertEquals(1, $currencies[0]->rateToBase); }