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());
 }