Open Journal Systems  3.3.0
TypeDescriptionFactoryTest.php
1 <?php
2 
17 import('lib.pkp.tests.PKPTestCase');
18 import('lib.pkp.classes.filter.TypeDescriptionFactory');
19 import('lib.pkp.tests.classes.filter.TestClass1');
20 import('lib.pkp.tests.classes.filter.TestClass2');
21 
26  public function testInstantiateTypeDescription() {
27  $typeDescriptionFactory = TypeDescriptionFactory::getInstance();
28 
29  // Instantiate a primitive type
30  $typeDescription = $typeDescriptionFactory->instantiateTypeDescription('primitive::string');
31  self::assertInstanceOf('PrimitiveTypeDescription', $typeDescription);
32  self::assertTrue($typeDescription->isCompatible($object = 'some string'));
33  self::assertFalse($typeDescription->isCompatible($object = 5));
34 
35  // Instantiate a class type
36  $typeDescription = $typeDescriptionFactory->instantiateTypeDescription('class::lib.pkp.tests.classes.filter.TestClass1');
37  self::assertInstanceOf('ClassTypeDescription', $typeDescription);
38  $compatibleObject = new TestClass1();
39  $wrongObject = new TestClass2();
40  self::assertTrue($typeDescription->isCompatible($compatibleObject));
41  self::assertFalse($typeDescription->isCompatible($wrongObject));
42 
43  // Test invalid descriptions
44  self::assertNull($typeDescriptionFactory->instantiateTypeDescription('string'));
45  self::assertNull($typeDescriptionFactory->instantiateTypeDescription('unknown-namespace::xyz'));
46  }
47 }
48 
TestClass2
Test class to be used/instantiated by ClassTypeDescriptionTest.
Definition: TestClass2.inc.php:16
PKPTestCase
Class that implements functionality common to all PKP unit test cases.
Definition: PKPTestCase.inc.php:27
TestClass1
Test class to be used/instantiated by ClassTypeDescriptionTest.
Definition: TestClass1.inc.php:16
TypeDescriptionFactoryTest\testInstantiateTypeDescription
testInstantiateTypeDescription()
Definition: TypeDescriptionFactoryTest.php:26
TypeDescriptionFactoryTest
Test class for TypeDescriptionFactory.
Definition: TypeDescriptionFactoryTest.php:22
TypeDescriptionFactory\getInstance
static getInstance()
Definition: TypeDescriptionFactory.inc.php:41