Beispiel #1
0
 public function testExpr()
 {
     $model = new Kwf_Model_FnF(array('columns' => array('id'), 'data' => array(array('id' => 1)), 'exprs' => array('price' => new Kwf_Model_Select_Expr_Integer(100), 'amount' => new Kwf_Model_Select_Expr_Integer('3'), 'total' => new Kwf_Model_Select_Expr_Multiply(array(new Kwf_Model_Select_Expr_Field('price'), new Kwf_Model_Select_Expr_Field('amount'))))));
     $this->assertEquals($model->getRow(1)->price, 100);
     $this->assertEquals($model->getRow(1)->amount, 3);
     $this->assertEquals($model->getRow(1)->total, 300);
     $this->assertTrue($model->getRow(1)->price === 100);
     $this->assertTrue($model->getRow(1)->amount === 3);
 }
Beispiel #2
0
 public function testDirWithGroup()
 {
     $model = new Kwf_Model_FnF(array('columns' => array('id', 'points', 'gr'), 'data' => array(array('id' => 1, 'points' => 1000, 'gr' => 1), array('id' => 2, 'points' => 500, 'gr' => 2), array('id' => 3, 'points' => -50, 'gr' => 1), array('id' => 4, 'points' => 0, 'gr' => 2), array('id' => 5, 'points' => 10000, 'gr' => 1)), 'exprs' => array('position' => new Kwf_Model_Select_Expr_Position('points', array('gr'), 'asc'))));
     $this->assertEquals($model->getRow(1)->position, 2);
     $this->assertEquals($model->getRow(2)->position, 2);
     $this->assertEquals($model->getRow(3)->position, 1);
     $this->assertEquals($model->getRow(4)->position, 1);
     $this->assertEquals($model->getRow(5)->position, 3);
 }
 public function testData()
 {
     $model = new Kwf_Model_FnF();
     $model->setData(array(array('id' => 1, 'value' => 'foo'), array('id' => 2, 'value' => 'bar')));
     $this->assertEquals(count($model->getRows()), 2);
     $this->assertEquals(count($model->getRows(1)), 1);
     $this->assertEquals($model->getRow(2)->value, 'bar');
     $this->assertEquals($model->getRows()->current()->value, 'foo');
     $this->assertEquals($model->getRow(3), null);
 }
 public function testSkipFilter()
 {
     $model = new Kwf_Model_FnF(array('data' => array(), 'filters' => array('test' => new Kwf_Filter_Row_AutoFill('abc'))));
     $row = $model->createRow();
     $row->foo = 'foo4';
     $row->skip = 0;
     $row->test = 'bam';
     $row->save();
     $this->assertEquals('abc', $model->getRow(1)->test);
     $row->skip = 1;
     $row->save();
     $row->test = 'bam';
     $this->assertEquals('bam', $model->getRow(1)->test);
 }
 public function testNumberizeGroupBy()
 {
     $f = new Kwf_Filter_Row_Numberize();
     $f->setGroupBy('group');
     $model = new Kwf_Model_FnF(array('data' => array(array('id' => 1, 'pos' => 1, 'group' => 1, 'foo' => 'foo1'), array('id' => 2, 'pos' => 1, 'group' => 2, 'foo' => 'foo2'), array('id' => 3, 'pos' => 2, 'group' => 1, 'foo' => 'foo3')), 'filters' => array('pos' => $f)));
     $row = $model->createRow();
     $row->pos = 1;
     $row->group = 2;
     $row->foo = 'foo4';
     $row->save();
     $this->assertEquals(1, $model->getRow(4)->pos);
     $this->assertEquals(2, $model->getRow(2)->pos);
     $this->assertEquals(1, $model->getRow(1)->pos);
     $this->assertEquals(2, $model->getRow(2)->pos);
 }
Beispiel #6
0
 public function testDefaultValues()
 {
     $model = new Kwf_Model_FnF(array('columns' => array('id', 'foo', 'data'), 'data' => array(array('id' => 1, 'foo' => 'bar', 'data' => '')), 'dependentModels' => array('Child' => new Kwf_Model_FieldRows(array('fieldName' => 'data', 'default' => array('foo' => 'defaultFoo'))))));
     $row = $model->getRow(1);
     $cRow = $row->createChildRow('Child');
     $this->assertEquals('defaultFoo', $cRow->foo);
 }
 public function testUniqueAsciiGroupBy()
 {
     $f = new Kwf_Filter_Row_UniqueAscii('name');
     $f->setGroupBy('group');
     $model = new Kwf_Model_FnF(array('data' => array(array('id' => 1, 'name' => 'Name1', 'group' => 1, 'test' => 'name1'), array('id' => 2, 'name' => 'Name2', 'group' => 2, 'test' => 'name2')), 'filters' => array('test' => $f)));
     $row = $model->createRow();
     $row->group = 1;
     $row->name = 'Name1';
     $row->save();
     $this->assertEquals('name1_1', $model->getRow(3)->test);
     $row = $model->createRow();
     $row->group = 2;
     $row->name = 'Name1';
     $row->save();
     $this->assertEquals('name1', $model->getRow(4)->test);
 }
 public function testAutoFillId()
 {
     $model = new Kwf_Model_FnF(array('data' => array(), 'filters' => array('test' => new Kwf_Filter_Row_AutoFill('x{id}'))));
     $row = $model->createRow();
     $row->foo = 'foo4';
     $row->save();
     $this->assertEquals('x1', $model->getRow(1)->test);
 }
