Collections\Tests\Dictionary\AddTest::test_adding_with_okay_types_adds_to_dictionary PHP Method

test_adding_with_okay_types_adds_to_dictionary() public method

    public function test_adding_with_okay_types_adds_to_dictionary()
    {
        //string key and val
        $d = new Dictionary('string', 'string');
        $d = $d->add('testkey', 'testval');
        $this->assertEquals(1, $d->count());
        //int key and val
        $d = new Dictionary('int', 'int');
        $d = $d->add(1, 42);
        $this->assertEquals(1, $d->count());
        //integer synonymous with int
        $d = new Dictionary('integer', 'integer');
        $d = $d->add(1, 42);
        $this->assertEquals(1, $d->count());
        //float works as val
        $d = new Dictionary('string', 'float');
        $d = $d->add("a", 2.0);
        $this->assertEquals(1, $d->count());
        //double synonymous with float
        $d = new Dictionary('string', 'double');
        $d = $d->add('b', 2.0);
        $this->assertEquals(1, $d->count());
        //bool valid value
        $d = new Dictionary('int', 'bool');
        $d = $d->add(1, false);
        $this->assertEquals(1, $d->count());
        //boolean synonymous with bool
        $d = new Dictionary('int', 'boolean');
        $d = $d->add(1, false);
        $this->assertEquals(1, $d->count());
        //callable works as value type
        $d = new Dictionary('string', 'callable');
        $d = $d->add('test', function () {
        });
        $this->assertEquals(1, $d->count());
        //class works as value type
        $d = new Dictionary('string', TestClassA::class);
        $d = $d->add('test', new TestClassA(42));
        $this->assertEquals(1, $d->count());
        //dervied classes, too work.
        $d = $d->add('test2', new TestClassExtendsA(42));
        $this->assertEquals(2, $d->count());
        //interface works as value type
        $d = new Dictionary('string', TestClassAInterface::class);
        $d = $d->add('test', new TestClassA(42));
        $this->assertEquals(1, $d->count());
    }