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() { $resolver = new DalResolver(); $conn = new PdoConnection(); $resolver->addConnection('pdo', $conn); $resolver->boot(); $datastore = new QlDataStore(); $datastore->configure(new ConfigSection('qldatastore', ['connection' => 'pdo'])); $this->assertSame($conn, $datastore->getConnection()); $datastore = new QlDataStore(); $datastore->configure(new ConfigSection('qldatastore', ['connection' => 'mizzing'])); $this->setExpectedException('\\Packaged\\Dal\\Exceptions\\DalResolver\\ConnectionNotFoundException'); $datastore->getConnection(); Dao::unsetDalResolver(); }
protected function tearDown() { Dao::unsetDalResolver(); }
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(); }
public function testQueried() { Dao::setDalResolver(new DalResolver()); $datastore = new MockQlDataStore(); $connection = new MockPdoConnection(); $connection->config(); $datastore->setConnection($connection); MockQlDao::getDalResolver()->addDataStore('mockql', $datastore); $connection->setResolver(MockQlDao::getDalResolver()); $u = new MockQlDao(); $datastore->getConnection()->connect()->runQuery("TRUNCATE " . $u->getTableName()); $collection = MockQlDao::collection(); $this->assertNull($collection->min('id')); $this->assertNull($collection->max('id')); $this->assertNull($collection->avg('id')); $this->assertNull($collection->sum('id')); $this->assertEmpty($collection->distinct('username')); $u->display = 'queried'; $u->username = '******'; $u->id = 1; $u->save(); $u->markDaoAsLoaded(false); $u->username = '******'; $u->id = 2; $u->save(); $u->markDaoAsLoaded(false); $u->username = '******'; $u->id = 5; $u->save(); $u->markDaoAsLoaded(false); $u->username = '******'; $u->id = 8; $u->save(); $this->assertEquals(4, $collection->count()); $this->assertEquals(1, $collection->min('id')); $this->assertEquals(8, $collection->max('id')); $this->assertEquals(4, $collection->avg('id')); $this->assertEquals(16, $collection->sum('id')); $this->assertEquals(["Test", "User", "Testing"], array_values($collection->distinct('username'))); $collection->loadWhere(['username' => 'Test']); $this->assertCount(2, $collection); $collection = MockQlDao::collection(['username' => 'Test']); $this->assertCount(2, $collection->getRawArray()); $first = MockQlDao::collection(['username' => 'Test'])->first(); $this->assertInstanceOf(MockQlDao::class, $first); $first = MockQlDao::collection(['username' => 'NotExisting'])->first('abc'); $this->assertEquals('abc', $first); $count = MockQlDao::collection(['username' => 'NotExisting'])->orderBy('username')->count(); $this->assertEquals(0, $count); $col = MockQlDao::collection(['username' => 'Test'])->limit(10); $first = $col->first(); $this->assertTrue($col->hasClause('LIMIT')); $limit = $col->getClause('LIMIT'); if ($limit instanceof LimitClause) { $this->assertEquals(10, $limit->getLimit()->getValue()); } $this->assertInstanceOf(MockQlDao::class, $first); $col = MockQlDao::collection(['username' => 'Test'])->load(); $this->assertCount(2, $collection); $first = $col->first(); $this->assertInstanceOf(MockQlDao::class, $first); $countCollection = MockQlDao::collection(); $countCollection->limit(1); $this->assertEquals(1, $countCollection->count()); $countCollection->limit(0); $this->assertEquals(0, $countCollection->count()); $datastore->getConnection()->runQuery("TRUNCATE " . $u->getTableName()); Dao::unsetDalResolver(); }
public function shutdown() { Dao::unsetDalResolver(); }