Esempio n. 1
0
 function setProject(Project $ref)
 {
     if (is_null($ref)) {
         throw new OutletException("You can not set this to NULL since this relationship has not been marked as optional");
         return parent::setProject(null);
     }
     $this->ProjectID = $ref->ProjectID;
     return parent::setProject($ref);
 }
 function testEagerFetchingManyToOne()
 {
     $bug = new Bug();
     $bug->Title = 'Test Bug';
     $project = new Project();
     $project->setName('Test Project');
     $bug->setProject($project);
     $outlet = Outlet::getInstance();
     $outlet->save($bug);
     // clear cache because it will be used to check if project was loaded
     $outlet->clearCache();
     $bug = $outlet->from('Bug')->with('Project')->find();
     $this->assertEquals(1, count(OutletMapper::$map['Project']));
 }
Esempio n. 3
0
 /**
  * Try indirectly saving the same project twice
  * and make sure it only gets inserted once
  */
 function testIndirectSave()
 {
     $outlet = Outlet::getInstance();
     $p = new Project();
     $p->setName('Project 1');
     $b1 = new Bug();
     $b1->Title = 'Bug 1';
     $b1->setProject($p);
     $outlet->save($p);
     $b2 = new Bug();
     $b2->Title = 'Bug 2';
     $b2->setProject($p);
     $outlet->save($b2);
     $this->assertEquals(count($outlet->select('Project', 'where {Project.Name} = ?', array('Project 1'))), 1, 'Only one project inserted');
 }
 function testManyToMany()
 {
     $user = new User();
     $user->Firstname = 'Alvaro';
     $user->LastName = 'Carrasco';
     $bug = new Bug();
     $bug->Name = 'Test Bug';
     $project = new Project();
     $project->setName('Test Project');
     $bug->setProject($project);
     $outlet = Outlet::getInstance();
     $outlet->save($user);
     $outlet->save($bug);
     $user->getBugs()->add($bug);
     $outlet->save($user);
     $this->assertTrue(count($user->getBugs()) == 1, 'One project attached to this user');
 }
 function testDataTypes()
 {
     $outlet = Outlet::getInstance();
     $project = new Project();
     $project->setName('Project 1');
     $outlet->save($project);
     $project_id = $project->getProjectID();
     // test insert
     $bug = new Bug();
     $bug->Title = 'Test bug';
     $bug->setProject($project);
     $outlet->save($bug);
     $bug_id = $bug->ID;
     // Clears cache so we guarantee that the values comes from db
     $outlet->clearCache();
     $bug = $outlet->load('Bug', $bug_id);
     $project = $outlet->load('Project', $project_id);
     $this->assertTrue(is_string($bug->Title));
     $this->assertTrue(is_int($bug->ID));
     $this->assertTrue(is_float($bug->TimeToFix));
     $this->assertTrue($project->getCreatedDate() instanceof DateTime);
 }