annotate vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 <?php
Chris@14 2
Chris@14 3 namespace PharIo\Manifest;
Chris@14 4
Chris@14 5 /**
Chris@14 6 * @covers \PharIo\Manifest\ManifestDocumentMapper
Chris@14 7 *
Chris@14 8 * @uses \PharIo\Manifest\ApplicationName
Chris@14 9 * @uses \PharIo\Manifest\Author
Chris@14 10 * @uses \PharIo\Manifest\AuthorCollection
Chris@14 11 * @uses \PharIo\Manifest\AuthorCollectionIterator
Chris@14 12 * @uses \PharIo\Manifest\AuthorElement
Chris@14 13 * @uses \PharIo\Manifest\AuthorElementCollection
Chris@14 14 * @uses \PharIo\Manifest\BundledComponent
Chris@14 15 * @uses \PharIo\Manifest\BundledComponentCollection
Chris@14 16 * @uses \PharIo\Manifest\BundledComponentCollectionIterator
Chris@14 17 * @uses \PharIo\Manifest\BundlesElement
Chris@14 18 * @uses \PharIo\Manifest\ComponentElement
Chris@14 19 * @uses \PharIo\Manifest\ComponentElementCollection
Chris@14 20 * @uses \PharIo\Manifest\ContainsElement
Chris@14 21 * @uses \PharIo\Manifest\CopyrightElement
Chris@14 22 * @uses \PharIo\Manifest\CopyrightInformation
Chris@14 23 * @uses \PharIo\Manifest\ElementCollection
Chris@14 24 * @uses \PharIo\Manifest\Email
Chris@14 25 * @uses \PharIo\Manifest\ExtElement
Chris@14 26 * @uses \PharIo\Manifest\ExtElementCollection
Chris@14 27 * @uses \PharIo\Manifest\License
Chris@14 28 * @uses \PharIo\Manifest\LicenseElement
Chris@14 29 * @uses \PharIo\Manifest\Manifest
Chris@14 30 * @uses \PharIo\Manifest\ManifestDocument
Chris@14 31 * @uses \PharIo\Manifest\ManifestDocumentMapper
Chris@14 32 * @uses \PharIo\Manifest\ManifestElement
Chris@14 33 * @uses \PharIo\Manifest\ManifestLoader
Chris@14 34 * @uses \PharIo\Manifest\PhpElement
Chris@14 35 * @uses \PharIo\Manifest\PhpExtensionRequirement
Chris@14 36 * @uses \PharIo\Manifest\PhpVersionRequirement
Chris@14 37 * @uses \PharIo\Manifest\RequirementCollection
Chris@14 38 * @uses \PharIo\Manifest\RequirementCollectionIterator
Chris@14 39 * @uses \PharIo\Manifest\RequiresElement
Chris@14 40 * @uses \PharIo\Manifest\Type
Chris@14 41 * @uses \PharIo\Manifest\Url
Chris@14 42 * @uses \PharIo\Version\Version
Chris@14 43 * @uses \PharIo\Version\VersionConstraint
Chris@14 44 */
Chris@14 45 class ManifestDocumentMapperTest extends \PHPUnit_Framework_TestCase {
Chris@14 46 /**
Chris@14 47 * @dataProvider dataProvider
Chris@14 48 *
Chris@14 49 * @param $expected
Chris@14 50 *
Chris@14 51 * @uses \PharIo\Manifest\Application
Chris@14 52 * @uses \PharIo\Manifest\ApplicationName
Chris@14 53 * @uses \PharIo\Manifest\Library
Chris@14 54 * @uses \PharIo\Manifest\Extension
Chris@14 55 * @uses \PharIo\Manifest\ExtensionElement
Chris@14 56 */
Chris@14 57 public function testCanSerializeToString($expected) {
Chris@14 58 $manifestDocument = ManifestDocument::fromFile($expected);
Chris@14 59 $mapper = new ManifestDocumentMapper();
Chris@14 60
Chris@14 61 $this->assertInstanceOf(
Chris@14 62 Manifest::class,
Chris@14 63 $mapper->map($manifestDocument)
Chris@14 64 );
Chris@14 65 }
Chris@14 66
Chris@14 67 public function dataProvider() {
Chris@14 68 return [
Chris@14 69 'application' => [__DIR__ . '/_fixture/phpunit-5.6.5.xml'],
Chris@14 70 'library' => [__DIR__ . '/_fixture/library.xml'],
Chris@14 71 'extension' => [__DIR__ . '/_fixture/extension.xml']
Chris@14 72 ];
Chris@14 73 }
Chris@14 74
Chris@14 75 public function testThrowsExceptionOnUnsupportedType() {
Chris@14 76 $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/custom.xml');
Chris@14 77 $mapper = new ManifestDocumentMapper();
Chris@14 78
Chris@14 79 $this->expectException(ManifestDocumentMapperException::class);
Chris@14 80 $mapper->map($manifestDocument);
Chris@14 81 }
Chris@14 82
Chris@14 83 public function testInvalidVersionInformationThrowsException() {
Chris@14 84 $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversion.xml');
Chris@14 85 $mapper = new ManifestDocumentMapper();
Chris@14 86
Chris@14 87 $this->expectException(ManifestDocumentMapperException::class);
Chris@14 88 $mapper->map($manifestDocument);
Chris@14 89 }
Chris@14 90
Chris@14 91 public function testInvalidVersionConstraintThrowsException() {
Chris@14 92 $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversionconstraint.xml');
Chris@14 93 $mapper = new ManifestDocumentMapper();
Chris@14 94
Chris@14 95 $this->expectException(ManifestDocumentMapperException::class);
Chris@14 96 $mapper->map($manifestDocument);
Chris@14 97 }
Chris@14 98
Chris@14 99 /**
Chris@14 100 * @uses \PharIo\Manifest\ExtensionElement
Chris@14 101 */
Chris@14 102 public function testInvalidCompatibleConstraintThrowsException() {
Chris@14 103 $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/extension-invalidcompatible.xml');
Chris@14 104 $mapper = new ManifestDocumentMapper();
Chris@14 105
Chris@14 106 $this->expectException(ManifestDocumentMapperException::class);
Chris@14 107 $mapper->map($manifestDocument);
Chris@14 108 }
Chris@14 109
Chris@14 110 }