예제 #1
0
파일: LinkTest.php 프로젝트: cti/storage
 public function testHasOne()
 {
     \DatabaseManager::generateFakeRecords();
     $admin = $this->personRepository->findOne(array('login' => 'admin'));
     $backend = $this->moduleRepository->findOne(array('name' => 'Backend'));
     $admin->setDefaultModule($backend);
     $admin->save();
     $row = $this->dbal->fetchAssoc("select * from person where login = :login and v_end > :now", array('login' => 'admin', 'now' => $this->dbal->fetchNow()));
     $this->assertEquals($backend->getIdModule(), $admin->getIdModuleDefaultModule());
     $this->assertEquals($backend->getIdModule(), $row['id_module_default_module']);
     $user = $this->personRepository->findOne(array('login' => 'user'));
     $this->assertEquals($backend, $user->getDefaultModule());
     $user->setDefaultModule(null);
     $user->save();
     $row = $this->dbal->fetchAssoc("select * from person where login = :login and v_end > :now", array('login' => 'user', 'now' => $this->dbal->fetchNow()));
     $this->assertNull($row['id_module_default_module']);
     \DatabaseManager::clearTables();
 }
예제 #2
0
 public function testSave()
 {
     $adminModel = $this->personRepository->create(array('login' => 'admin', 'salt' => '123', 'hash' => crypt('123', '123')));
     $adminModel->save();
     /**
      * Check row existing in database
      */
     $row = $this->dbal->fetchAssoc("select * from person where login = :login", array('login' => 'admin'));
     $this->assertNotNull($row);
     /**
      * Test version behaviour in person model
      */
     $this->assertEquals('9999-12-31 23:59:59', $row['v_end']);
     $dbTime = $this->dbal->fetchNow();
     /**
      * Difference between $dbNow and v_start time of model need to be less than 5 seconds
      */
     $this->assertLessThan(5, abs(strtotime($dbTime) - strtotime($row['v_start'])));
     /**
      * Test not version model
      */
     $backendModule = $this->moduleRepository->create(array('name' => 'backend'));
     $backendModule->save();
     $row = $this->dbal->fetchAssoc("select * from module where name = :name", array('name' => 'backend'));
     $this->assertNotNull($row);
     $this->assertEquals('backend', $row['name']);
     /**
      * Test repository store for models
      */
     $map = $this->getRepositoryMap($this->personRepository);
     $modelKey = $this->personRepository->makeKey($adminModel);
     $this->assertEquals($adminModel->getIdPerson() . ':' . $adminModel->getVEnd(), $modelKey);
     /**
      * Admin model need to be in map
      */
     $this->assertContains($adminModel, $map);
     \DatabaseManager::clearTables();
 }