Open Monograph Press  3.3.0
FilterHelperTest.php
1 <?php
2 
17 import('lib.pkp.tests.PKPTestCase');
18 import('lib.pkp.classes.filter.FilterHelper');
19 
20 import('lib.pkp.classes.filter.CompositeFilter');
22  // A test class.
23 }
24 
29  public function testCompareFilters() {
30  $filterHelper = new FilterHelper();
31 
32  import('lib.pkp.classes.filter.FilterGroup');
33  $someGroup = new FilterGroup();
34  $someGroup->setInputType('primitive::string');
35  $someGroup->setOutputType('primitive::string');
36 
37  import('lib.pkp.classes.filter.PersistableFilter');
38  $filterA = new PersistableFilter($someGroup);
39  $filterBSettings = array('some-key' => 'some-value');
40  $filterBSubfilters = array();
41  self::assertFalse($filterHelper->compareFilters($filterA, $filterBSettings, $filterBSubfilters));
42 
43  import('lib.pkp.classes.filter.FilterSetting');
44  $filterA->addSetting(new FilterSetting('some-key', null, null));
45  self::assertFalse($filterHelper->compareFilters($filterA, $filterBSettings, $filterBSubfilters));
46 
47  $filterA->setData('some-key', 'some-value');
48  self::assertTrue($filterHelper->compareFilters($filterA, $filterBSettings, $filterBSubfilters));
49 
50  $filterA = new CompositeFilter($someGroup);
51  $filterBSettings = array();
52  $filterBSubfilter = new CompositeFilter($someGroup);
53  $filterBSubfilter->setSequence(1);
54  $filterBSubfilters = array($filterBSubfilter);
55  self::assertFalse($filterHelper->compareFilters($filterA, $filterBSettings, $filterBSubfilters));
56 
57  $filterASubfilter = new OtherCompositeFilter($someGroup);
58  $filterA->addFilter($filterASubfilter);
59  self::assertFalse($filterHelper->compareFilters($filterA, $filterBSettings, $filterBSubfilters));
60 
61  $filterA = new CompositeFilter($someGroup);
62  $filterASubfilter = new CompositeFilter($someGroup);
63  $filterA->addFilter($filterASubfilter);
64  self::assertTrue($filterHelper->compareFilters($filterA, $filterBSettings, $filterBSubfilters));
65 
66  $filterBSubfilter->addSetting(new FilterSetting('some-key', null, null));
67  $filterASubfilter->addSetting(new FilterSetting('some-key', null, null));
68  $filterBSubfilter->setData('some-key', 'some-value');
69  self::assertFalse($filterHelper->compareFilters($filterA, $filterBSettings, $filterBSubfilters));
70 
71  $filterASubfilter->setData('some-key', 'some-value');
72  self::assertTrue($filterHelper->compareFilters($filterA, $filterBSettings, $filterBSubfilters));
73  }
74 }
75 
FilterGroup
Class that represents filter groups.
Definition: FilterGroup.inc.php:45
OtherCompositeFilter
Definition: FilterHelperTest.php:21
FilterSetting
Class that describes a configurable filter setting.
Definition: FilterSetting.inc.php:18
PKPTestCase
Class that implements functionality common to all PKP unit test cases.
Definition: PKPTestCase.inc.php:27
CompositeFilter
An abstract base class for generic filters that compose other filters into filter networks.
Definition: CompositeFilter.inc.php:18
FilterHelperTest\testCompareFilters
testCompareFilters()
Definition: FilterHelperTest.php:29
FilterHelperTest
Test class for FilterHelper.
Definition: FilterHelperTest.php:25
FilterHelper
Class that provides filter-related helper methods.
Definition: FilterHelper.inc.php:15
PersistableFilter
A filter that can be persisted to the database.
Definition: PersistableFilter.inc.php:44