Example #1
0
 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();
 }
Example #2
0
 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();
 }
Example #3
0
 /**
  * Set this DalResolver to be the resolver on all DAOs
  */
 public function boot()
 {
     Dao::setDalResolver($this);
 }