diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/BaseModel/TestModel.xml b/src/opnsense/mvc/tests/app/models/OPNsense/Base/BaseModel/TestModel.xml index cb40f3b47..c064137a5 100644 --- a/src/opnsense/mvc/tests/app/models/OPNsense/Base/BaseModel/TestModel.xml +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/BaseModel/TestModel.xml @@ -107,5 +107,10 @@ + + + + + diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest.php b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest.php new file mode 100644 index 000000000..13b8c52fa --- /dev/null +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest.php @@ -0,0 +1,136 @@ +get('config')->globals->config_path = __DIR__ .'/ModelRelationFieldTest/'; + Config::getInstance()->forceReload(); + $model = new \tests\OPNsense\Base\BaseModel\TestModel(); + foreach ($model->simpleList->items->iterateItems() as $nodeid => $node) { + echo $nodeid . " " .$node->number ."\n"; + } +// $item = $model->simpleList->items->Add(); +// $item->number = "1"; +// $model->serializeToConfig(); +// Config::getInstance()->save(); + } + + /** + * test construct + */ + public function testCanBeCreated() + { + $this->assertInstanceOf('\OPNsense\Base\FieldTypes\ModelRelationField', new ModelRelationField()); + } + + public function testSetSingleOk() + { + $field = new ModelRelationField(); + $field->setModel(array( + "item" => array( + "source" => "tests.OPNsense.Base.BaseModel.TestModel", + "items" => "simpleList.items", + "display" => "number" + ) + )); + $field->eventPostLoading(); + $field->setValue("5ea2a35c-b02b-485a-912b-d077e639bf9f"); + $this->assertEmpty($this->validate($field)); + } + + public function testSetSingleNok() + { + $field = new ModelRelationField(); + $field->setModel(array( + "item" => array( + "source" => "tests.OPNsense.Base.BaseModel.TestModel", + "items" => "simpleList.items", + "display" => "number" + ) + )); + $field->eventPostLoading(); + $field->setValue("XX5ea2a35c-b02b-485a-912b-d077e639bf9f"); + $this->assertEquals($this->validate($field), ['InclusionIn']); + } + + public function testSetMultiOk() + { + $field = new ModelRelationField(); + $field->setMultiple("Y"); + $field->setModel(array( + "item" => array( + "source" => "tests.OPNsense.Base.BaseModel.TestModel", + "items" => "simpleList.items", + "display" => "number" + ) + )); + $field->eventPostLoading(); + $field->setValue("4d0e2835-7a19-4a19-8c23-e12383827594,5ea2a35c-b02b-485a-912b-d077e639bf9f"); + $this->assertEmpty($this->validate($field)); + } + + public function testSetMultiNok() + { + $field = new ModelRelationField(); + $field->setMultiple("Y"); + $field->setModel(array( + "item" => array( + "source" => "tests.OPNsense.Base.BaseModel.TestModel", + "items" => "simpleList.items", + "display" => "number" + ) + )); + $field->eventPostLoading(); + $field->setValue("x4d0e2835-7a19-4a19-8c23-e12383827594,5ea2a35c-b02b-485a-912b-d077e639bf9f"); + $this->assertEquals($this->validate($field), ['CsvListValidator']); + } + + + /** + * type is not a container + */ + public function testIsContainer() + { + $field = new ModelRelationField(); + $this->assertFalse($field->isContainer()); + } +} diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest/config.xml b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest/config.xml new file mode 100644 index 000000000..f770f319d --- /dev/null +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest/config.xml @@ -0,0 +1,47 @@ + + + + + + + sample@example.com + + + + + + + + + + + + + + 0 + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + + + +