function testAddBeforeSave() { $nb_companies = SActiveStore::count('Company'); $nb_products = SActiveStore::count('Product'); $new_company = new Company(array('name' => 'OpenSource Inc.')); $product1 = new Product(array('name' => 'mouse', 'price' => '14.95')); $new_company->products[] = $product1; $product2 = new Product(array('name' => 'screen', 'price' => '350.00')); $new_company->products[] = $product2; $this->assertTrue($new_company->isNewRecord()); $this->assertTrue($product1->isNewRecord()); $this->assertEqual($nb_companies, SActiveStore::count('Company')); $this->assertEqual($nb_products, SActiveStore::count('Product')); $this->assertTrue($new_company->save()); $this->assertFalse($new_company->isNewRecord()); $this->assertFalse($product1->isNewRecord()); $this->assertEqual($nb_companies + 1, SActiveStore::count('Company')); $this->assertEqual($nb_products + 2, SActiveStore::count('Product')); $this->assertEqual(2, $new_company->countProducts()); $company_reloaded = SActiveStore::findByPk('Company', $new_company->id); $this->assertEqual(2, $company_reloaded->countProducts()); }