Chris@14: expectException(ManifestDocumentException::class); Chris@14: ManifestDocument::fromFile('/does/not/exist'); Chris@14: } Chris@14: Chris@14: public function testCanBeCreatedFromFile() { Chris@14: $this->assertInstanceOf( Chris@14: ManifestDocument::class, Chris@14: ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml') Chris@14: ); Chris@14: } Chris@14: Chris@14: public function testCaneBeConstructedFromString() { Chris@14: $content = file_get_contents(__DIR__ . '/../_fixture/phpunit-5.6.5.xml'); Chris@14: $this->assertInstanceOf( Chris@14: ManifestDocument::class, Chris@14: ManifestDocument::fromString($content) Chris@14: ); Chris@14: } Chris@14: Chris@14: public function testThrowsExceptionOnInvalidXML() { Chris@14: $this->expectException(ManifestDocumentLoadingException::class); Chris@14: ManifestDocument::fromString(''); Chris@14: } Chris@14: Chris@14: public function testLoadingDocumentWithWrongRootNameThrowsException() { Chris@14: $this->expectException(ManifestDocumentException::class); Chris@14: ManifestDocument::fromString(''); Chris@14: } Chris@14: Chris@14: public function testLoadingDocumentWithWrongNamespaceThrowsException() { Chris@14: $this->expectException(ManifestDocumentException::class); Chris@14: ManifestDocument::fromString(''); Chris@14: } Chris@14: Chris@14: public function testContainsElementCanBeRetrieved() { Chris@14: $this->assertInstanceOf( Chris@14: ContainsElement::class, Chris@14: $this->loadFixture()->getContainsElement() Chris@14: ); Chris@14: } Chris@14: Chris@14: public function testRequiresElementCanBeRetrieved() { Chris@14: $this->assertInstanceOf( Chris@14: RequiresElement::class, Chris@14: $this->loadFixture()->getRequiresElement() Chris@14: ); Chris@14: } Chris@14: Chris@14: public function testCopyrightElementCanBeRetrieved() { Chris@14: $this->assertInstanceOf( Chris@14: CopyrightElement::class, Chris@14: $this->loadFixture()->getCopyrightElement() Chris@14: ); Chris@14: } Chris@14: Chris@14: public function testBundlesElementCanBeRetrieved() { Chris@14: $this->assertInstanceOf( Chris@14: BundlesElement::class, Chris@14: $this->loadFixture()->getBundlesElement() Chris@14: ); Chris@14: } Chris@14: Chris@14: public function testThrowsExceptionWhenContainsIsMissing() { Chris@14: $this->expectException(ManifestDocumentException::class); Chris@14: $this->loadEmptyFixture()->getContainsElement(); Chris@14: } Chris@14: Chris@14: public function testThrowsExceptionWhenCopyirhgtIsMissing() { Chris@14: $this->expectException(ManifestDocumentException::class); Chris@14: $this->loadEmptyFixture()->getCopyrightElement(); Chris@14: } Chris@14: Chris@14: public function testThrowsExceptionWhenRequiresIsMissing() { Chris@14: $this->expectException(ManifestDocumentException::class); Chris@14: $this->loadEmptyFixture()->getRequiresElement(); Chris@14: } Chris@14: Chris@14: public function testThrowsExceptionWhenBundlesIsMissing() { Chris@14: $this->expectException(ManifestDocumentException::class); Chris@14: $this->loadEmptyFixture()->getBundlesElement(); Chris@14: } Chris@14: Chris@14: public function testHasBundlesReturnsTrueWhenBundlesNodeIsPresent() { Chris@14: $this->assertTrue( Chris@14: $this->loadFixture()->hasBundlesElement() Chris@14: ); Chris@14: } Chris@14: Chris@14: public function testHasBundlesReturnsFalseWhenBundlesNoNodeIsPresent() { Chris@14: $this->assertFalse( Chris@14: $this->loadEmptyFixture()->hasBundlesElement() Chris@14: ); Chris@14: } Chris@14: Chris@14: private function loadFixture() { Chris@14: return ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml'); Chris@14: } Chris@14: Chris@14: private function loadEmptyFixture() { Chris@14: return ManifestDocument::fromString( Chris@14: '' Chris@14: ); Chris@14: } Chris@14: }