Chris@2: , Sebastian Heuer , Sebastian Bergmann Chris@2: * Chris@2: * For the full copyright and license information, please view the LICENSE Chris@2: * file that was distributed with this source code. Chris@2: */ Chris@2: Chris@2: namespace PharIo\Version; Chris@2: Chris@2: use PHPUnit\Framework\TestCase; Chris@2: Chris@2: /** Chris@2: * @covers PharIo\Version\OrVersionConstraintGroup Chris@2: */ Chris@2: class OrVersionConstraintGroupTest extends TestCase { Chris@2: public function testReturnsTrueIfOneConstraintReturnsFalse() { Chris@2: $firstConstraint = $this->createMock(VersionConstraint::class); Chris@2: $secondConstraint = $this->createMock(VersionConstraint::class); Chris@2: Chris@2: $firstConstraint->expects($this->once()) Chris@2: ->method('complies') Chris@2: ->will($this->returnValue(false)); Chris@2: Chris@2: $secondConstraint->expects($this->once()) Chris@2: ->method('complies') Chris@2: ->will($this->returnValue(true)); Chris@2: Chris@2: $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); Chris@2: Chris@2: $this->assertTrue($group->complies(new Version('1.0.0'))); Chris@2: } Chris@2: Chris@2: public function testReturnsTrueIfAllConstraintsReturnsTrue() { Chris@2: $firstConstraint = $this->createMock(VersionConstraint::class); Chris@2: $secondConstraint = $this->createMock(VersionConstraint::class); Chris@2: Chris@2: $firstConstraint->expects($this->once()) Chris@2: ->method('complies') Chris@2: ->will($this->returnValue(true)); Chris@2: Chris@2: $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); Chris@2: Chris@2: $this->assertTrue($group->complies(new Version('1.0.0'))); Chris@2: } Chris@2: Chris@2: public function testReturnsFalseIfAllConstraintsReturnsFalse() { Chris@2: $firstConstraint = $this->createMock(VersionConstraint::class); Chris@2: $secondConstraint = $this->createMock(VersionConstraint::class); Chris@2: Chris@2: $firstConstraint->expects($this->once()) Chris@2: ->method('complies') Chris@2: ->will($this->returnValue(false)); Chris@2: Chris@2: $secondConstraint->expects($this->once()) Chris@2: ->method('complies') Chris@2: ->will($this->returnValue(false)); Chris@2: Chris@2: $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); Chris@2: Chris@2: $this->assertFalse($group->complies(new Version('1.0.0'))); Chris@2: } Chris@2: }