Skip to content

Commit eb2fa4e

Browse files
authored
Merge pull request #118 from extcode/add_nix_shell_command_for_test_coverage_reports
Add nix shell command for test coverage reports
2 parents 967a52b + 0db9e0d commit eb2fa4e

6 files changed

Lines changed: 299 additions & 22 deletions

File tree

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,4 @@ Build/.phpunit.cache
1111
var/
1212
vendor/
1313

14-
phpunit.coverage.xml
15-
phpunit.report.xml
14+
coverage_result/

Build/UnitTests.xml

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="true" bootstrap="../vendor/typo3/testing-framework/Resources/Core/Build/FunctionalTestsBootstrap.php" colors="true" stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" stopOnSkipped="false" beStrictAboutTestsThatDoNotTestAnything="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.1/phpunit.xsd" cacheDirectory=".phpunit.cache" requireCoverageMetadata="false">
33
<coverage/>
44
<testsuites>
5-
<testsuite name="Cart Events Extension">
5+
<testsuite name="functional">
66
<directory>../Tests/Functional/</directory>
77
</testsuite>
8+
<testsuite name="unit">
9+
<directory>../Tests/Unit/</directory>
10+
</testsuite>
811
</testsuites>
912
<source>
1013
<include>

Classes/Domain/Model/EventDate.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -403,10 +403,7 @@ public function isAvailable(): bool
403403
if (!$this->isHandleSeats()) {
404404
return true;
405405
}
406-
if ($this->getSeatsAvailable()) {
407-
return true;
408-
}
409406

410-
return false;
407+
return $this->getSeatsAvailable() > 0;
411408
}
412409
}

