Open Journal Systems  3.3.0
PersistableFilterTest.php
1 <?php
2 
17 import('lib.pkp.tests.PKPTestCase');
18 import('lib.pkp.classes.filter.PersistableFilter');
19 import('lib.pkp.classes.filter.EmailFilterSetting');
20 import('lib.pkp.tests.classes.filter.TestClass1');
21 import('lib.pkp.tests.classes.filter.TestClass2');
22 
24 
28  public function testInstantiationAndExecute() {
29  $constructorArg = PersistableFilter::tempGroup('class::lib.pkp.tests.classes.filter.TestClass1',
30  'class::lib.pkp.tests.classes.filter.TestClass2');
31  $testFilter = new PersistableFilter($constructorArg);
32 
33  // Test getters/setters that are not implicitly tested by other tests
34  self::assertInstanceOf('FilterGroup', $testFilter->getFilterGroup());
35  $testFilter->setDisplayName('Some other display name');
36  $testFilter->setIsTemplate(1);
37  self::assertTrue($testFilter->getIsTemplate());
38  self::assertEquals(0, $testFilter->getParentFilterId());
39  $testFilter->setParentFilterId(1);
40  self::assertEquals(1, $testFilter->getParentFilterId());
41 
42  // Test settings
43  self::assertFalse($testFilter->hasSettings());
44  $testSetting = new EmailFilterSetting('testEmail', 'Test Email', 'Test Email is required');
45  $testSetting2 = new EmailFilterSetting('testEmail2', 'Test Email2', 'Test Email2 is required');
46  $testSetting2->setIsLocalized(true);
47  $testFilter->addSetting($testSetting);
48  $testFilter->addSetting($testSetting2);
49  self::assertEquals(array('testEmail' => $testSetting, 'testEmail2' => $testSetting2), $testFilter->getSettings());
50  self::assertTrue($testFilter->hasSettings());
51  self::assertEquals(array('testEmail'), $testFilter->getSettingNames());
52  self::assertEquals(array('testEmail2'), $testFilter->getLocalizedSettingNames());
53  self::assertTrue($testFilter->hasSetting('testEmail'));
54  self::assertEquals($testSetting, $testFilter->getSetting('testEmail'));
55 
56  // Test type validation.
57  $typeDescriptionFactory = TypeDescriptionFactory::getInstance();
58  $inputTypeDescription = 'class::lib.pkp.tests.classes.filter.TestClass1';
59  $outputTypeDescription = 'class::lib.pkp.tests.classes.filter.TestClass2';
60  self::assertEquals($inputTypeDescription, $testFilter->getInputType()->getTypeDescription());
61  self::assertEquals($outputTypeDescription, $testFilter->getOutputType()->getTypeDescription());
62  }
63 }
64 
PKPTestCase
Class that implements functionality common to all PKP unit test cases.
Definition: PKPTestCase.inc.php:27
PersistableFilterTest
Definition: PersistableFilterTest.php:23
PersistableFilter\tempGroup
static tempGroup($inputType, $outputType)
Definition: PersistableFilter.inc.php:274
TypeDescriptionFactory\getInstance
static getInstance()
Definition: TypeDescriptionFactory.inc.php:41
EmailFilterSetting
Class that describes a configurable filter setting which must be an email.
Definition: EmailFilterSetting.inc.php:20
PersistableFilterTest\testInstantiationAndExecute
testInstantiationAndExecute()
Definition: PersistableFilterTest.php:28
PersistableFilter
A filter that can be persisted to the database.
Definition: PersistableFilter.inc.php:44