exists('someKey')); self::assertNull($class->getOption('someKey')); } /** * @testdox Options can be added to the helper */ 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 */ 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 */ 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')); } }