public function testShouldSkip()
 {
     $this->propertyMetadata->setExpose(true);
     $this->assertFalse($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $skipExclusionGroupSpecification = new GroupsSpecification(array('test1'));
     $this->propertySkipper->registerSpecification($skipExclusionGroupSpecification);
     $this->assertTrue($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $nonSkipExclusionGroupSpecification = new GroupsSpecification(array('test'));
     $this->propertySkipper->registerSpecification($nonSkipExclusionGroupSpecification);
     $this->assertTrue($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $this->propertySkipper->cleanUpSpecifications();
     $this->propertySkipper->registerSpecification($nonSkipExclusionGroupSpecification);
     $this->assertFalse($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $skipExclusionVersionSpecification = new VersionSpecification('5.5');
     $this->propertySkipper->registerSpecification($skipExclusionVersionSpecification);
     $this->assertTrue($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $nonSkipExclusionVersionSpecification = new VersionSpecification('5.1');
     $this->propertySkipper->registerSpecification($nonSkipExclusionVersionSpecification);
     $this->assertTrue($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $this->propertySkipper->cleanUpSpecifications();
     $this->propertySkipper->registerSpecification($nonSkipExclusionGroupSpecification);
     $this->assertFalse($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $this->propertySkipper->registerSpecification($skipExclusionGroupSpecification);
     $this->assertTrue($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $this->propertySkipper->cleanUpSpecifications();
     $this->assertFalse($this->propertySkipper->shouldSkip($this->propertyMetadata));
     $this->propertyMetadata->setExpose(false);
     $this->assertTrue($this->propertySkipper->shouldSkip($this->propertyMetadata));
 }
 public function cleanUpExclusionSpecifications()
 {
     $this->propertySkipper->cleanUpSpecifications();
 }