Chris@14
|
1 <?php
|
Chris@14
|
2 /*
|
Chris@14
|
3 * This file is part of PharIo\Manifest.
|
Chris@14
|
4 *
|
Chris@14
|
5 * (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
Chris@14
|
6 *
|
Chris@14
|
7 * For the full copyright and license information, please view the LICENSE
|
Chris@14
|
8 * file that was distributed with this source code.
|
Chris@14
|
9 */
|
Chris@14
|
10
|
Chris@14
|
11 namespace PharIo\Manifest;
|
Chris@14
|
12
|
Chris@14
|
13 use PharIo\Version\ExactVersionConstraint;
|
Chris@14
|
14 use PHPUnit\Framework\TestCase;
|
Chris@14
|
15
|
Chris@14
|
16 /**
|
Chris@14
|
17 * @covers \PharIo\Manifest\RequirementCollection
|
Chris@14
|
18 * @covers \PharIo\Manifest\RequirementCollectionIterator
|
Chris@14
|
19 *
|
Chris@14
|
20 * @uses \PharIo\Manifest\PhpVersionRequirement
|
Chris@14
|
21 * @uses \PharIo\Version\VersionConstraint
|
Chris@14
|
22 */
|
Chris@14
|
23 class RequirementCollectionTest extends TestCase {
|
Chris@14
|
24 /**
|
Chris@14
|
25 * @var RequirementCollection
|
Chris@14
|
26 */
|
Chris@14
|
27 private $collection;
|
Chris@14
|
28
|
Chris@14
|
29 /**
|
Chris@14
|
30 * @var Requirement
|
Chris@14
|
31 */
|
Chris@14
|
32 private $item;
|
Chris@14
|
33
|
Chris@14
|
34 protected function setUp() {
|
Chris@14
|
35 $this->collection = new RequirementCollection;
|
Chris@14
|
36 $this->item = new PhpVersionRequirement(new ExactVersionConstraint('7.1.0'));
|
Chris@14
|
37 }
|
Chris@14
|
38
|
Chris@14
|
39 public function testCanBeCreated() {
|
Chris@14
|
40 $this->assertInstanceOf(RequirementCollection::class, $this->collection);
|
Chris@14
|
41 }
|
Chris@14
|
42
|
Chris@14
|
43 public function testCanBeCounted() {
|
Chris@14
|
44 $this->collection->add($this->item);
|
Chris@14
|
45
|
Chris@14
|
46 $this->assertCount(1, $this->collection);
|
Chris@14
|
47 }
|
Chris@14
|
48
|
Chris@14
|
49 public function testCanBeIterated() {
|
Chris@14
|
50 $this->collection->add(new PhpVersionRequirement(new ExactVersionConstraint('5.6.0')));
|
Chris@14
|
51 $this->collection->add($this->item);
|
Chris@14
|
52
|
Chris@14
|
53 $this->assertContains($this->item, $this->collection);
|
Chris@14
|
54 }
|
Chris@14
|
55
|
Chris@14
|
56 public function testKeyPositionCanBeRetreived() {
|
Chris@14
|
57 $this->collection->add($this->item);
|
Chris@14
|
58 foreach($this->collection as $key => $item) {
|
Chris@14
|
59 $this->assertEquals(0, $key);
|
Chris@14
|
60 }
|
Chris@14
|
61 }
|
Chris@14
|
62
|
Chris@14
|
63 }
|