annotate vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.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 class ManifestDocumentTest extends \PHPUnit_Framework_TestCase {
Chris@14 6 public function testThrowsExceptionWhenFileDoesNotExist() {
Chris@14 7 $this->expectException(ManifestDocumentException::class);
Chris@14 8 ManifestDocument::fromFile('/does/not/exist');
Chris@14 9 }
Chris@14 10
Chris@14 11 public function testCanBeCreatedFromFile() {
Chris@14 12 $this->assertInstanceOf(
Chris@14 13 ManifestDocument::class,
Chris@14 14 ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml')
Chris@14 15 );
Chris@14 16 }
Chris@14 17
Chris@14 18 public function testCaneBeConstructedFromString() {
Chris@14 19 $content = file_get_contents(__DIR__ . '/../_fixture/phpunit-5.6.5.xml');
Chris@14 20 $this->assertInstanceOf(
Chris@14 21 ManifestDocument::class,
Chris@14 22 ManifestDocument::fromString($content)
Chris@14 23 );
Chris@14 24 }
Chris@14 25
Chris@14 26 public function testThrowsExceptionOnInvalidXML() {
Chris@14 27 $this->expectException(ManifestDocumentLoadingException::class);
Chris@14 28 ManifestDocument::fromString('<?xml version="1.0" ?><root>');
Chris@14 29 }
Chris@14 30
Chris@14 31 public function testLoadingDocumentWithWrongRootNameThrowsException() {
Chris@14 32 $this->expectException(ManifestDocumentException::class);
Chris@14 33 ManifestDocument::fromString('<?xml version="1.0" ?><root />');
Chris@14 34 }
Chris@14 35
Chris@14 36 public function testLoadingDocumentWithWrongNamespaceThrowsException() {
Chris@14 37 $this->expectException(ManifestDocumentException::class);
Chris@14 38 ManifestDocument::fromString('<?xml version="1.0" ?><phar xmlns="foo:bar" />');
Chris@14 39 }
Chris@14 40
Chris@14 41 public function testContainsElementCanBeRetrieved() {
Chris@14 42 $this->assertInstanceOf(
Chris@14 43 ContainsElement::class,
Chris@14 44 $this->loadFixture()->getContainsElement()
Chris@14 45 );
Chris@14 46 }
Chris@14 47
Chris@14 48 public function testRequiresElementCanBeRetrieved() {
Chris@14 49 $this->assertInstanceOf(
Chris@14 50 RequiresElement::class,
Chris@14 51 $this->loadFixture()->getRequiresElement()
Chris@14 52 );
Chris@14 53 }
Chris@14 54
Chris@14 55 public function testCopyrightElementCanBeRetrieved() {
Chris@14 56 $this->assertInstanceOf(
Chris@14 57 CopyrightElement::class,
Chris@14 58 $this->loadFixture()->getCopyrightElement()
Chris@14 59 );
Chris@14 60 }
Chris@14 61
Chris@14 62 public function testBundlesElementCanBeRetrieved() {
Chris@14 63 $this->assertInstanceOf(
Chris@14 64 BundlesElement::class,
Chris@14 65 $this->loadFixture()->getBundlesElement()
Chris@14 66 );
Chris@14 67 }
Chris@14 68
Chris@14 69 public function testThrowsExceptionWhenContainsIsMissing() {
Chris@14 70 $this->expectException(ManifestDocumentException::class);
Chris@14 71 $this->loadEmptyFixture()->getContainsElement();
Chris@14 72 }
Chris@14 73
Chris@14 74 public function testThrowsExceptionWhenCopyirhgtIsMissing() {
Chris@14 75 $this->expectException(ManifestDocumentException::class);
Chris@14 76 $this->loadEmptyFixture()->getCopyrightElement();
Chris@14 77 }
Chris@14 78
Chris@14 79 public function testThrowsExceptionWhenRequiresIsMissing() {
Chris@14 80 $this->expectException(ManifestDocumentException::class);
Chris@14 81 $this->loadEmptyFixture()->getRequiresElement();
Chris@14 82 }
Chris@14 83
Chris@14 84 public function testThrowsExceptionWhenBundlesIsMissing() {
Chris@14 85 $this->expectException(ManifestDocumentException::class);
Chris@14 86 $this->loadEmptyFixture()->getBundlesElement();
Chris@14 87 }
Chris@14 88
Chris@14 89 public function testHasBundlesReturnsTrueWhenBundlesNodeIsPresent() {
Chris@14 90 $this->assertTrue(
Chris@14 91 $this->loadFixture()->hasBundlesElement()
Chris@14 92 );
Chris@14 93 }
Chris@14 94
Chris@14 95 public function testHasBundlesReturnsFalseWhenBundlesNoNodeIsPresent() {
Chris@14 96 $this->assertFalse(
Chris@14 97 $this->loadEmptyFixture()->hasBundlesElement()
Chris@14 98 );
Chris@14 99 }
Chris@14 100
Chris@14 101 private function loadFixture() {
Chris@14 102 return ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml');
Chris@14 103 }
Chris@14 104
Chris@14 105 private function loadEmptyFixture() {
Chris@14 106 return ManifestDocument::fromString(
Chris@14 107 '<?xml version="1.0" ?><phar xmlns="https://phar.io/xml/manifest/1.0" />'
Chris@14 108 );
Chris@14 109 }
Chris@14 110 }