Beispiel #9
0
 public function testExpr()
 {
     $model = new Kwf_Model_FnF(array('columns' => array('id', 'date'), 'data' => array(array('id' => 1, 'date' => '2013-12-04'), array('id' => 2, 'date' => '2003-12-05')), 'exprs' => array('year1' => new Kwf_Model_Select_Expr_Date_Year('date'), 'year2' => new Kwf_Model_Select_Expr_Date_Year('date', Kwf_Model_Select_Expr_Date_Year::FORMAT_DIGITS_TWO), 'format1' => new Kwf_Model_Select_Expr_Date_Format('date'), 'format2' => new Kwf_Model_Select_Expr_Date_Format('date', 'd.m.Y'))));
     $this->assertEquals($model->getRow(1)->year1, 2013);
     $this->assertEquals($model->getRow(2)->year1, 2003);
     $this->assertEquals($model->getRow(1)->year2, 13);
     $this->assertEquals($model->getRow(2)->year2, 03);
     $this->assertEquals($model->getRow(1)->format1, '2013-12-04');
     $this->assertEquals($model->getRow(2)->format1, '2003-12-05');
     $this->assertEquals($model->getRow(1)->format2, '04.12.2013');
     $this->assertEquals($model->getRow(2)->format2, '05.12.2003');
 }
Beispiel #10
0
 public function testBirthWithReference()
 {
     $today = date('Y-m-d');
     $today = date('Y-m-d', strtotime("{$today} -1 year"));
     $eighteen = date("Y-m-d", strtotime("{$today} -17 year"));
     $tomorrow = date("Y-m-d", strtotime("{$today} +1 day"));
     $yesterday = date("Y-m-d", strtotime("{$today} - 1 day"));
     $newYearsEve = date('Y') - 1 . "-12-31";
     $expectNYE = 0;
     $expectNY = 1;
     $realTomorrow = date("Y-m-d", strtotime("{$tomorrow} +1 year"));
     //if it is new Year's Eve the expected age for new Year = 2;
     if ($realTomorrow == date('Y') . '-12-31') {
         $expectNYE = 1;
     }
     //if it is new Year's Eve the expected age for new Year = 2;
     if (date('m-d') == '12-31') {
         $expectNY = 2;
     }
     $newYear = date('Y') - 1 . "-01-01";
     $model = new Kwf_Model_FnF(array('columns' => array('id', 'birth'), 'data' => array(array('id' => 1, 'birth' => $eighteen), array('id' => 2, 'birth' => $today), array('id' => 3, 'birth' => $tomorrow), array('id' => 4, 'birth' => $yesterday), array('id' => 5, 'birth' => $newYearsEve), array('id' => 6, 'birth' => $newYear)), 'exprs' => array('age' => new Kwf_Model_Select_Expr_Date_Age('birth', new Kwf_Date($realTomorrow)))));
     $this->assertEquals($model->getRow(1)->age, 18);
     $this->assertEquals($model->getRow(2)->age, 1);
     $this->assertEquals($model->getRow(3)->age, 1);
     $this->assertEquals($model->getRow(4)->age, 1);
     $this->assertEquals($model->getRow(5)->age, $expectNYE);
     $this->assertEquals($model->getRow(6)->age, $expectNY);
 }
Beispiel #11
0
 public function testIt()
 {
     $model = new Kwf_Model_FnF(array('columns' => array(), 'data' => array(array('id' => 1, 'foo' => 'bar', 'data' => serialize(array('autoId' => 2, 'data' => array(array('id' => 1, 'blub' => 'blub1', 'foo' => 'foo'), array('id' => 2, 'blub' => 'blub2')))))), 'dependentModels' => array('Child' => new Kwf_Model_RowsSubModel_Proxy(array('proxyModel' => new Kwf_Model_FieldRows(array('fieldName' => 'data')))))));
     $row = $model->getRow(1);
     $this->assertEquals($row->foo, 'bar');
     $rows = $row->getChildRows('Child');
     $this->assertEquals(count($rows), 2);
     $this->assertEquals($rows->current()->blub, 'blub1');
     $this->assertEquals($rows->current()->id, 1);
     $rows->current()->foo = 'foo';
     $rows->current()->save();
     $row->blub1 = 'blub1';
     $row->save();
     $this->assertEquals($model->getData(), array(array('id' => 1, 'foo' => 'bar', 'data' => serialize(array('autoId' => 2, 'data' => array(array('id' => 1, 'blub' => 'blub1', 'foo' => 'foo'), array('id' => 2, 'blub' => 'blub2')))), 'blub1' => 'blub1')));
 }
