123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- namespace PharIo\Manifest;
- use PharIo\Version\AnyVersionConstraint;
- use PharIo\Version\Version;
- use PharIo\Version\VersionConstraint;
- use PharIo\Version\VersionConstraintParser;
- use PHPUnit\Framework\TestCase;
- class ExtensionTest extends TestCase {
-
- private $type;
-
- private $name;
- protected function setUp() {
- $this->name = $this->createMock(ApplicationName::class);
- $this->type = Type::extension($this->name, new AnyVersionConstraint);
- }
- public function testCanBeCreated() {
- $this->assertInstanceOf(Extension::class, $this->type);
- }
- public function testIsNotApplication() {
- $this->assertFalse($this->type->isApplication());
- }
- public function testIsNotLibrary() {
- $this->assertFalse($this->type->isLibrary());
- }
- public function testIsExtension() {
- $this->assertTrue($this->type->isExtension());
- }
- public function testApplicationCanBeRetrieved()
- {
- $this->assertInstanceOf(ApplicationName::class, $this->type->getApplicationName());
- }
- public function testVersionConstraintCanBeRetrieved() {
- $this->assertInstanceOf(
- VersionConstraint::class,
- $this->type->getVersionConstraint()
- );
- }
- public function testApplicationCanBeQueried()
- {
- $this->name->method('isEqual')->willReturn(true);
- $this->assertTrue(
- $this->type->isExtensionFor($this->createMock(ApplicationName::class))
- );
- }
- public function testCompatibleWithReturnsTrueForMatchingVersionConstraintAndApplicaiton() {
- $app = new ApplicationName('foo/bar');
- $extension = Type::extension($app, (new VersionConstraintParser)->parse('^1.0'));
- $version = new Version('1.0.0');
- $this->assertTrue(
- $extension->isCompatibleWith($app, $version)
- );
- }
- public function testCompatibleWithReturnsFalseForNotMatchingVersionConstraint() {
- $app = new ApplicationName('foo/bar');
- $extension = Type::extension($app, (new VersionConstraintParser)->parse('^1.0'));
- $version = new Version('2.0.0');
- $this->assertFalse(
- $extension->isCompatibleWith($app, $version)
- );
- }
- public function testCompatibleWithReturnsFalseForNotMatchingApplication() {
- $app1 = new ApplicationName('foo/bar');
- $app2 = new ApplicationName('foo/foo');
- $extension = Type::extension($app1, (new VersionConstraintParser)->parse('^1.0'));
- $version = new Version('1.0.0');
- $this->assertFalse(
- $extension->isCompatibleWith($app2, $version)
- );
- }
- }
|