aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/lib/flexi/TemplateMagicMethodsTest.php
diff options
context:
space:
mode:
authorPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
committerPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
commit4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch)
tree5c07151ae61276d334e88f6309c30d439a85c12e /tests/unit/lib/flexi/TemplateMagicMethodsTest.php
parentda0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff)
parent97a188592c679890a25c37ab78463add76a52ff7 (diff)
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'tests/unit/lib/flexi/TemplateMagicMethodsTest.php')
-rw-r--r--tests/unit/lib/flexi/TemplateMagicMethodsTest.php78
1 files changed, 78 insertions, 0 deletions
diff --git a/tests/unit/lib/flexi/TemplateMagicMethodsTest.php b/tests/unit/lib/flexi/TemplateMagicMethodsTest.php
new file mode 100644
index 0000000..ad2690a
--- /dev/null
+++ b/tests/unit/lib/flexi/TemplateMagicMethodsTest.php
@@ -0,0 +1,78 @@
+<?php
+
+use Flexi\Factory;
+use Flexi\Template;
+
+final class TemplateMagicMethodsTestCase extends \Codeception\Test\Unit
+{
+ private Factory $factory;
+
+ public function setUp(): void
+ {
+ $this->factory = $this->make(Factory::class, [
+ 'open' => $this->make(Template::class),
+ ]);
+ $this->template = $this->factory->open('');
+ }
+
+ public function tearDown(): void
+ {
+ unset($this->factory);
+ unset($this->template);
+ }
+
+ public function testShouldSetAnAttributeUsingTheMagicMethods()
+ {
+ $this->template->foo = 'bar';
+ $this->assertEquals('bar', $this->template->get_attribute('foo'));
+ }
+
+ public function testShouldNotSetAProtectedMemberFieldAsAnAttribute()
+ {
+ $this->template->layout = 'bar';
+ $this->assertEquals('bar', $this->template->layout);
+ $this->assertNotEquals('bar', $this->template->get_layout());
+ }
+
+ public function testShouldOverwriteAnAttribute()
+ {
+ $this->template->set_attribute('foo', 'bar');
+ $this->template->foo = 'baz';
+ $this->assertEquals('baz', $this->template->get_attribute('foo'));
+ }
+
+ public function testShouldReturnAnExistingAttributeUsingTheMagicMethods()
+ {
+ $this->template->set_attribute('foo', 'bar');
+ $this->assertEquals('bar', $this->template->foo);
+ }
+
+ public function testShouldReturnNullForANonExistingAttributeUsingTheMagicMethods()
+ {
+ $this->assertNull($this->template->foo);
+ }
+
+ public function testShouldUnsetAnAttributeUsingTheMagicMethods()
+ {
+ $this->template->foo = 'bar';
+ unset($this->template->foo);
+ $this->assertNull($this->template->foo);
+ }
+
+ public function testShouldReturnNullOnUnsettingANonAttribute()
+ {
+ unset($this->template->foo);
+ $this->assertNull($this->template->foo);
+ }
+
+ public function testShouldReturnTrueOnIssetForAnAttribute()
+ {
+ $this->template->foo = 'bar';
+ $this->assertTrue(isset($this->template->foo));
+ }
+
+ public function testShouldReturnFalseOnIssetForANonExistingAttribute()
+ {
+ $this->assertFalse(isset($this->template->foo));
+ }
+}