Beispiel #12
0
 public function testSimple()
 {
     $m1 = new Kwf_Model_FnF();
     $m2 = new Kwf_Model_FnF();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $form->add(new Kwf_Form_Field_TextField('test1'));
     $form->add(new Kwf_Form_Field_MultiFields($m2))->setReferences(array('columns' => array('test1_id'), 'refColumns' => array('id')))->fields->add(new Kwf_Form_Field_TextField('test2'));
     $post = array('test1' => 'blub', 'Kwf_Model_FnF' => array(array('test2' => 'bab')));
     $post = $form->processInput(null, $post);
     $form->validate(null, $post);
     $form->prepareSave(null, $post);
     $form->save(null, $post);
     $form->afterSave(null, $post);
     $r = $m1->getRow(1);
     $this->assertEquals('blub', $r->test1);
     $r = $m2->getRow(1);
     $this->assertEquals('bab', $r->test2);
     $this->assertEquals(1, $r->test1_id);
 }
 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());
 }
 public function testDirtyColumns()
 {
     $model = new Kwf_Model_FnF();
     $model->setData(array(array('id' => 1, 'value' => 'foo'), array('id' => 2, 'value' => 'bar')));
     $row = $model->getRow(1);
     $this->assertEquals($row->getDirtyColumns(), array());
     $this->assertEquals($row->isDirty(), false);
     $row->value = 'blubb';
     $this->assertEquals($row->getDirtyColumns(), array('value'));
     $this->assertEquals($row->isDirty(), true);
 }
Beispiel #15
0
 public function testHigherEqual()
 {
     $model = new Kwf_Model_FnF(array('columns' => array('id', 'value'), 'data' => array(array('id' => 1, 'value' => -10000000), array('id' => 2, 'value' => -1), array('id' => 3, 'value' => 0), array('id' => 4, 'value' => 1), array('id' => 5, 'value' => 10000000)), 'exprs' => array('higher1' => new Kwf_Model_Select_Expr_HigherEqual('value', -10000000), 'higher2' => new Kwf_Model_Select_Expr_HigherEqual('value', -1), 'higher3' => new Kwf_Model_Select_Expr_HigherEqual('value', 0), 'higher4' => new Kwf_Model_Select_Expr_HigherEqual('value', 1), 'higher5' => new Kwf_Model_Select_Expr_HigherEqual('value', 10000000))));
     $this->assertEquals($model->getRow(1)->higher1, true);
     $this->assertEquals($model->getRow(1)->higher2, false);
     $this->assertEquals($model->getRow(1)->higher3, false);
     $this->assertEquals($model->getRow(1)->higher4, false);
     $this->assertEquals($model->getRow(1)->higher5, false);
     $this->assertEquals($model->getRow(2)->higher1, true);
     $this->assertEquals($model->getRow(2)->higher2, true);
     $this->assertEquals($model->getRow(2)->higher3, false);
     $this->assertEquals($model->getRow(2)->higher4, false);
     $this->assertEquals($model->getRow(2)->higher5, false);
     $this->assertEquals($model->getRow(3)->higher1, true);
     $this->assertEquals($model->getRow(3)->higher2, true);
     $this->assertEquals($model->getRow(3)->higher3, true);
     $this->assertEquals($model->getRow(3)->higher4, false);
     $this->assertEquals($model->getRow(3)->higher5, false);
     $this->assertEquals($model->getRow(4)->higher1, true);
     $this->assertEquals($model->getRow(4)->higher2, true);
     $this->assertEquals($model->getRow(4)->higher3, true);
     $this->assertEquals($model->getRow(4)->higher4, true);
     $this->assertEquals($model->getRow(4)->higher5, false);
     $this->assertEquals($model->getRow(5)->higher1, true);
     $this->assertEquals($model->getRow(5)->higher2, true);
     $this->assertEquals($model->getRow(5)->higher3, true);
     $this->assertEquals($model->getRow(5)->higher4, true);
     $this->assertEquals($model->getRow(5)->higher5, true);
 }
Beispiel #16
0
 public function testDirtyColumnsOnChange()
 {
     $model = new Kwf_Model_FnF(array('columns' => array('id', 'foo', 'data'), 'data' => array(array('id' => 1, 'foo' => 'bar', 'data' => json_encode(array('blub' => 'blub')))), 'siblingModels' => array(new Kwf_Model_Field_FieldModel(array('fieldName' => 'data')))));
     $row = $model->getRow(1);
     $row->blub = 'blub2';
     $this->assertEquals($row->getDirtyColumns(), array('blub'));
 }