/** * !!Problem with date times. Adjust */ public function testInstantiateAndPersist() { $oConfig = Configuration::getInstance(); $oConfig->read(__DIR__ . self::MYSQL_TEST_CONFIG); $sName = uniqid('user_'); //Create some entites to persist in the data layer $oEntity = new ApplicationUser(); $oEntity->setEmail($sName . '@foobar.com'); $oEntity->setDisplayName($sName . ' display'); $oEntity->setUsername('domain\\' . $sName); $oEntity2 = new ApplicationUser(); $oEntity2->setEmail($sName . '*****@*****.**'); $oEntity2->setDisplayName($sName . ' 2display'); $oEntity2->setUsername('domain2\\' . $sName); $oPrepare = new PrepareStatementImpl(); $oUnitOfWork = new UnitOfWork(); $oDbal = new DbalManager(new DriverFactory(), $oConfig); $oMapper = new AnnotationMapping(); $oEntityManager = new EntityManager($oDbal, $oMapper, $oUnitOfWork, $oPrepare); //Mark the entity as one to be persisted or inserted into the database. $oEntityManager->persist($oEntity); $oEntityManager->persist($oEntity2); $this->assertEquals(2, $oUnitOfWork->count()); //Synchronize the objects in the unit of work with the database. //All entites that were passed to the persist method will also be updated with the relevant id. $oEntityManager->flush(); //Flush should empty the unit of work $this->assertEquals(0, $oUnitOfWork->count()); $this->assertNotNull($oEntity->getId()); $this->assertNotNull($oEntity2->getId()); $oPersistEntity = $oEntityManager->find('MiniOrmTest\\Entity\\ApplicationUser', $oEntity2->getId()); $this->assertNotNull($oPersistEntity); $this->assertEquals($oEntity2->getDisplayName(), $oPersistEntity->getDisplayName()); print_r($oPersistEntity, 'Entity is persisted'); $aCollection = $oEntityManager->findAll('MiniOrmTest\\Entity\\ApplicationUser'); print_r($aCollection); $this->assertNotEmpty($aCollection); $this->assertGreaterThan(0, $aCollection); // $oEntityManager->delete($oEntity); $oEntityManager->delete($oEntity2); // $oEntityManager->flush(); $oRemovedEntity1 = $oEntityManager->find('MiniOrmTest\\Entity\\ApplicationUser', $oEntity2->getId()); $this->assertNull($oRemovedEntity1); }
/** * */ public function testMapEntityAttributesToColumns() { $oEntity = new ApplicationUser(); $oEntity->setId(1); $oEntity->setEmail('*****@*****.**'); $oEntity->setDisplayName('FOO BAR'); $oEntity->setUsername('foobar'); $oEntity->setCreatedOn(new \DateTime('now')); $sClassname = \get_class($oEntity); $oMapper = new AnnotationMapping(); $oMapper->mapEntity(\get_class($oEntity)); $aMappings = $oMapper->getAllMappings(); //View the returned array first before assertions. print_r($aMappings); $this->assertInternalType('array', $aMappings); $this->assertArrayHasKey($sClassname, $aMappings); $aEntityMap = $aMappings[$sClassname]; //View the returned array first before assertions. print_r($aEntityMap); $this->assertNotEmpty($aEntityMap); $this->assertArrayHasKey(AnnotationMapping::KEY_TABLE, $aEntityMap); $this->assertArrayHasKey(AnnotationMapping::KEY_COLUMNS, $aEntityMap); }