Tests/Unit/Domain/Model/EventDateTest.php

Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,282 @@ public function setLecturerSetsLecturer(): void
117117
$this->eventDate->getLecturer()
118118
);
119119
}
120+
121+
#[Test]
122+
public function isBookableReturnsInitialValueForBookable(): void
123+
{
124+
self::assertFalse(
125+
$this->eventDate->isBookable()
126+
);
127+
}
128+
129+
#[Test]
130+
public function setBookableSetsBookable(): void
131+
{
132+
$this->eventDate->setBookable(true);
133+
134+
self::assertTrue(
135+
$this->eventDate->isBookable()
136+
);
137+
}
138+
139+
#[Test]
140+
public function isPriceCategorizedReturnsInitialValueForPriceCategorized(): void
141+
{
142+
self::assertFalse(
143+
$this->eventDate->isPriceCategorized()
144+
);
145+
}
146+
147+
#[Test]
148+
public function setPriceCategorizedSetsPriceCategorized(): void
149+
{
150+
$this->eventDate->setPriceCategorized(true);
151+
152+
self::assertTrue(
153+
$this->eventDate->isPriceCategorized()
154+
);
155+
}
156+
157+
#[Test]
158+
public function isHandleSeatsReturnsInitialValueForHandleSeats(): void
159+
{
160+
self::assertFalse(
161+
$this->eventDate->isHandleSeats()
162+
);
163+
}
164+
165+
#[Test]
166+
public function setHandleSeatsSetsHandleSeats(): void
167+
{
168+
$this->eventDate->setHandleSeats(true);
169+
170+
self::assertTrue(
171+
$this->eventDate->isHandleSeats()
172+
);
173+
}
174+
175+
#[Test]
176+
public function isHandleSeatsInPriceCategoryReturnsInitialValueForHandleSeatsInPriceCategory(): void
177+
{
178+
self::assertFalse(
179+
$this->eventDate->isHandleSeatsInPriceCategory()
180+
);
181+
}
182+
183+
#[Test]
184+
public function setHandleSeatsInPriceCategorySetsHandleSeatsInPriceCategory(): void
185+
{
186+
$this->eventDate->setHandleSeatsInPriceCategory(true);
187+
188+
self::assertTrue(
189+
$this->eventDate->isHandleSeatsInPriceCategory()
190+
);
191+
}
192+
193+
#[Test]
194+
public function getSeatsNumberReturnsZeroIfHandleSeatsIsFalse()
195+
{
196+
self::assertSame(
197+
0,
198+
$this->eventDate->getSeatsNumber()
199+
);
200+
201+
$this->eventDate->setSeatsNumber(15);
202+
203+
self::assertSame(
204+
0,
205+
$this->eventDate->getSeatsNumber()
206+
);
207+
}
208+
209+
#[Test]
210+
public function getSeatsNumberReturnsInitialValueForSeatsNumberIfHandleSeatsIsTrue()
211+
{
212+
$this->eventDate->setHandleSeats(true);
213+
214+
self::assertSame(
215+
0,
216+
$this->eventDate->getSeatsNumber()
217+
);
218+
}
219+
220+
#[Test]
221+
public function setSeatsNumberSetsSeatsNumber()
222+
{
223+
$this->eventDate->setSeatsNumber(15);
224+
225+
self::assertSame(
226+
0,
227+
$this->eventDate->getSeatsNumber()
228+
);
229+
230+
$this->eventDate->setHandleSeats(true);
231+
232+
self::assertSame(
233+
15,
234+
$this->eventDate->getSeatsNumber()
235+
);
236+
}
237+
238+
#[Test]
239+
public function getSeatsTakenReturnsZeroIfHandleSeatsIsFalse()
240+
{
241+
self::assertSame(
242+
0,
243+
$this->eventDate->getSeatsTaken()
244+
);
245+
246+
$this->eventDate->setSeatsTaken(15);
247+
248+
self::assertSame(
249+
0,
250+
$this->eventDate->getSeatsTaken()
251+
);
252+
}
253+
254+
#[Test]
255+
public function getSeatsTakenReturnsInitialValueForSeatsTakenIfHandleSeatsIsTrue()
256+
{
257+
$this->eventDate->setHandleSeats(true);
258+
259+
self::assertSame(
260+
0,
261+
$this->eventDate->getSeatsTaken()
262+
);
263+
}
264+
265+
#[Test]
266+
public function setSeatsTakenSetsSeatsTaken()
267+
{
268+
$this->eventDate->setSeatsTaken(15);
269+
270+
self::assertSame(
271+
0,
272+
$this->eventDate->getSeatsTaken()
273+
);
274+
275+
$this->eventDate->setHandleSeats(true);
276+
277+
self::assertSame(
278+
15,
279+
$this->eventDate->getSeatsTaken()
280+
);
281+
}
282+
283+
#[Test]
284+
public function getSeatsAvailableReturnsZeroIfHandleSeatsIsFalse()
285+
{
286+
self::assertSame(
287+
0,
288+
$this->eventDate->getSeatsAvailable()
289+
);
290+
291+
$this->eventDate->setSeatsNumber(15);
292+
293+
self::assertSame(
294+
0,
295+
$this->eventDate->getSeatsAvailable()
296+
);
297+
}
298+
299+
#[Test]
300+
public function getSeatsAvailableReturnsDifferenceOfInitialValueForSeatsNumberAndSeatsTakenIfHandleSeatsIsTrue()
301+
{
302+
$this->eventDate->setHandleSeats(true);
303+
304+
self::assertSame(
305+
0,
306+
$this->eventDate->getSeatsAvailable()
307+
);
308+
}
309+
310+
#[Test]
311+
public function getSeatsAvailableDifferenceOfValueForSeatsNumberAndSeatsTakenIfHandleSeatsIsTrue()
312+
{
313+
$this->eventDate->setSeatsNumber(30);
314+
$this->eventDate->setSeatsTaken(13);
315+
316+
self::assertSame(
317+
0,
318+
$this->eventDate->getSeatsAvailable()
319+
);
320+
321+
$this->eventDate->setHandleSeats(true);
322+
323+
self::assertSame(
324+
17,
325+
$this->eventDate->getSeatsAvailable()
326+
);
327+
}
328+
329+
#[TEST]
330+
public function isAvailableReturnsFalseIfBookableIsFalse()
331+
{
332+
$this->eventDate->setHandleSeats(true);
333+
$this->eventDate->setSeatsNumber(20);
334+
$this->eventDate->setBookable(false);
335+
336+
self::assertFalse(
337+
$this->eventDate->isAvailable()
338+
);
339+
340+
$this->eventDate->setBookable(true);
341+
342+
self::assertTrue(
343+
$this->eventDate->isAvailable()
344+
);
345+
}
346+
347+
#[TEST]
348+
public function isAvailableReturnsTrueIfIsBookableAndHandleSeatsIsFalse()
349+
{
350+
$this->eventDate->setBookable(true);
351+
$this->eventDate->setHandleSeats(false);
352+
self::assertTrue(
353+
$this->eventDate->isAvailable()
354+
);
355+
356+
$this->eventDate->setHandleSeats(true);
357+
self::assertFalse(
358+
$this->eventDate->isAvailable()
359+
);
360+
}
361+
362+
#[TEST]
363+
public function isAvailableReturnsTrueIfIsBookableAndHandleSeatsIsTrueAndNumberOfSeatsIsGreaterThanZero()
364+
{
365+
$this->eventDate->setBookable(true);
366+
$this->eventDate->setHandleSeats(true);
367+
$this->eventDate->setSeatsNumber(2);
368+
self::assertTrue(
369+
$this->eventDate->isAvailable()
370+
);
371+
372+
$this->eventDate->setSeatsTaken(1);
373+
self::assertTrue(
374+
$this->eventDate->isAvailable()
375+
);
376+
377+
$this->eventDate->setSeatsTaken(2);
378+
self::assertFalse(
379+
$this->eventDate->isAvailable()
380+
);
381+
}
382+
383+
#[TEST]
384+
public function isAvailableReturnsFalseIfIsBookableAndHandleSeatsIsTrueAndNumberOfSeatsIsLowerOrEqualToZero()
385+
{
386+
$this->eventDate->setBookable(true);
387+
$this->eventDate->setHandleSeats(true);
388+
$this->eventDate->setSeatsNumber(0);
389+
self::assertFalse(
390+
$this->eventDate->isAvailable()
391+
);
392+
393+
$this->eventDate->setSeatsTaken(1);
394+
self::assertFalse(
395+
$this->eventDate->isAvailable()
396+
);
397+
}
120398
}

