aboutsummaryrefslogtreecommitdiff
path: root/tests/jsonapi
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2022-11-18 13:47:26 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2022-11-18 13:47:26 +0000
commitfe2781093e8f3c0861661b9c55737d615c8741b9 (patch)
tree3317720c41f9a256c9d6f5986612f84e93a96c8f /tests/jsonapi
parentc0fd6686718362bd7340243f29bbd922faf6e78c (diff)
fix tests for consultations, fixes #1794
Closes #1794 Merge request studip/studip!1175
Diffstat (limited to 'tests/jsonapi')
-rw-r--r--tests/jsonapi/ConsultationHelper.php25
-rw-r--r--tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php4
-rw-r--r--tests/jsonapi/ConsultationsBookingCreateTest.php4
3 files changed, 24 insertions, 9 deletions
diff --git a/tests/jsonapi/ConsultationHelper.php b/tests/jsonapi/ConsultationHelper.php
index 0fdd40b..10d5050 100644
--- a/tests/jsonapi/ConsultationHelper.php
+++ b/tests/jsonapi/ConsultationHelper.php
@@ -41,17 +41,32 @@ trait ConsultationHelper
return User::find($credentials['id']);
}
- protected function createBlockWithSlotsForRange(Range $range, array $additional_data = []): ConsultationBlock
+ protected function createBlockWithSlotsForRange(Range $range, bool $lock_blocks = false): ConsultationBlock
{
- $hour = date('H');
- $begin = strtotime("today {$hour}:00:00");
- $end = strtotime('+2 hours', $begin);
+ // Generate start and end time. Assures that the day is not a holiday.
+ $now = time();
+ do {
+ $begin = strtotime('next monday 8:00:00', $now);
+ $end = strtotime('+2 hours', $begin);
+
+ $now = strtotime('+1 week', $now);
+
+ $temp = holiday($begin);
+ } while (is_array($temp) && $temp['col'] === 3);
+
+ // Lock blocks?
+ $additional_data = [];
+ if ($lock_blocks) {
+ $additional_data['lock_time'] = ceil(($begin - time()) / 3600);
+ }
+
+ // Generate blocks
$blocks = ConsultationBlock::generateBlocks(
$range,
$begin,
$end,
- date('w'),
+ date('w', $begin),
1
);
$blocks = iterator_to_array($blocks);
diff --git a/tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php b/tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php
index 56ef183..590343d 100644
--- a/tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php
+++ b/tests/jsonapi/ConsultationsBookingCreateBySlotIndexTest.php
@@ -27,12 +27,12 @@ class ConsultationsBookingCreateBySlotIndexTest extends Codeception\Test\Unit
);
}
- public function testAutorMayCreateNotCreateBookingDueToLock(): void
+ public function testAutorMayNotCreateBookingDueToLock(): void
{
$credentials = $this->tester->getCredentialsForTestDozent();
$range = User::find($credentials['id']);
- $block = $this->createBlockWithSlotsForRange($range, ['lock_time' => 2]);
+ $block = $this->createBlockWithSlotsForRange($range, true);
$slot = $this->getSlotFromBlock($block);
$response = $this->createBooking(
diff --git a/tests/jsonapi/ConsultationsBookingCreateTest.php b/tests/jsonapi/ConsultationsBookingCreateTest.php
index 54ad2b4..d0af9da 100644
--- a/tests/jsonapi/ConsultationsBookingCreateTest.php
+++ b/tests/jsonapi/ConsultationsBookingCreateTest.php
@@ -28,12 +28,12 @@ class ConsultationsBookingCreateTest extends Codeception\Test\Unit
);
}
- public function testAutorMayCreateNotCreateBookingDueToLock(): void
+ public function testAutorMayNotCreateBookingDueToLock(): void
{
$credentials = $this->tester->getCredentialsForTestDozent();
$range = User::find($credentials['id']);
- $block = $this->createBlockWithSlotsForRange($range, ['lock_time' => 2]);
+ $block = $this->createBlockWithSlotsForRange($range, true);
$slot = $this->getSlotFromBlock($block);
$response = $this->createBooking(