Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\Finder\Tests\Comparator; Chris@0: Chris@0: use PHPUnit\Framework\TestCase; Chris@0: use Symfony\Component\Finder\Comparator\Comparator; Chris@0: Chris@0: class ComparatorTest extends TestCase Chris@0: { Chris@0: public function testGetSetOperator() Chris@0: { Chris@0: $comparator = new Comparator(); Chris@0: try { Chris@0: $comparator->setOperator('foo'); Chris@0: $this->fail('->setOperator() throws an \InvalidArgumentException if the operator is not valid.'); Chris@0: } catch (\Exception $e) { Chris@0: $this->assertInstanceOf('InvalidArgumentException', $e, '->setOperator() throws an \InvalidArgumentException if the operator is not valid.'); Chris@0: } Chris@0: Chris@0: $comparator = new Comparator(); Chris@0: $comparator->setOperator('>'); Chris@0: $this->assertEquals('>', $comparator->getOperator(), '->getOperator() returns the current operator'); Chris@0: } Chris@0: Chris@0: public function testGetSetTarget() Chris@0: { Chris@0: $comparator = new Comparator(); Chris@0: $comparator->setTarget(8); Chris@0: $this->assertEquals(8, $comparator->getTarget(), '->getTarget() returns the target'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @dataProvider getTestData Chris@0: */ Chris@0: public function testTest($operator, $target, $match, $noMatch) Chris@0: { Chris@0: $c = new Comparator(); Chris@0: $c->setOperator($operator); Chris@0: $c->setTarget($target); Chris@0: Chris@0: foreach ($match as $m) { Chris@0: $this->assertTrue($c->test($m), '->test() tests a string against the expression'); Chris@0: } Chris@0: Chris@0: foreach ($noMatch as $m) { Chris@0: $this->assertFalse($c->test($m), '->test() tests a string against the expression'); Chris@0: } Chris@0: } Chris@0: Chris@0: public function getTestData() Chris@0: { Chris@17: return [ Chris@17: ['<', '1000', ['500', '999'], ['1000', '1500']], Chris@17: ]; Chris@0: } Chris@0: }