gossi\codegen\tests\model\ClassTest::testConstants PHP Method

testConstants() public method

public testConstants ( )
    public function testConstants()
    {
        $class = new PhpClass();
        $this->assertTrue($class->getConstants()->isEmpty());
        $this->assertSame($class, $class->setConstants(['foo' => 'bar', new PhpConstant('rabimmel', 'rabammel')]));
        $this->assertTrue($class->hasConstant('rabimmel'));
        $this->assertEquals(['foo', 'rabimmel'], $class->getConstantNames()->toArray());
        $this->assertEquals('bar', $class->getConstant('foo')->getValue());
        $this->assertSame($class, $class->setConstant('bar', 'baz'));
        $this->assertEquals(['foo', 'rabimmel', 'bar'], $class->getConstantNames()->toArray());
        $this->assertEquals(3, $class->getConstants()->size());
        $this->assertSame($class, $class->removeConstant('foo'));
        $this->assertEquals(['rabimmel', 'bar'], $class->getConstantNames()->toArray());
        $this->assertSame($class, $class->setConstant($bim = new PhpConstant('bim', 'bam')));
        $this->assertTrue($class->hasConstant('bim'));
        $this->assertSame($bim, $class->getConstant('bim'));
        $this->assertSame($bim, $class->getConstant($bim));
        $this->assertTrue($class->hasConstant($bim));
        $this->assertSame($class, $class->removeConstant($bim));
        $this->assertFalse($class->hasConstant($bim));
        $this->assertFalse($class->getConstants()->isEmpty());
        $class->clearConstants();
        $this->assertTrue($class->getConstants()->isEmpty());
        $class->setConstant('FOO', 'bar');
        $this->assertEquals('bar', $class->getConstant('FOO')->getValue());
        $class->setConstant('NMBR', 300, true);
        $this->assertEquals(300, $class->getConstant('NMBR')->getExpression());
        try {
            $this->assertEmpty($class->getConstant('constant-not-found'));
        } catch (\InvalidArgumentException $e) {
            $this->assertNotNull($e);
        }
    }