<?php require '../loader.php'; $reftest = new referenceTest(); $dataA = ['param' => 1]; $dataO = new stdClass(['param' => 1]); $reftest->testA(reference::make($dataA)); test_assert($dataA['param'] === 'helloA'); $reftest->testO(reference::make($dataO)); test_assert($dataO->param === 'helloO'); test_except('tf_exception', function () use($reftest, $dataO) { $reftest->testA(reference::make($dataO)); }); class referenceRunner { function testA($data) { $data['param'] = 'helloA'; } function testO($data) { $data->param = 'helloO'; } } class referenceTest { protected $rr; function __construct() { $this->rr = new referenceRunner(); }
return $result; }, 'Save model'); /** @var abs_collection_item $item */ $item = $collection->clear(true)->load_only_id($id); test_assert($item instanceof abs_collection_item, 'LOAD_ONLY_ID class'); if (!test_assert($item->id === $id, '2-LOAD_ONLY_ID Id') || !test_assert($item->title === 'title<h1>header</h1>', '2-LOAD_ONLY_ID Title') || !test_assert($item->render('title') === 'title<h1>header</h1>', '2-LOAD_ONLY_ID Render Title') || !test_assert(count($item->render(['text', 'title'])) === 2, 'Render filter []') || !test_assert($item->text === "text<h1>header</h1>", '2-LOAD_ONLY_ID Text')) { test_print($item->title, $item->render('title'), $item->render()); } $item->remove(); $item = $collection->clear(true)->load_only_id($id); test_assert(!$item, 'REMOVE-LOAD_ONLY_ID'); if (!test_assert(($count = $collection->clear()->count_sql()) === 0, 'REMOVE-COUNT')) { test_print($count); } test_except('core_exception', function () { core::get_instance()->model('NotExist'); }, 'exception-test'); // // Alloc // $item = $collection->alloc(); test_assert($item instanceof abs_collection_item, 'alloc.1'); test_assert($item->is_allocated(), 'is-alloc'); test_assert($item->is_new(), 'is-new'); $item->title = "@title.2"; $item->save(); test_assert(($id = $item->get_id()) > 0, 'last-id'); test_assert(!$item->is_allocated(), 'is-alloc.2'); test_assert(!$item->is_new(), 'is-new.2'); // clone one $item->set_id(null)->save();