exists('someKey')); self::assertNull($class->getOption('someKey')); } /** * @testdox Options can be added to the helper * @group framework */ public function testAdd() : void { $class = new class() { use OptionsTrait; }; self::assertTrue($class->setOption('a', 'value1')); self::assertTrue($class->exists('a')); self::assertEquals('value1', $class->getOption('a')); } /** * @testdox Options can be overwritten/changed * @group framework */ public function testOverwrite() : void { $class = new class() { use OptionsTrait; }; self::assertTrue($class->setOption('a', 'value1')); self::assertTrue($class->exists('a')); self::assertEquals('value1', $class->getOption('a')); self::assertTrue($class->setOption('a', 'value2')); self::assertTrue($class->exists('a')); self::assertEquals('value2', $class->getOption('a')); self::assertTrue($class->setOption('a', 'value3', true)); self::assertTrue($class->exists('a')); self::assertEquals('value3', $class->getOption('a')); self::assertFalse($class->setOption('a', 'value4', false)); self::assertTrue($class->exists('a')); self::assertEquals('value3', $class->getOption('a')); } /** * @testdox Multiple options can be added to the helper in one go * @group framework */ public function testAddMultiple() : void { $class = new class() { use OptionsTrait; }; self::assertTrue($class->setOption('a', 'value3', true)); self::assertTrue($class->exists('a')); self::assertEquals('value3', $class->getOption('a')); self::assertTrue($class->setOptions(['b' => 2, 'c' => '3'], true)); self::assertTrue($class->setOptions(['b' => 4, 'c' => '5'], false)); // always returns true self::assertTrue($class->exists('a')); self::assertTrue($class->exists('b')); self::assertTrue($class->exists('c')); self::assertEquals('value3', $class->getOption('a')); self::assertEquals(2, $class->getOption('b')); self::assertEquals(3, $class->getOption('c')); } /** * @testdox Multiple options can be retrieved * @group framework */ public function testGetMultiple() : void { $class = new class() { use OptionsTrait; }; self::assertTrue($class->setOption('a', 'value1')); self::assertTrue($class->setOption('b', 'value2')); self::assertTrue($class->setOption('c', 'value3')); self::assertEquals(['a' => 'value1', 'c' => 'value3'], $class->getOptions(['a', 'c'])); } }