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 PHPUnit\Framework\TestCase;
|
Chris@14
|
14
|
Chris@14
|
15 /**
|
Chris@14
|
16 * @covers \PharIo\Manifest\AuthorCollection
|
Chris@14
|
17 * @covers \PharIo\Manifest\AuthorCollectionIterator
|
Chris@14
|
18 *
|
Chris@14
|
19 * @uses \PharIo\Manifest\Author
|
Chris@14
|
20 * @uses \PharIo\Manifest\Email
|
Chris@14
|
21 */
|
Chris@14
|
22 class AuthorCollectionTest extends TestCase {
|
Chris@14
|
23 /**
|
Chris@14
|
24 * @var AuthorCollection
|
Chris@14
|
25 */
|
Chris@14
|
26 private $collection;
|
Chris@14
|
27
|
Chris@14
|
28 /**
|
Chris@14
|
29 * @var Author
|
Chris@14
|
30 */
|
Chris@14
|
31 private $item;
|
Chris@14
|
32
|
Chris@14
|
33 protected function setUp() {
|
Chris@14
|
34 $this->collection = new AuthorCollection;
|
Chris@14
|
35 $this->item = new Author('Joe Developer', new Email('user@example.com'));
|
Chris@14
|
36 }
|
Chris@14
|
37
|
Chris@14
|
38 public function testCanBeCreated() {
|
Chris@14
|
39 $this->assertInstanceOf(AuthorCollection::class, $this->collection);
|
Chris@14
|
40 }
|
Chris@14
|
41
|
Chris@14
|
42 public function testCanBeCounted() {
|
Chris@14
|
43 $this->collection->add($this->item);
|
Chris@14
|
44
|
Chris@14
|
45 $this->assertCount(1, $this->collection);
|
Chris@14
|
46 }
|
Chris@14
|
47
|
Chris@14
|
48 public function testCanBeIterated() {
|
Chris@14
|
49 $this->collection->add(
|
Chris@14
|
50 new Author('Dummy First', new Email('dummy@example.com'))
|
Chris@14
|
51 );
|
Chris@14
|
52 $this->collection->add($this->item);
|
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 }
|