| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 | 
							- <?php
 
- /*
 
-  * This file is part of PharIo\Manifest.
 
-  *
 
-  * (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
 
-  *
 
-  * For the full copyright and license information, please view the LICENSE
 
-  * file that was distributed with this source code.
 
-  */
 
- namespace PharIo\Manifest;
 
- use PharIo\Version\Version;
 
- use PharIo\Version\AnyVersionConstraint;
 
- use PHPUnit\Framework\TestCase;
 
- /**
 
-  * @covers \PharIo\Manifest\Manifest
 
-  *
 
-  * @uses \PharIo\Manifest\ApplicationName
 
-  * @uses \PharIo\Manifest\Author
 
-  * @uses \PharIo\Manifest\AuthorCollection
 
-  * @uses \PharIo\Manifest\BundledComponent
 
-  * @uses \PharIo\Manifest\BundledComponentCollection
 
-  * @uses \PharIo\Manifest\CopyrightInformation
 
-  * @uses \PharIo\Manifest\Email
 
-  * @uses \PharIo\Manifest\License
 
-  * @uses \PharIo\Manifest\RequirementCollection
 
-  * @uses \PharIo\Manifest\PhpVersionRequirement
 
-  * @uses \PharIo\Manifest\Type
 
-  * @uses \PharIo\Manifest\Application
 
-  * @uses \PharIo\Manifest\Url
 
-  * @uses \PharIo\Version\Version
 
-  * @uses \PharIo\Version\VersionConstraint
 
-  */
 
- class ManifestTest extends TestCase {
 
-     /**
 
-      * @var ApplicationName
 
-      */
 
-     private $name;
 
-     /**
 
-      * @var Version
 
-      */
 
-     private $version;
 
-     /**
 
-      * @var Type
 
-      */
 
-     private $type;
 
-     /**
 
-      * @var CopyrightInformation
 
-      */
 
-     private $copyrightInformation;
 
-     /**
 
-      * @var RequirementCollection
 
-      */
 
-     private $requirements;
 
-     /**
 
-      * @var BundledComponentCollection
 
-      */
 
-     private $bundledComponents;
 
-     /**
 
-      * @var Manifest
 
-      */
 
-     private $manifest;
 
-     protected function setUp() {
 
-         $this->version = new Version('5.6.5');
 
-         $this->type = Type::application();
 
-         $author  = new Author('Joe Developer', new Email('user@example.com'));
 
-         $license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE'));
 
-         $authors = new AuthorCollection;
 
-         $authors->add($author);
 
-         $this->copyrightInformation = new CopyrightInformation($authors, $license);
 
-         $this->requirements = new RequirementCollection;
 
-         $this->requirements->add(new PhpVersionRequirement(new AnyVersionConstraint));
 
-         $this->bundledComponents = new BundledComponentCollection;
 
-         $this->bundledComponents->add(new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2')));
 
-         $this->name = new ApplicationName('phpunit/phpunit');
 
-         $this->manifest = new Manifest(
 
-             $this->name,
 
-             $this->version,
 
-             $this->type,
 
-             $this->copyrightInformation,
 
-             $this->requirements,
 
-             $this->bundledComponents
 
-         );
 
-     }
 
-     public function testCanBeCreated() {
 
-         $this->assertInstanceOf(Manifest::class, $this->manifest);
 
-     }
 
-     public function testNameCanBeRetrieved() {
 
-         $this->assertEquals($this->name, $this->manifest->getName());
 
-     }
 
-     public function testVersionCanBeRetrieved() {
 
-         $this->assertEquals($this->version, $this->manifest->getVersion());
 
-     }
 
-     public function testTypeCanBeRetrieved() {
 
-         $this->assertEquals($this->type, $this->manifest->getType());
 
-     }
 
-     public function testTypeCanBeQueried() {
 
-         $this->assertTrue($this->manifest->isApplication());
 
-         $this->assertFalse($this->manifest->isLibrary());
 
-         $this->assertFalse($this->manifest->isExtension());
 
-     }
 
-     public function testCopyrightInformationCanBeRetrieved() {
 
-         $this->assertEquals($this->copyrightInformation, $this->manifest->getCopyrightInformation());
 
-     }
 
-     public function testRequirementsCanBeRetrieved() {
 
-         $this->assertEquals($this->requirements, $this->manifest->getRequirements());
 
-     }
 
-     public function testBundledComponentsCanBeRetrieved() {
 
-         $this->assertEquals($this->bundledComponents, $this->manifest->getBundledComponents());
 
-     }
 
-     /**
 
-      * @uses \PharIo\Manifest\Extension
 
-      */
 
-     public function testExtendedApplicationCanBeQueriedForExtension()
 
-     {
 
-         $appName = new ApplicationName('foo/bar');
 
-         $manifest = new Manifest(
 
-             new ApplicationName('foo/foo'),
 
-             new Version('1.0.0'),
 
-             Type::extension($appName, new AnyVersionConstraint),
 
-             $this->copyrightInformation,
 
-             new RequirementCollection,
 
-             new BundledComponentCollection
 
-         );
 
-         $this->assertTrue($manifest->isExtensionFor($appName));
 
-     }
 
-     public function testNonExtensionReturnsFalseWhenQueriesForExtension() {
 
-         $appName = new ApplicationName('foo/bar');
 
-         $manifest = new Manifest(
 
-             new ApplicationName('foo/foo'),
 
-             new Version('1.0.0'),
 
-             Type::library(),
 
-             $this->copyrightInformation,
 
-             new RequirementCollection,
 
-             new BundledComponentCollection
 
-         );
 
-         $this->assertFalse($manifest->isExtensionFor($appName));
 
-     }
 
-     /**
 
-      * @uses \PharIo\Manifest\Extension
 
-      */
 
-     public function testExtendedApplicationCanBeQueriedForExtensionWithVersion()
 
-     {
 
-         $appName = new ApplicationName('foo/bar');
 
-         $manifest = new Manifest(
 
-             new ApplicationName('foo/foo'),
 
-             new Version('1.0.0'),
 
-             Type::extension($appName, new AnyVersionConstraint),
 
-             $this->copyrightInformation,
 
-             new RequirementCollection,
 
-             new BundledComponentCollection
 
-         );
 
-         $this->assertTrue($manifest->isExtensionFor($appName, new Version('1.2.3')));
 
-     }
 
- }
 
 
  |