public function testSetAndGetDataStore() { $interface = '\\Packaged\\Dal\\IDataStore'; $resolver = new \Packaged\Dal\DalResolver(); $resolver->addDataStore('test', $this->getMock($interface)); $this->assertInstanceOf($interface, $resolver->getDataStore('test')); }
public function testDalResolver() { $resolver = new DalResolver(); $resolver->boot(); $resolver->addDataStore('test', $this->getMock('\\Packaged\\Dal\\IDataStore')); $mock = new MockAbstractDao(); $mock->init(); $this->assertInstanceOf('\\Packaged\\Dal\\IDataStore', $mock->getDataStore()); $this->assertSame($resolver, $mock->getDalResolver()); Dao::unsetDalResolver(); $this->assertNull($mock->getDalResolver()); }
public function testGetConnection() { $datastore = new MockCacheDataStore(); $datastore->configure(new ConfigSection('cache', ['connection' => 'cacheconn'])); $connection = new EphemeralConnection(); $connection->configure(new ConfigSection('ephemeral', ['pool_name' => 'mock'])); $resolver = new DalResolver(); $resolver->addDataStore('cache', $datastore); $resolver->addConnection('cacheconn', $connection); $resolver->boot(); $this->assertSame($connection, $datastore->getConnection()); Dao::unsetDalResolver(); }
/** * @expectedException \Packaged\Dal\Exceptions\DataStore\TooManyResultsException * @expectedExceptionMessage Too many results located */ public function testMultipleExistsFailure() { $datastore = new MockQlDataStore(); $connection = new MockPdoConnection(); $connection->config(); $datastore->setConnection($connection); $resolver = new DalResolver(); $resolver->boot(); $resolver->addDataStore('mockql', $datastore); $connection->setResolver($resolver); $u1 = new MockQlDao(); $u1->username = '******'; $u1->display = 'Test One'; $u1->save(); $u2 = new MockQlDao(); $u2->username = '******'; $u2->display = 'Test Two'; $u2->save(); $test = new MockNonUniqueKeyDao(); $test->username = '******'; $test->exists(); MockNonUniqueKeyDao::loadById('TestMultiple'); }
public function testLsd() { $datastore = new MockQlDataStore(); $connection = new MockPdoConnection(); $connection->config(); $datastore->setConnection($connection); $connection->connect(); $resolver = new DalResolver(); $resolver->addDataStore('mockql', $datastore); $resolver->boot(); $resolver->enablePerformanceMetrics(); $connection->setResolver($resolver); $dao = new MockQlDao(); $dao->username = time() . 'user'; $dao->display = 'User ' . date("Y-m-d"); $dao->boolTest = true; $datastore->save($dao); $dao->username = '******'; $dao->display = 'Brooke'; $dao->boolTest = false; $datastore->save($dao); $dao->username = '******'; $datastore->load($dao); $this->assertEquals('test 1', $dao->username); $this->assertEquals(0, $dao->boolTest); $dao->display = 'Save 2'; $datastore->save($dao); $staticLoad = MockQlDao::loadById($dao->id); $this->assertEquals($dao->username, $staticLoad->username); $datastore->delete($dao); $metrics = $resolver->getPerformanceMetrics(); $resolver->disablePerformanceMetrics(); $this->assertCount(6, $metrics); $resolver->shutdown(); }
public function testDeletes() { $connection = new MockCqlConnection(); $connection->connect(); $connection->setConfig('keyspace', 'packaged_dal'); $datastore = new MockCqlDataStore(); $datastore->setConnection($connection); $resolver = new DalResolver(); $resolver->addDataStore('mockcql', $datastore); Dao::setDalResolver($resolver); $connection->setResolver($resolver); $coll = MockCqlDao::collection(); $count = $coll->count(); $first = $coll->first(); /** * @var $first MockCqlDao */ MockCqlDao::collection(['id' => $first->id])->delete(); $this->assertNotEquals($count, $coll->count()); $this->setExpectedException(DalException::class, 'Truncate is not supported'); $coll->delete(); }