Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,4 @@ Build/.phpunit.cache
var/
vendor/

phpunit.coverage.xml
phpunit.report.xml
coverage_result/
13 changes: 0 additions & 13 deletions Build/UnitTests.xml

This file was deleted.

5 changes: 4 additions & 1 deletion Build/FunctionalTests.xml → Build/phpunit.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@
<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">
<coverage/>
<testsuites>
<testsuite name="Cart Events Extension">
<testsuite name="functional">
<directory>../Tests/Functional/</directory>
</testsuite>
<testsuite name="unit">
<directory>../Tests/Unit/</directory>
</testsuite>
</testsuites>
<source>
<include>
Expand Down
5 changes: 1 addition & 4 deletions Classes/Domain/Model/EventDate.php
Original file line number Diff line number Diff line change
Expand Up @@ -403,10 +403,7 @@ public function isAvailable(): bool
if (!$this->isHandleSeats()) {
return true;
}
if ($this->getSeatsAvailable()) {
return true;
}

return false;
return $this->getSeatsAvailable() > 0;
}
}
278 changes: 278 additions & 0 deletions Tests/Unit/Domain/Model/EventDateTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,4 +117,282 @@ public function setLecturerSetsLecturer(): void
$this->eventDate->getLecturer()
);
}

#[Test]
public function isBookableReturnsInitialValueForBookable(): void
{
self::assertFalse(
$this->eventDate->isBookable()
);
}

#[Test]
public function setBookableSetsBookable(): void
{
$this->eventDate->setBookable(true);

self::assertTrue(
$this->eventDate->isBookable()
);
}

#[Test]
public function isPriceCategorizedReturnsInitialValueForPriceCategorized(): void
{
self::assertFalse(
$this->eventDate->isPriceCategorized()
);
}

#[Test]
public function setPriceCategorizedSetsPriceCategorized(): void
{
$this->eventDate->setPriceCategorized(true);

self::assertTrue(
$this->eventDate->isPriceCategorized()
);
}

#[Test]
public function isHandleSeatsReturnsInitialValueForHandleSeats(): void
{
self::assertFalse(
$this->eventDate->isHandleSeats()
);
}

#[Test]
public function setHandleSeatsSetsHandleSeats(): void
{
$this->eventDate->setHandleSeats(true);

self::assertTrue(
$this->eventDate->isHandleSeats()
);
}

#[Test]
public function isHandleSeatsInPriceCategoryReturnsInitialValueForHandleSeatsInPriceCategory(): void
{
self::assertFalse(
$this->eventDate->isHandleSeatsInPriceCategory()
);
}

#[Test]
public function setHandleSeatsInPriceCategorySetsHandleSeatsInPriceCategory(): void
{
$this->eventDate->setHandleSeatsInPriceCategory(true);

self::assertTrue(
$this->eventDate->isHandleSeatsInPriceCategory()
);
}

#[Test]
public function getSeatsNumberReturnsZeroIfHandleSeatsIsFalse()
{
self::assertSame(
0,
$this->eventDate->getSeatsNumber()
);

$this->eventDate->setSeatsNumber(15);

self::assertSame(
0,
$this->eventDate->getSeatsNumber()
);
}

#[Test]
public function getSeatsNumberReturnsInitialValueForSeatsNumberIfHandleSeatsIsTrue()
{
$this->eventDate->setHandleSeats(true);

self::assertSame(
0,
$this->eventDate->getSeatsNumber()
);
}

#[Test]
public function setSeatsNumberSetsSeatsNumber()
{
$this->eventDate->setSeatsNumber(15);

self::assertSame(
0,
$this->eventDate->getSeatsNumber()
);

$this->eventDate->setHandleSeats(true);

self::assertSame(
15,
$this->eventDate->getSeatsNumber()
);
}

#[Test]
public function getSeatsTakenReturnsZeroIfHandleSeatsIsFalse()
{
self::assertSame(
0,
$this->eventDate->getSeatsTaken()
);

$this->eventDate->setSeatsTaken(15);

self::assertSame(
0,
$this->eventDate->getSeatsTaken()
);
}

#[Test]
public function getSeatsTakenReturnsInitialValueForSeatsTakenIfHandleSeatsIsTrue()
{
$this->eventDate->setHandleSeats(true);

self::assertSame(
0,
$this->eventDate->getSeatsTaken()
);
}

