/** * @covers PrimitiveTypeDescription * @covers TypeDescription */ public function testInstantiateAndCheck() { $typeDescription = new PrimitiveTypeDescription('string'); self::assertTrue($typeDescription->isCompatible($object = 'some string')); self::assertFalse($typeDescription->isCompatible($object = 5)); self::assertFalse($typeDescription->isCompatible($object = array(5))); self::assertEquals('string', $typeDescription->getTypeName()); self::assertEquals('primitive::string', $typeDescription->getTypeDescription()); $typeDescription = new PrimitiveTypeDescription('integer'); self::assertTrue($typeDescription->isCompatible($object = 2)); self::assertFalse($typeDescription->isCompatible($object = 'some string')); self::assertFalse($typeDescription->isCompatible($object = 5.5)); self::assertFalse($typeDescription->isCompatible($object = new stdClass())); $typeDescription = new PrimitiveTypeDescription('float'); self::assertTrue($typeDescription->isCompatible($object = 2.5)); self::assertFalse($typeDescription->isCompatible($object = 'some string')); self::assertFalse($typeDescription->isCompatible($object = 5)); $typeDescription = new PrimitiveTypeDescription('boolean'); self::assertTrue($typeDescription->isCompatible($object = true)); self::assertTrue($typeDescription->isCompatible($object = false)); self::assertFalse($typeDescription->isCompatible($object = 1)); self::assertFalse($typeDescription->isCompatible($object = '')); $typeDescription = new PrimitiveTypeDescription('integer[]'); self::assertTrue($typeDescription->isCompatible($object = array(2))); self::assertTrue($typeDescription->isCompatible($object = array(2, 5))); self::assertFalse($typeDescription->isCompatible($object = 2)); $typeDescription = new PrimitiveTypeDescription('integer[1]'); self::assertTrue($typeDescription->isCompatible($object = array(2))); self::assertFalse($typeDescription->isCompatible($object = array(2, 5))); self::assertFalse($typeDescription->isCompatible($object = 2)); }