sonarrradarrplexorganizrnginxdashboardlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximux
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							114 lines
						
					
					
						
							3.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							114 lines
						
					
					
						
							3.8 KiB
						
					
					
				| <?php | |
| 
 | |
| namespace PharIo\Manifest; | |
| 
 | |
| use PharIo\Version\Version; | |
| 
 | |
| /** | |
|  * @covers \PharIo\Manifest\ManifestSerializer | |
|  * | |
|  * @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 ManifestSerializerTest extends \PHPUnit_Framework_TestCase { | |
|     /** | |
|      * @dataProvider dataProvider | |
|      * | |
|      * @param $expected | |
|      * | |
|      * @uses \PharIo\Manifest\Application | |
|      * @uses \PharIo\Manifest\Library | |
|      * @uses \PharIo\Manifest\Extension | |
|      * @uses \PharIo\Manifest\ExtensionElement | |
|      */ | |
|     public function testCanSerializeToString($expected) { | |
|         $manifest = ManifestLoader::fromString($expected); | |
| 
 | |
|         $serializer = new ManifestSerializer(); | |
| 
 | |
|         $this->assertXmlStringEqualsXmlString( | |
|             $expected, | |
|             $serializer->serializeToString($manifest) | |
|         ); | |
|     } | |
| 
 | |
|     public function dataProvider() { | |
|         return [ | |
|             'application' => [file_get_contents(__DIR__ . '/_fixture/phpunit-5.6.5.xml')], | |
|             'library'     => [file_get_contents(__DIR__ . '/_fixture/library.xml')], | |
|             'extension'   => [file_get_contents(__DIR__ . '/_fixture/extension.xml')] | |
|         ]; | |
|     } | |
| 
 | |
|     /** | |
|      * @uses \PharIo\Manifest\Library | |
|      * @uses \PharIo\Manifest\ApplicationName | |
|      */ | |
|     public function testCanSerializeToFile() { | |
|         $src        = __DIR__ . '/_fixture/library.xml'; | |
|         $dest       = '/tmp/' . uniqid('serializer', true); | |
|         $manifest   = ManifestLoader::fromFile($src); | |
|         $serializer = new ManifestSerializer(); | |
|         $serializer->serializeToFile($manifest, $dest); | |
|         $this->assertXmlFileEqualsXmlFile($src, $dest); | |
|         unlink($dest); | |
|     } | |
| 
 | |
|     /** | |
|      * @uses \PharIo\Manifest\ApplicationName | |
|      */ | |
|     public function testCanHandleUnknownType() { | |
|         $type     = $this->getMockForAbstractClass(Type::class); | |
|         $manifest = new Manifest( | |
|             new ApplicationName('testvendor/testname'), | |
|             new Version('1.0.0'), | |
|             $type, | |
|             new CopyrightInformation( | |
|                 new AuthorCollection(), | |
|                 new License('bsd-3', new Url('https://some/uri')) | |
|             ), | |
|             new RequirementCollection(), | |
|             new BundledComponentCollection() | |
|         ); | |
| 
 | |
|         $serializer = new ManifestSerializer(); | |
|         $this->assertXmlStringEqualsXmlFile( | |
|             __DIR__ . '/_fixture/custom.xml', | |
|             $serializer->serializeToString($manifest) | |
|         ); | |
|     } | |
| }
 | |
| 
 |