public function testShouldSkipPropertyReturnsFalseIfNoPredicateMatches() { $metadata = new StaticPropertyMetadata('stdClass', 'foo', 'bar'); $context = SerializationContext::create(); $strat = new DisjunctExclusionStrategy(array($first = $this->getMock('JMS\\Serializer\\Exclusion\\ExclusionStrategyInterface'), $last = $this->getMock('JMS\\Serializer\\Exclusion\\ExclusionStrategyInterface'))); $first->expects($this->once())->method('shouldSkipProperty')->with($metadata, $context)->will($this->returnValue(false)); $last->expects($this->once())->method('shouldSkipProperty')->with($metadata, $context)->will($this->returnValue(false)); $this->assertFalse($strat->shouldSkipProperty($metadata, $context)); }
/** * @param array|string $groups */ public function setGroups($groups) { if (empty($groups)) { throw new \LogicException('The groups must not be empty.'); } $this->attributes->set('groups', (array) $groups); $strat = $this->exclusionStrategy->findStrategy(function ($strategy) { return $strategy instanceof GroupsExclusionStrategy; }); if ($strat instanceof GroupsExclusionStrategy) { $strat->setGroups((array) $groups); } else { $this->addExclusionStrategy(new GroupsExclusionStrategy((array) $groups)); } return $this; }