public function testEmulatedPrepare() { $resolver = new DalResolver(); Dao::setDalResolver($resolver); $datastore = new MockQlDataStore(); $connection = new MockPdoConnection(); $connection->addConfig('options', [\PDO::ATTR_EMULATE_PREPARES => true]); $connection->config(); $connection->connect(); $connection->setResolver($resolver); $datastore->setConnection($connection); MockQlDao::getDalResolver()->addDataStore('mockql', $datastore); MockQlDao::loadOneWhere(['id' => 'y']); Dao::unsetDalResolver(); }
public function testStatics() { $datastore = new MockQlDataStore(); $connection = new MockPdoConnection(); $connection->config(); $datastore->setConnection($connection); $collection = MockQlDao::collection(); $this->assertInstanceOf(MockQlDao::class, $collection->createNewDao()); $collection = MockQlDao::collection(['name' => 'Test']); $this->assertInstanceOf(MockQlDao::class, $collection->createNewDao()); $this->assertEquals('SELECT mock_ql_daos.* FROM mock_ql_daos WHERE name = "Test"', QueryAssembler::stringify($collection->getQuery())); $resolver = new DalResolver(); $resolver->boot(); $resolver->addDataStore('mockql', $datastore); $connection->setResolver($resolver); $username = uniqid('TEST'); $u = new MockQlDao(); $u->username = $username; $u->display = 'Test One'; $u->boolTest = true; $u->save(); // save again to ensure no query is made $u->save(); $mocks = MockQlDao::collection(['username' => $username]); $this->assertCount(1, $mocks); foreach (MockQlDao::each(['username' => $username]) as $usr) { $this->assertInstanceOf(MockQlDao::class, $usr); } $preloaded = MockQlDao::loadWhere(['username' => $username]); $this->assertCount(1, $preloaded); $u2 = new MockQlDao(); $u2->username = '******'; $u2->display = 'Test One'; $u2->save(); try { $msg = null; MockQlDao::loadOneWhere(['display' => 'Test One']); } catch (\Exception $e) { $msg = $e->getMessage(); } $this->assertEquals("Multiple Objects were located when trying to load one", $msg); $u2Test = MockQlDao::loadOneWhere(['username' => 'Tester']); $this->assertEquals($u2->username, $u2Test->username); $this->assertNull(MockQlDao::loadOneWhere(['username' => 'Missing'])); $u->delete(); $u2->delete(); $resolver->shutdown(); }