Mercurial > hg > cmmr2012-drupal-site
diff vendor/phar-io/manifest/tests/ManifestSerializerTest.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/ManifestSerializerTest.php Tue Jul 10 13:19:18 2018 +0000 @@ -0,0 +1,114 @@ +<?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) + ); + } +}