 1ac0f42a58
			
		
	
	1ac0f42a58
	
	
	
		
			
			Travis config update Removed HHVM script as Laravel no longer support HHVM after releasing 5.3
		
			
				
	
	
		
			111 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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);
 | |
|     }
 | |
| 
 | |
| }
 |