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); } }
public function testConstants() { $class = new PhpClass(); $this->assertEquals(array(), $class->getConstants()); $this->assertSame($class, $class->setConstants(array('foo' => 'bar'))); $this->assertEquals(array('foo' => 'bar'), $class->getConstants()); $this->assertSame($class, $class->setConstant('bar', 'baz')); $this->assertEquals(array('foo' => 'bar', 'bar' => 'baz'), $class->getConstants()); $this->assertSame($class, $class->removeConstant('foo')); $this->assertEquals(array('bar' => 'baz'), $class->getConstants()); $this->assertSame($class, $class->setConstant($bim = new PhpConstant('bim', 'bam'))); $this->assertTrue($class->hasConstant('bim')); $this->assertSame($bim, $class->getConstant('bim')); }