#[Test]
public function setSeatsTakenSetsSeatsTaken()
{
$this->eventDate->setSeatsTaken(15);

self::assertSame(
0,
$this->eventDate->getSeatsTaken()
);

$this->eventDate->setHandleSeats(true);

self::assertSame(
15,
$this->eventDate->getSeatsTaken()
);
}

#[Test]
public function getSeatsAvailableReturnsZeroIfHandleSeatsIsFalse()
{
self::assertSame(
0,
$this->eventDate->getSeatsAvailable()
);

$this->eventDate->setSeatsNumber(15);

self::assertSame(
0,
$this->eventDate->getSeatsAvailable()
);
}

#[Test]
public function getSeatsAvailableReturnsDifferenceOfInitialValueForSeatsNumberAndSeatsTakenIfHandleSeatsIsTrue()
{
$this->eventDate->setHandleSeats(true);

self::assertSame(
0,
$this->eventDate->getSeatsAvailable()
);
}

#[Test]
public function getSeatsAvailableDifferenceOfValueForSeatsNumberAndSeatsTakenIfHandleSeatsIsTrue()
{
$this->eventDate->setSeatsNumber(30);
$this->eventDate->setSeatsTaken(13);

self::assertSame(
0,
$this->eventDate->getSeatsAvailable()
);

$this->eventDate->setHandleSeats(true);

self::assertSame(
17,
$this->eventDate->getSeatsAvailable()
);
}

#[TEST]
public function isAvailableReturnsFalseIfBookableIsFalse()
{
$this->eventDate->setHandleSeats(true);
$this->eventDate->setSeatsNumber(20);
$this->eventDate->setBookable(false);

self::assertFalse(
$this->eventDate->isAvailable()
);

$this->eventDate->setBookable(true);

self::assertTrue(
$this->eventDate->isAvailable()
);
}

#[TEST]
public function isAvailableReturnsTrueIfIsBookableAndHandleSeatsIsFalse()
{
$this->eventDate->setBookable(true);
$this->eventDate->setHandleSeats(false);
self::assertTrue(
$this->eventDate->isAvailable()
);

$this->eventDate->setHandleSeats(true);
self::assertFalse(
$this->eventDate->isAvailable()
);
}

#[TEST]
public function isAvailableReturnsTrueIfIsBookableAndHandleSeatsIsTrueAndNumberOfSeatsIsGreaterThanZero()
{
$this->eventDate->setBookable(true);
$this->eventDate->setHandleSeats(true);
$this->eventDate->setSeatsNumber(2);
self::assertTrue(
$this->eventDate->isAvailable()
);

$this->eventDate->setSeatsTaken(1);
self::assertTrue(
$this->eventDate->isAvailable()
);

$this->eventDate->setSeatsTaken(2);
self::assertFalse(
$this->eventDate->isAvailable()
);
}

#[TEST]
public function isAvailableReturnsFalseIfIsBookableAndHandleSeatsIsTrueAndNumberOfSeatsIsLowerOrEqualToZero()
{
$this->eventDate->setBookable(true);
$this->eventDate->setHandleSeats(true);
$this->eventDate->setSeatsNumber(0);
self::assertFalse(
$this->eventDate->isAvailable()
);

$this->eventDate->setSeatsTaken(1);
self::assertFalse(
$this->eventDate->isAvailable()
);
}
}
17 changes: 15 additions & 2 deletions shell.nix
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ let
];
text = ''
project-install
./vendor/bin/phpunit -c Build/UnitTests.xml
./vendor/bin/phpunit -c Build/phpunit.xml.dist --testsuite unit --display-warnings --display-deprecations --display-errors
'';
};

Expand All @@ -102,7 +102,19 @@ let
];
text = ''
project-install
./vendor/bin/phpunit -c Build/FunctionalTests.xml
./vendor/bin/phpunit -c Build/phpunit.xml.dist --testsuite functional --display-warnings --display-deprecations --display-errors
'';
};

projectTestWithCoverage = pkgs.writeShellApplication {
name = "project-test-with-coverage";
runtimeInputs = [
php
projectInstall
];
text = ''
project-install
XDEBUG_MODE=coverage ./vendor/bin/phpunit -c Build/phpunit.xml.dist --coverage-html=coverage_result
'';
};

Expand Down Expand Up @@ -145,6 +157,7 @@ in pkgs.mkShellNoCC {
projectPhpstan
projectTestUnit
projectTestFunctional
projectTestWithCoverage
projectTestAcceptance
];

Expand Down