Chris@14
|
1 <?php
|
Chris@14
|
2
|
Chris@14
|
3 namespace PharIo\Manifest;
|
Chris@14
|
4
|
Chris@14
|
5 use DOMDocument;
|
Chris@14
|
6 use DOMElement;
|
Chris@14
|
7
|
Chris@14
|
8 class ContainsElementTest extends \PHPUnit_Framework_TestCase {
|
Chris@14
|
9 /**
|
Chris@14
|
10 * @var DOMElement
|
Chris@14
|
11 */
|
Chris@14
|
12 private $domElement;
|
Chris@14
|
13
|
Chris@14
|
14 /**
|
Chris@14
|
15 * @var ContainsElement
|
Chris@14
|
16 */
|
Chris@14
|
17 private $contains;
|
Chris@14
|
18
|
Chris@14
|
19 protected function setUp() {
|
Chris@14
|
20 $dom = new DOMDocument();
|
Chris@14
|
21 $dom->loadXML('<?xml version="1.0" ?><php xmlns="https://phar.io/xml/manifest/1.0" name="phpunit/phpunit" version="5.6.5" type="application" />');
|
Chris@14
|
22 $this->domElement = $dom->documentElement;
|
Chris@14
|
23 $this->contains = new ContainsElement($this->domElement);
|
Chris@14
|
24 }
|
Chris@14
|
25
|
Chris@14
|
26 public function testVersionCanBeRetrieved() {
|
Chris@14
|
27 $this->assertEquals('5.6.5', $this->contains->getVersion());
|
Chris@14
|
28 }
|
Chris@14
|
29
|
Chris@14
|
30 public function testThrowsExceptionWhenVersionAttributeIsMissing() {
|
Chris@14
|
31 $this->domElement->removeAttribute('version');
|
Chris@14
|
32 $this->expectException(ManifestElementException::class);
|
Chris@14
|
33 $this->contains->getVersion();
|
Chris@14
|
34 }
|
Chris@14
|
35
|
Chris@14
|
36 public function testNameCanBeRetrieved() {
|
Chris@14
|
37 $this->assertEquals('phpunit/phpunit', $this->contains->getName());
|
Chris@14
|
38 }
|
Chris@14
|
39
|
Chris@14
|
40 public function testThrowsExceptionWhenNameAttributeIsMissing() {
|
Chris@14
|
41 $this->domElement->removeAttribute('name');
|
Chris@14
|
42 $this->expectException(ManifestElementException::class);
|
Chris@14
|
43 $this->contains->getName();
|
Chris@14
|
44 }
|
Chris@14
|
45
|
Chris@14
|
46 public function testTypeCanBeRetrieved() {
|
Chris@14
|
47 $this->assertEquals('application', $this->contains->getType());
|
Chris@14
|
48 }
|
Chris@14
|
49
|
Chris@14
|
50 public function testThrowsExceptionWhenTypeAttributeIsMissing() {
|
Chris@14
|
51 $this->domElement->removeAttribute('type');
|
Chris@14
|
52 $this->expectException(ManifestElementException::class);
|
Chris@14
|
53 $this->contains->getType();
|
Chris@14
|
54 }
|
Chris@14
|
55
|
Chris@14
|
56 public function testGetExtensionElementReturnsExtensionElement() {
|
Chris@14
|
57 $this->domElement->appendChild(
|
Chris@14
|
58 $this->domElement->ownerDocument->createElementNS('https://phar.io/xml/manifest/1.0', 'extension')
|
Chris@14
|
59 );
|
Chris@14
|
60 $this->assertInstanceOf(ExtensionElement::class, $this->contains->getExtensionElement());
|
Chris@14
|
61 }
|
Chris@14
|
62
|
Chris@14
|
63 }
|