Mercurial > hg > cmmr2012-drupal-site
diff vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php @ 2:5311817fb629
Theme updates
author | Chris Cannam |
---|---|
date | Tue, 10 Jul 2018 13:19:18 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php Tue Jul 10 13:19:18 2018 +0000 @@ -0,0 +1,110 @@ +<?php + +namespace PharIo\Manifest; + +/** + * @covers \PharIo\Manifest\ManifestDocumentMapper + * + * @uses \PharIo\Manifest\ApplicationName + * @uses \PharIo\Manifest\Author + * @uses \PharIo\Manifest\AuthorCollection + * @uses \PharIo\Manifest\AuthorCollectionIterator + * @uses \PharIo\Manifest\AuthorElement + * @uses \PharIo\Manifest\AuthorElementCollection + * @uses \PharIo\Manifest\BundledComponent + * @uses \PharIo\Manifest\BundledComponentCollection + * @uses \PharIo\Manifest\BundledComponentCollectionIterator + * @uses \PharIo\Manifest\BundlesElement + * @uses \PharIo\Manifest\ComponentElement + * @uses \PharIo\Manifest\ComponentElementCollection + * @uses \PharIo\Manifest\ContainsElement + * @uses \PharIo\Manifest\CopyrightElement + * @uses \PharIo\Manifest\CopyrightInformation + * @uses \PharIo\Manifest\ElementCollection + * @uses \PharIo\Manifest\Email + * @uses \PharIo\Manifest\ExtElement + * @uses \PharIo\Manifest\ExtElementCollection + * @uses \PharIo\Manifest\License + * @uses \PharIo\Manifest\LicenseElement + * @uses \PharIo\Manifest\Manifest + * @uses \PharIo\Manifest\ManifestDocument + * @uses \PharIo\Manifest\ManifestDocumentMapper + * @uses \PharIo\Manifest\ManifestElement + * @uses \PharIo\Manifest\ManifestLoader + * @uses \PharIo\Manifest\PhpElement + * @uses \PharIo\Manifest\PhpExtensionRequirement + * @uses \PharIo\Manifest\PhpVersionRequirement + * @uses \PharIo\Manifest\RequirementCollection + * @uses \PharIo\Manifest\RequirementCollectionIterator + * @uses \PharIo\Manifest\RequiresElement + * @uses \PharIo\Manifest\Type + * @uses \PharIo\Manifest\Url + * @uses \PharIo\Version\Version + * @uses \PharIo\Version\VersionConstraint + */ +class ManifestDocumentMapperTest extends \PHPUnit_Framework_TestCase { + /** + * @dataProvider dataProvider + * + * @param $expected + * + * @uses \PharIo\Manifest\Application + * @uses \PharIo\Manifest\ApplicationName + * @uses \PharIo\Manifest\Library + * @uses \PharIo\Manifest\Extension + * @uses \PharIo\Manifest\ExtensionElement + */ + public function testCanSerializeToString($expected) { + $manifestDocument = ManifestDocument::fromFile($expected); + $mapper = new ManifestDocumentMapper(); + + $this->assertInstanceOf( + Manifest::class, + $mapper->map($manifestDocument) + ); + } + + public function dataProvider() { + return [ + 'application' => [__DIR__ . '/_fixture/phpunit-5.6.5.xml'], + 'library' => [__DIR__ . '/_fixture/library.xml'], + 'extension' => [__DIR__ . '/_fixture/extension.xml'] + ]; + } + + public function testThrowsExceptionOnUnsupportedType() { + $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/custom.xml'); + $mapper = new ManifestDocumentMapper(); + + $this->expectException(ManifestDocumentMapperException::class); + $mapper->map($manifestDocument); + } + + public function testInvalidVersionInformationThrowsException() { + $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversion.xml'); + $mapper = new ManifestDocumentMapper(); + + $this->expectException(ManifestDocumentMapperException::class); + $mapper->map($manifestDocument); + } + + public function testInvalidVersionConstraintThrowsException() { + $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversionconstraint.xml'); + $mapper = new ManifestDocumentMapper(); + + $this->expectException(ManifestDocumentMapperException::class); + $mapper->map($manifestDocument); + } + + /** + * @uses \PharIo\Manifest\ExtensionElement + */ + public function testInvalidCompatibleConstraintThrowsException() { + $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/extension-invalidcompatible.xml'); + $mapper = new ManifestDocumentMapper(); + + $this->expectException(ManifestDocumentMapperException::class); + $mapper->map($manifestDocument); + } + +}