1 | <?php |
||
2 | |||
3 | namespace SilverStripe\ModuleRatings\Tests\Check; |
||
4 | |||
5 | use GuzzleHttp\Client; |
||
6 | use PHPUnit\Framework\TestCase; |
||
7 | use SilverStripe\ModuleRatings\Check\AbstractCodeCoverageCheck; |
||
8 | use SilverStripe\ModuleRatings\CheckSuite; |
||
9 | |||
10 | class AbstractCodeCoverageCheckTest extends TestCase |
||
11 | { |
||
12 | /** |
||
13 | * @var CheckSuite |
||
14 | */ |
||
15 | protected $checkSuite; |
||
16 | |||
17 | /** |
||
18 | * @var Client |
||
19 | */ |
||
20 | protected $client; |
||
21 | |||
22 | /** |
||
23 | * @var AbstractCodeCoverageCheck |
||
24 | */ |
||
25 | protected $check; |
||
26 | |||
27 | protected function setUp(): void |
||
28 | { |
||
29 | parent::setUp(); |
||
30 | |||
31 | $this->checkSuite = (new CheckSuite())->setRepositorySlug('foo/bar'); |
||
32 | |||
33 | $this->client = $this->getMockBuilder(Client::class) |
||
0 ignored issues
–
show
It seems like
$this->getMockBuilder(Gu... 'getBody'))->getMock() of type PHPUnit\Framework\MockObject\MockObject is incompatible with the declared type GuzzleHttp\Client of property $client .
Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property. Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..
Loading history...
|
|||
34 | ->setMethods(['get', 'getBody']) |
||
35 | ->getMock(); |
||
36 | |||
37 | $this->client->method('get')->will($this->returnSelf()); |
||
38 | |||
39 | $this->check = $this->getMockBuilder(AbstractCodeCoverageCheck::class) |
||
0 ignored issues
–
show
It seems like
$this->getMockBuilder(Si...tMockForAbstractClass() of type PHPUnit\Framework\MockObject\MockObject is incompatible with the declared type SilverStripe\ModuleRatin...stractCodeCoverageCheck of property $check .
Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property. Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..
Loading history...
|
|||
40 | ->setConstructorArgs([$this->client]) |
||
41 | ->getMockForAbstractClass(); |
||
42 | |||
43 | $this->check->setSuite($this->checkSuite); |
||
44 | } |
||
45 | |||
46 | public function testGetCoverageReturnsZeroWhenSlugIsNotSet() |
||
47 | { |
||
48 | $this->checkSuite->setRepositorySlug(null); |
||
49 | $this->assertSame(0, $this->check->getCoverage()); |
||
50 | } |
||
51 | |||
52 | public function testGetCodecovCoverageFetchFailure() |
||
53 | { |
||
54 | $this->client->expects($this->once())->method('getBody')->willReturn(false); |
||
55 | $this->assertFalse($this->check->getCodecovCoverage()); |
||
56 | } |
||
57 | |||
58 | public function testGetCodecovCoverageNotFoundFailure() |
||
59 | { |
||
60 | $this->client->expects($this->once())->method('getBody')->willReturn('{ |
||
61 | "meta": { |
||
62 | "status": 404 |
||
63 | } |
||
64 | }'); |
||
65 | $this->assertFalse($this->check->getCodecovCoverage()); |
||
66 | } |
||
67 | |||
68 | public function testGetCodecovCoverageReturnsResult() |
||
69 | { |
||
70 | $this->client->expects($this->once())->method('getBody')->willReturn('{ |
||
71 | "meta": { |
||
72 | "status": 200 |
||
73 | }, |
||
74 | "commit": { |
||
75 | "totals": { |
||
76 | "c": 85 |
||
77 | } |
||
78 | } |
||
79 | }'); |
||
80 | $this->assertSame(85, $this->check->getCodecovCoverage()); |
||
81 | } |
||
82 | |||
83 | public function testGetCodecovCoverageDefaultReturn() |
||
84 | { |
||
85 | $this->client->expects($this->once())->method('getBody')->willReturn('{ |
||
86 | "meta": { |
||
87 | "status": 200 |
||
88 | }, |
||
89 | "commit": { |
||
90 | "totals": { |
||
91 | "wrong_key": 85 |
||
92 | } |
||
93 | } |
||
94 | }'); |
||
95 | $this->assertSame(0, $this->check->getCodecovCoverage()); |
||
96 | } |
||
97 | |||
98 | public function testGetScrutinizerCoverageFetchFailure() |
||
99 | { |
||
100 | $this->client->expects($this->once())->method('getBody')->willReturn(false); |
||
101 | $this->assertFalse($this->check->getScrutinizerCoverage()); |
||
102 | } |
||
103 | |||
104 | public function testGetScrutinizerCoverageNotFoundFailure() |
||
105 | { |
||
106 | $this->client->expects($this->once())->method('getBody')->willReturn('{ |
||
107 | "applications": [] |
||
108 | }'); |
||
109 | $this->assertFalse($this->check->getScrutinizerCoverage()); |
||
110 | } |
||
111 | |||
112 | public function testGetScrutinizerCoverageReturnsResult() |
||
113 | { |
||
114 | $this->client->expects($this->once())->method('getBody')->willReturn('{ |
||
115 | "applications": { |
||
116 | "master": { |
||
117 | "index": { |
||
118 | "_embedded": { |
||
119 | "project": { |
||
120 | "metric_values": { |
||
121 | "scrutinizer.test_coverage": 0.5 |
||
122 | } |
||
123 | } |
||
124 | } |
||
125 | } |
||
126 | } |
||
127 | } |
||
128 | }'); |
||
129 | $this->assertEquals(50, $this->check->getScrutinizerCoverage()); |
||
130 | } |
||
131 | |||
132 | /** |
||
133 | * This test represents a default Scrutinizer repository API response which will have a code quality |
||
134 | * rating but not a code coverage rating |
||
135 | */ |
||
136 | public function testGetScrutinizerCoverageDefaultReturn() |
||
137 | { |
||
138 | $this->client->expects($this->once())->method('getBody')->willReturn('{ |
||
139 | "applications": { |
||
140 | "master": { |
||
141 | "index": { |
||
142 | "_embedded": { |
||
143 | "project": { |
||
144 | "metric_values": { |
||
145 | "scrutinizer.quality": 7.423076923076923 |
||
146 | } |
||
147 | } |
||
148 | } |
||
149 | } |
||
150 | } |
||
151 | } |
||
152 | }'); |
||
153 | $this->assertSame(0, $this->check->getScrutinizerCoverage()); |
||
154 | } |
||
155 | } |
||
156 |
This function has been deprecated. The supplier of the function has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead.