Ejemplo n.º 1
0
 public function testCompositeFilterCrud()
 {
     $this->markTestSkipped();
     $filterDao = DAORegistry::getDAO('FilterDAO');
     // sub-filter 1
     $subFilter1Settings = array('seq' => 1, 'displayName' => '1st sub-filter');
     $subFilter1 = $filterDao->configureObject('lib.pkp.tests.classes.filter.PersistableTestFilter', 'test-filter-group', $subFilter1Settings, false, 9999, array(), false);
     // sub-sub-filters for sub-filter 2
     $subSubFilter1Settings = array('seq' => 1, 'displayName' => '1st sub-sub-filter');
     $subSubFilter1 = $filterDao->configureObject('lib.pkp.tests.classes.filter.PersistableTestFilter', 'test-filter-group', $subSubFilter1Settings, false, 9999, array(), false);
     $subSubFilter2Settings = array('seq' => 2, 'displayName' => '2nd sub-sub-filter');
     $subSubFilter2 = $filterDao->configureObject('lib.pkp.tests.classes.filter.PersistableTestFilter', 'test-filter-group', $subSubFilter2Settings, false, 9999, array(), false);
     $subSubFilters = array($subSubFilter1, $subSubFilter2);
     // sub-filter 2
     $subFilter2Settings = array('seq' => 2, 'displayName' => '2nd sub-filter');
     $subFilter2 = $filterDao->configureObject('lib.pkp.classes.filter.GenericMultiplexerFilter', 'test-filter-group', $subFilter2Settings, false, 9999, $subSubFilters, false);
     // Instantiate a composite test filter object
     $subFilters = array($subFilter1, $subFilter2);
     $testFilter = $filterDao->configureObject('lib.pkp.classes.filter.GenericSequencerFilter', 'test-filter-group', array('seq' => 1), false, 9999, $subFilters);
     self::assertInstanceOf('GenericSequencerFilter', $testFilter);
     $filterId = $testFilter->getId();
     self::assertTrue(is_numeric($filterId));
     self::assertTrue($filterId > 0);
     // Check that sub-filters were correctly
     // linked to the composite filter.
     $subFilters =& $testFilter->getFilters();
     self::assertEquals(2, count($subFilters));
     foreach ($subFilters as $subFilter) {
         self::assertTrue($subFilter->getId() > 0);
         self::assertEquals($filterId, $subFilter->getParentFilterId());
     }
     $subSubFilters =& $subFilters[2]->getFilters();
     self::assertEquals(2, count($subSubFilters));
     foreach ($subSubFilters as $subSubFilter) {
         self::assertTrue($subSubFilter->getId() > 0);
         self::assertEquals($subFilters[2]->getId(), $subSubFilter->getParentFilterId());
     }
     // Retrieve filter instance by id
     $filterById = $filterDao->getObjectById($filterId);
     self::assertEquals($testFilter, $filterById);
     // Update filter instance
     $testFilter = new GenericSequencerFilter($testFilter->getFilterGroup());
     $testFilter->setDisplayName('composite filter');
     $testFilter->setSeq(9999);
     $testFilter->setId($filterId);
     $testFilter->setIsTemplate(true);
     // leave out (sub-)sub-filter 2 but add a new (sub-)sub-filter 3
     // to test recursive update.
     $testFilter->addFilter($subFilter1);
     $subFilter3 = new GenericMultiplexerFilter($testFilter->getFilterGroup());
     $subFilter3->setDisplayName('3rd sub-filter');
     $subFilter3->addFilter($subSubFilter1);
     $subSubFilter3 = new PersistableTestFilter($testFilter->getFilterGroup());
     $subSubFilter3->setDisplayName('3rd sub-sub-filter');
     $subFilter3->addFilter($subSubFilter3);
     $testFilter->addFilter($subFilter3);
     $filterDao->updateObject($testFilter);
     $filterAfterUpdate = $filterDao->getObject($testFilter);
     self::assertEquals($testFilter, $filterAfterUpdate);
     // Delete filter instance
     $filterDao->deleteObject($testFilter);
     self::assertNull($filterDao->getObjectById($filterId));
 }