Completed
Push — master ( aaccd5...c6e65b )
by Jonathan
10s
created

IssueGrouperTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 42
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
B testGroupIssues() 0 32 1
A setUp() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ChangelogGenerator\Tests;
6
7
use ChangelogGenerator\Issue;
8
use ChangelogGenerator\IssueGrouper;
9
use PHPUnit\Framework\TestCase;
10
11
final class IssueGrouperTest extends TestCase
12
{
13
    /** @var IssueGrouper */
14
    private $issueGrouper;
15
16
    public function testGroupIssues() : void
17
    {
18
        $issue1 = $this->createMock(Issue::class);
19
        $issue2 = $this->createMock(Issue::class);
20
        $issue3 = $this->createMock(Issue::class);
21
        $issue4 = $this->createMock(Issue::class);
22
23
        $issues = [$issue1, $issue2, $issue3, $issue4];
24
25
        $issue1->expects($this->once())
26
            ->method('getLabels')
27
            ->willReturn(['Enhancement']);
28
29
        $issue2->expects($this->once())
30
            ->method('getLabels')
31
            ->willReturn(['Bug']);
32
33
        $issue3->expects($this->once())
34
            ->method('getLabels')
35
            ->willReturn(['Bug']);
36
37
        $issue4->expects($this->once())
38
            ->method('getLabels')
39
            ->willReturn(['Enhancement']);
40
41
        $issueGroups = $this->issueGrouper->groupIssues($issues);
42
43
        self::assertCount(2, $issueGroups);
44
        self::assertContains($issue1, $issueGroups['Enhancement']->getIssues());
45
        self::assertContains($issue4, $issueGroups['Enhancement']->getIssues());
46
        self::assertContains($issue2, $issueGroups['Bug']->getIssues());
47
        self::assertContains($issue3, $issueGroups['Bug']->getIssues());
48
    }
49
50
    protected function setUp() : void
51
    {
52
        $this->issueGrouper = new IssueGrouper();
53
    }
54
}
55