From 443f711aa38ecc7e22e0e7211df5d9e7dbdf96ff Mon Sep 17 00:00:00 2001 From: Thomas Peterson Date: Sat, 22 Feb 2020 22:24:34 +0100 Subject: [PATCH] Add Textarea --- src/Option/Parser.php | 5 +++- src/Option/Parser/Textarea.php | 22 +++++++++++++++++ src/Option/Type/Textarea.php | 9 +++++++ tests/Parse/Option/TextareaTest.php | 37 +++++++++++++++++++++++++++++ tests/TestFiles/Option/textarea.xml | 2 ++ 5 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/Option/Parser/Textarea.php create mode 100644 src/Option/Type/Textarea.php create mode 100644 tests/Parse/Option/TextareaTest.php create mode 100644 tests/TestFiles/Option/textarea.xml diff --git a/src/Option/Parser.php b/src/Option/Parser.php index a623b44..a1a31b2 100644 --- a/src/Option/Parser.php +++ b/src/Option/Parser.php @@ -6,6 +6,7 @@ use PSC\Library\Calc\Option\Parser\Input; use PSC\Library\Calc\Option\Parser\Select; use PSC\Library\Calc\Option\Parser\Template; use PSC\Library\Calc\Option\Parser\Text; +use PSC\Library\Calc\Option\Parser\Textarea; use PSC\Library\Calc\PaperContainer\Container; class Parser @@ -30,9 +31,11 @@ class Parser $obj = new Select($node); break; case 'text': - case 'textarea': $obj = new Text($node); break; + case 'textarea': + $obj = new Textarea($node); + break; case 'hidden': $obj = new Hidden($node); break; diff --git a/src/Option/Parser/Textarea.php b/src/Option/Parser/Textarea.php new file mode 100644 index 0000000..df1640c --- /dev/null +++ b/src/Option/Parser/Textarea.php @@ -0,0 +1,22 @@ +element = new \PSC\Library\Calc\Option\Type\Textarea(); + parent::__construct($node); + } + + public function parse() + { + parent::parse(); + + return $this->element; + } + +} \ No newline at end of file diff --git a/src/Option/Type/Textarea.php b/src/Option/Type/Textarea.php new file mode 100644 index 0000000..c169e87 --- /dev/null +++ b/src/Option/Type/Textarea.php @@ -0,0 +1,9 @@ +getOptByType(simplexml_load_string(file_get_contents(__DIR__ . '/../../TestFiles/Option/textarea.xml'))); + + /** @var Input $element */ + $element = $obj->parse(); + + $this->assertInstanceOf('PSC\Library\Calc\Option\Type\Textarea', $element); + } + + public function testIfCorrectAttributes() + { + $parser = new Parser(); + /** @var Parser\Input $obj */ + $obj = $parser->getOptByType(simplexml_load_string(file_get_contents(__DIR__ . '/../../TestFiles/Option/textarea.xml'))); + + /** @var Input $element */ + $element = $obj->parse(); + + $this->assertInstanceOf('PSC\Library\Calc\Option\Type\Textarea', $element); + $this->assertEquals('testtext', $element->getDefault()); + $this->assertEquals('t60', $element->getId()); + $this->assertEquals('', $element->getName()); + } + +} \ No newline at end of file diff --git a/tests/TestFiles/Option/textarea.xml b/tests/TestFiles/Option/textarea.xml new file mode 100644 index 0000000..e6bcac1 --- /dev/null +++ b/tests/TestFiles/Option/textarea.xml @@ -0,0 +1,2 @@ + +