예제 #1
0
 public function testWhereNotEquals()
 {
     $model = new Kwf_Model_FnF();
     $model->setData(array(array('id' => 1, 'value' => 'foo'), array('id' => 2, 'value' => 'bar'), array('id' => 3, 'value' => 'baz'), array('id' => 4, 'value' => 'buz')));
     /*
             $select = $model->select();
             $select->whereNotEquals('value', 'foo');
             $this->_assertIds($model, $select, array(2, 3, 4));
     */
     $select = $model->select();
     $select->whereNotEquals('value', array('foo', 'baz'));
     $this->_assertIds($model, $select, array(2, 4));
     //         $this->assertEquals($model->countRows($select), 2);
 }
 public function testExprEqualExpr()
 {
     $model = new Kwf_Model_FnF(array('exprs' => array('test' => new Kwf_Model_Select_Expr_Equals('value', new Kwf_Model_Select_Expr_Field('value')))));
     $model->setData(array(array('id' => 1, 'value' => 10), array('id' => 2, 'value' => 20), array('id' => 3, 'value' => 30), array('id' => 4, 'value' => 40), array('id' => 5, 'value' => 50), array('id' => 6, 'value' => 60)));
     $this->assertTrue($model->getRow(1)->test);
     $rows = $model->getRows($model->select()->where(new Kwf_Model_Select_Expr_Equals('value', new Kwf_Model_Select_Expr_Field('value'))));
     $this->assertEquals(count($rows), $model->countRows());
 }
예제 #3
0
 public function testSearchKeys()
 {
     Kwf_Debug::enable();
     $fnf = new Kwf_Model_FnF(array('uniqueIdentifier' => 'unique'));
     $fnf->setData(array(array('id' => 1, 'en' => 'foo', 'de' => 'bar', 'sp' => 'blub'), array('id' => 2, 'en' => 'foo_', 'de' => 'bar', 'sp' => 'blub'), array('id' => 3, 'en' => 'foo', 'de' => '', 'sp' => 'blub'), array('id' => 4, 'en' => '', 'de' => '', 'sp' => ''), array('id' => 5, 'en' => null, 'de' => null, 'sp' => null), array('id' => 6, 'en' => 'foo', 'de' => 'bar', 'sp' => null), array('id' => 7, 'en' => '__', 'de' => '___', 'sp' => '____'), array('id' => 8, 'en' => null, 'de' => '___', 'sp' => '____')));
     $proxy = new Kwf_Model_ProxyCache(array('proxyModel' => $fnf, 'cacheSettings' => array(array('index' => array('en', 'de', 'sp'), 'columns' => array()))));
     $proxy->clearCache();
     $row = $proxy->getRow($proxy->select()->whereEquals('en', 'foo')->whereEquals('de', 'bar')->whereEquals('sp', 'blub'));
     $this->assertNotNull($row);
     $this->assertEquals(1, $row->id);
     $row = $proxy->getRow($proxy->select()->whereEquals('en', 'foo_')->whereEquals('de', 'bar')->whereEquals('sp', 'blub'));
     $this->assertNotNull($row);
     $this->assertEquals(2, $row->id);
     $row = $proxy->getRow($proxy->select()->whereEquals('en', 'foo')->whereEquals('de', '')->whereEquals('sp', 'blub'));
     $this->assertNotNull($row);
     $this->assertEquals(3, $row->id);
     $row = $proxy->getRow($proxy->select()->whereEquals('en', '')->whereEquals('de', '')->whereEquals('sp', ''));
     $this->assertNotNull($row);
     $this->assertEquals(4, $row->id);
     $row = $proxy->getRow($proxy->select()->whereNull('en')->whereNull('de')->whereNull('sp'));
     $this->assertNotNull($row);
     $this->assertEquals(5, $row->id);
     $row = $proxy->getRow($proxy->select()->whereEquals('en', 'foo')->whereEquals('de', 'bar')->whereNull('sp'));
     $this->assertNotNull($row);
     $this->assertEquals(6, $row->id);
     $row = $proxy->getRow($proxy->select()->whereEquals('sp', '____')->whereEquals('de', '___')->whereEquals('en', '__'));
     $this->assertNotNull($row);
     $this->assertEquals(7, $row->id);
     $row = $proxy->getRow($proxy->select()->whereNull('en')->whereEquals('de', '___')->whereEquals('sp', '____'));
     $this->assertNotNull($row);
     $this->assertEquals(8, $row->id);
 }
예제 #4
0
 public function testUnion()
 {
     $model = new Kwf_Model_FnF();
     $model->setData(array(array('id' => 1, 'value' => 'foo'), array('id' => 2, 'value' => 'bar')));
     $s1 = new Kwf_Model_Select();
     $s1->whereEquals('id', 1);
     $s2 = new Kwf_Model_Select();
     $s2->whereEquals('id', 2);
     $s1->union($s2);
     $this->assertEquals($model->countRows($s1), 2);
     $this->assertEquals(count($model->getRows($s1)), 2);
     $this->assertEquals(count($model->export(Kwf_Model_Interface::FORMAT_ARRAY, $s1)), 2);
 }
예제 #5
0
 public function testUniqueRowObjectCreateRow()
 {
     $fnf = new Kwf_Model_FnF();
     $fnf->setData(array(array('id' => 1, 'name' => 'foo')));
     $proxy = new Kwf_Model_Proxy(array('proxyModel' => $fnf));
     $r1 = $proxy->createRow();
     $newId = $r1->save();
     $this->assertEquals(2, $newId);
     $r2 = $proxy->getRow(2);
     $r1->name = 'foo1';
     $this->assertEquals($r2->name, 'foo1');
     $this->assertTrue($r1 === $r2);
 }