loadXML(''); $this->domElement = $dom->documentElement; $this->contains = new ContainsElement($this->domElement); } public function testVersionCanBeRetrieved() { $this->assertEquals('5.6.5', $this->contains->getVersion()); } public function testThrowsExceptionWhenVersionAttributeIsMissing() { $this->domElement->removeAttribute('version'); $this->expectException(ManifestElementException::class); $this->contains->getVersion(); } public function testNameCanBeRetrieved() { $this->assertEquals('phpunit/phpunit', $this->contains->getName()); } public function testThrowsExceptionWhenNameAttributeIsMissing() { $this->domElement->removeAttribute('name'); $this->expectException(ManifestElementException::class); $this->contains->getName(); } public function testTypeCanBeRetrieved() { $this->assertEquals('application', $this->contains->getType()); } public function testThrowsExceptionWhenTypeAttributeIsMissing() { $this->domElement->removeAttribute('type'); $this->expectException(ManifestElementException::class); $this->contains->getType(); } public function testGetExtensionElementReturnsExtensionElement() { $this->domElement->appendChild( $this->domElement->ownerDocument->createElementNS('https://phar.io/xml/manifest/1.0', 'extension') ); $this->assertInstanceOf(ExtensionElement::class, $this->contains->getExtensionElement()); } }