shell.nix

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ let
9090
];
9191
text = ''
9292
project-install
93-
./vendor/bin/phpunit -c Build/UnitTests.xml
93+
./vendor/bin/phpunit -c Build/phpunit.xml.dist --testsuite unit --display-warnings --display-deprecations --display-errors
9494
'';
9595
};
9696

@@ -102,7 +102,19 @@ let
102102
];
103103
text = ''
104104
project-install
105-
./vendor/bin/phpunit -c Build/FunctionalTests.xml
105+
./vendor/bin/phpunit -c Build/phpunit.xml.dist --testsuite functional --display-warnings --display-deprecations --display-errors
106+
'';
107+
};
108+
109+
projectTestWithCoverage = pkgs.writeShellApplication {
110+
name = "project-test-with-coverage";
111+
runtimeInputs = [
112+
php
113+
projectInstall
114+
];
115+
text = ''
116+
project-install
117+
XDEBUG_MODE=coverage ./vendor/bin/phpunit -c Build/phpunit.xml.dist --coverage-html=coverage_result
106118
'';
107119
};
108120

@@ -145,6 +157,7 @@ in pkgs.mkShellNoCC {
145157
projectPhpstan
146158
projectTestUnit
147159
projectTestFunctional
160+
projectTestWithCoverage
148161
projectTestAcceptance
149162
];
150163

0 commit comments

Comments
 (0)