public function testRender() { $element = new Select(); $this->assertEquals("<select>\n</select>", $element->render()); $element->setAttribute('id', 'test'); $this->assertEquals("<select id=\"test\">\n</select>", $element->render()); $element->setAttribute('class', 'red'); $this->assertEquals("<select id=\"test\" class=\"red\">\n</select>", $element->render()); $element->setOption('values', [10 => 'foo', 20 => 'bar']); $this->assertEquals("<select id=\"test\" class=\"red\">\n<option value=\"10\">foo</option>\n<option value=\"20\">bar</option>\n</select>", $element->render()); $element = new Select('category'); $element->setOption('valueColumn', 'id'); $collection = new Collection(); $el1 = new DummyModel(); $el1->id = 100; $el1->title = 'test100'; $collection->append($el1); $el2 = new DummyModel(); $el2->id = 200; $el2->title = 'test200'; $collection->append($el2); $element->setOption('values', $collection); $this->assertEquals("<select name=\"category\">\n<option value=\"100\">test100</option>\n<option value=\"200\">test200</option>\n</select>", $element->render()); $element->setAttribute('id', 'test'); $this->assertEquals("<select name=\"category\" id=\"test\">\n<option value=\"100\">test100</option>\n<option value=\"200\">test200</option>\n</select>", $element->render()); $element->setOption('null', true); $this->assertEquals("<select name=\"category\" id=\"test\">\n<option value=\"0\">----</option>\n<option value=\"100\">test100</option>\n<option value=\"200\">test200</option>\n</select>", $element->render()); $element->setSelected(200); $this->assertEquals("<select name=\"category\" id=\"test\">\n<option value=\"0\">----</option>\n<option value=\"100\">test100</option>\n<option value=\"200\" selected=\"selected\">test200</option>\n</select>", $element->render()); }
public function testCollect() { $i1 = new \T4\Core\Std(['id' => 1, 'title' => 'foo']); $i2 = new \T4\Core\Std(['id' => 2, 'title' => 'bar']); $i3 = new \T4\Core\Std(['id' => 3, 'title' => 'baz']); $collection = new Collection(); $collection->append($i1); $collection->append($i2); $collection->append($i3); $this->assertEquals([new \T4\Core\Std(['id' => 1, 'title' => 'foo']), new \T4\Core\Std(['id' => 2, 'title' => 'bar']), new \T4\Core\Std(['id' => 3, 'title' => 'baz'])], $collection->getArrayCopy()); $ids = $collection->collect('id'); $this->assertEquals([1, 2, 3], $ids); $titles = $collection->collect(function ($x) { return $x->title; }); $this->assertEquals(['foo', 'bar', 'baz'], $titles); $collection = new Collection([['id' => 1, 'title' => 'foo'], ['id' => 2, 'title' => 'bar'], ['id' => 3, 'title' => 'baz']]); $ids = $collection->collect('id'); $this->assertEquals([1, 2, 3], $ids); $titles = $collection->collect(function ($x) { return $x['title']; }); $this->assertEquals(['foo', 'bar', 'baz'], $titles); }
public function testCall() { $collection = new Collection(); $collection->append(new Number(1)); $collection->append(new Number(2)); $collection->append(new Number(3)); $collectionExpected = new Collection(); $collectionExpected->append(new Number(2)); $collectionExpected->append(new Number(3)); $collectionExpected->append(new Number(4)); $collection->increment(); $this->assertEquals($collectionExpected, $collection); }