public function testBoolean() { $this->create(); foreach (DBTestPool::me()->getPool() as $connector => $db) { DBPool::me()->setDefault($db); //creating moscow $moscow = TestCity::create()->setName('Moscow'); $moscow = $moscow->dao()->add($moscow); $moscowId = $moscow->getId(); /* @var $moscow TestCity */ //now moscow capital $moscow->dao()->merge($moscow->setCapital(true)); TestCity::dao()->dropIdentityMap(); Criteria::create(TestCity::dao())->setSilent(false)->add(Expression::isTrue('capital'))->get(); TestCity::dao()->dropIdentityMap(); $moscow = Criteria::create(TestCity::dao())->setSilent(false)->add(Expression::isNull('large'))->get(); TestCity::dao()->dropIdentityMap(); //now moscow large $moscow = $moscow->dao()->merge($moscow->setLarge(true)); TestCity::dao()->dropIdentityMap(); $moscow = TestCity::dao()->getById($moscowId); $this->assertTrue($moscow->getCapital()); $this->assertTrue($moscow->getLarge()); Criteria::create(TestCity::dao())->setSilent(false)->add(Expression::not(Expression::isFalse('large')))->get(); TestCity::dao()->dropIdentityMap(); } $this->drop(); }
public function testFormCalculation() { $form = Form::create()->add(Primitive::string('a'))->add(Primitive::boolean('b'))->add(Primitive::integer('c'))->add(Primitive::integer('d'))->add(Primitive::integer('e'))->add(Primitive::boolean('f'))->import(array('a' => 'asDfg', 'b' => 'true', 'c' => '1', 'd' => '2', 'e' => '3')); $this->assertTrue(Expression::isTrue(new FormField('b'))->toBoolean($form)); $this->assertFalse(Expression::isTrue(new FormField('f'))->toBoolean($form)); $this->assertFalse(Expression::eq('asdf', new FormField('a'))->toBoolean($form)); $this->assertTrue(Expression::eqLower('asdfg', new FormField('a'))->toBoolean($form)); $this->assertTrue(Expression::eq('asDfg', new FormField('a'))->toBoolean($form)); $this->assertTrue(Expression::andBlock(Expression::expOr(new FormField('b'), new FormField('f')), Expression::eq(7, Expression::add(new FormField('c'), Expression::mul(new FormField('d'), new FormField('e')))))->toBoolean($form)); $this->assertTrue(Expression::between(new FormField('d'), new FormField('c'), new FormField('e'))->toBoolean($form)); $this->assertFalse(Expression::between(new FormField('c'), new FormField('d'), new FormField('e'))->toBoolean($form)); $this->assertFalse(Expression::not(new FormField('b'))->toBoolean($form)); $this->assertTrue(Expression::not(new FormField('f'))->toBoolean($form)); }
public function testQuery() { $criteria = Criteria::create(TestUser::dao())->setProjection(Projection::property('id'))->add(Expression::isTrue('id')); $this->assertCriteria('id from TestUser where id is true', $criteria)->assertCriteria('id from TestUser where id is true order by id asc', $criteria->addOrder(OrderBy::create('id')->asc()))->assertCriteria('id from TestUser where id is true order by id asc limit 10 offset 1', $criteria->setLimit(10)->setOffset(1))->assertCriteria('id from TestUser where id is true group by id order by id asc limit 10 offset 1', $criteria->setProjection(Projection::chain()->add(Projection::property('id'))->add(Projection::group('id'))))->assertCriteria('id from TestUser where id is true group by id order by id asc having id = 1 limit 10 offset 1', $criteria->setProjection(Projection::chain()->add(Projection::property('id'))->add(Projection::group('id'))->add(Projection::having(Expression::eq('id', 1)))))->assertCriteria('count(id) as count from TestUser group by id having count = 2', Criteria::create(TestUser::dao())->setProjection(Projection::chain()->add(Projection::count('id', 'count'))->add(Projection::group('id'))->add(Projection::having(Expression::eq('count', 2))))); }