File tree Expand file tree Collapse file tree 3 files changed +25
-4
lines changed Expand file tree Collapse file tree 3 files changed +25
-4
lines changed Original file line number Diff line number Diff line change 1
- C:37:"PHPUnit\Runner\DefaultTestResultCache":2303:{a:2:{s:7:"defects";a:12:{s:56:"Tests\CarbonAvailabilityTest::testBackToBackPeriodsMerge";i:3;s:60:"Tests\CarbonAvailabilityTest::testDisconnectedTimesAreMerged";i:3;s:62:"Tests\CarbonAvailabilityTest::testDisconnectedPeriodsDontMerge";i:3;s:67:"Tests\CarbonAvailabilityTest::testInclusiveAvailabilitiesAreRemoved";i:3;s:63:"Tests\CarbonAvailabilityTest::testTimesGetSplitByUnavailability";i:4;s:57:"Tests\CarbonAvailabilityTest::testAvailabilityStartsLater";i:4;s:57:"Tests\CarbonAvailabilityTest::testAvailabilityEndsEarlier";i:4;s:65:"Tests\CarbonAvailabilityTest::testAvailabilityIsRemovedIfEclipsed";i:4;s:74:"Tests\CarbonAvailabilityTest::testAvailabilityIsRemovedIfEclipsedPerfectly";i:3;s:56:"Tests\CarbonAvailabilityTest::testBasicSessionTimesSplit";i:3;s:47:"Tests\CarbonAvailabilityTest::testReadMeExample";i:3;s:49:"Tests\CarbonAvailabilityTest::testThisDumbProblem";i:3;}s:5:"times";a:19:{s:40:"Tests\CarbonAvailabilityTest::testIsTrue";d:0.022;s:56:"Tests\CarbonAvailabilityTest::testBackToBackPeriodsMerge";d:0.049;s:62:"Tests\CarbonAvailabilityTest::testDisconnectedPeriodsDontMerge";d:0;s:60:"Tests\CarbonAvailabilityTest::testDisconnectedTimesAreMerged";d:0;s:72:"Tests\CarbonAvailabilityTest::testDisconnectedTimesAreMergedWithOutliers";d:0.001;s:67:"Tests\CarbonAvailabilityTest::testInclusiveAvailabilitiesAreRemoved";d:0;s:74:"Tests\CarbonAvailabilityTest::testInverseInclusiveAvailabilitiesAreRemoved";d:0;s:63:"Tests\CarbonAvailabilityTest::testTimesGetSplitByUnavailability";d:0.001;s:57:"Tests\CarbonAvailabilityTest::testAvailabilityStartsLater";d:0;s:57:"Tests\CarbonAvailabilityTest::testAvailabilityEndsEarlier";d:0;s:65:"Tests\CarbonAvailabilityTest::testAvailabilityIsRemovedIfEclipsed";d:0;s:69:"Tests\CarbonAvailabilityTest::testTimesGetDoubleSplitByUnavailability";d:0.001;s:60:"Tests\CarbonAvailabilityTest::testAvailabilityStaysUntouched";d:0;s:57:"Tests\CarbonAvailabilityTest::testMultipleTimesGetTrimmed";d:0.001;s:74:"Tests\CarbonAvailabilityTest::testAvailabilityIsRemovedIfEclipsedPerfectly";d:0;s:51:"Tests\CarbonAvailabilityTest::testBasicSessionTimes";d:0.017;s:56:"Tests\CarbonAvailabilityTest::testBasicSessionTimesSplit";d:0.001;s:47:"Tests\CarbonAvailabilityTest::testReadMeExample";d:0.001;s:49:"Tests\CarbonAvailabilityTest::testThisDumbProblem";d:0;}}}
1
+ C:37:"PHPUnit\Runner\DefaultTestResultCache":2062:{a:2:{s:7:"defects";a:7:{s:57:"Tests\CarbonAvailabilityTest::testAvailabilityStartsLater";i:4;s:57:"Tests\CarbonAvailabilityTest::testAvailabilityEndsEarlier";i:4;s:65:"Tests\CarbonAvailabilityTest::testAvailabilityIsRemovedIfEclipsed";i:4;s:74:"Tests\CarbonAvailabilityTest::testAvailabilityIsRemovedIfEclipsedPerfectly";i:4;s:57:"Tests\CarbonAvailabilityTest::testMultipleTimesGetTrimmed";i:4;s:69:"Tests\CarbonAvailabilityTest::testAvailabilityStartsWhenBookingStarts";i:4;s:67:"Tests\CarbonAvailabilityTest::testAvailabilityWndsWhenBookingStarts";i:4;}s:5:"times";a:19:{s:56:"Tests\CarbonAvailabilityTest::testBackToBackPeriodsMerge";d:0.065;s:62:"Tests\CarbonAvailabilityTest::testDisconnectedPeriodsDontMerge";d:0.001;s:60:"Tests\CarbonAvailabilityTest::testDisconnectedTimesAreMerged";d:0.001;s:72:"Tests\CarbonAvailabilityTest::testDisconnectedTimesAreMergedWithOutliers";d:0.001;s:67:"Tests\CarbonAvailabilityTest::testInclusiveAvailabilitiesAreRemoved";d:0.001;s:74:"Tests\CarbonAvailabilityTest::testInverseInclusiveAvailabilitiesAreRemoved";d:0.001;s:63:"Tests\CarbonAvailabilityTest::testTimesGetSplitByUnavailability";d:0.001;s:57:"Tests\CarbonAvailabilityTest::testAvailabilityStartsLater";d:0.001;s:57:"Tests\CarbonAvailabilityTest::testAvailabilityEndsEarlier";d:0.001;s:65:"Tests\CarbonAvailabilityTest::testAvailabilityIsRemovedIfEclipsed";d:0.001;s:74:"Tests\CarbonAvailabilityTest::testAvailabilityIsRemovedIfEclipsedPerfectly";d:0.001;s:60:"Tests\CarbonAvailabilityTest::testAvailabilityStaysUntouched";d:0.001;s:69:"Tests\CarbonAvailabilityTest::testTimesGetDoubleSplitByUnavailability";d:0.001;s:57:"Tests\CarbonAvailabilityTest::testMultipleTimesGetTrimmed";d:0.001;s:51:"Tests\CarbonAvailabilityTest::testBasicSessionTimes";d:0.027;s:56:"Tests\CarbonAvailabilityTest::testBasicSessionTimesSplit";d:0.001;s:47:"Tests\CarbonAvailabilityTest::testReadMeExample";d:0.002;s:69:"Tests\CarbonAvailabilityTest::testAvailabilityStartsWhenBookingStarts";d:0.001;s:67:"Tests\CarbonAvailabilityTest::testAvailabilityWndsWhenBookingStarts";d:0.001;}}}
Original file line number Diff line number Diff line change @@ -156,11 +156,11 @@ public static function subtractPeriod($avail, $unavail)
156
156
CarbonPeriod::create ($ unavail ->getEndDate (), $ avail ->getEndDate ())
157
157
];
158
158
}
159
- if ($ avail ->startsAfter ($ unavail ->getStartDate ()) && $ avail ->endsAfter ($ unavail ->getEndDate ())) {
159
+ if ($ avail ->startsAfterOrAt ($ unavail ->getStartDate ()) && $ avail ->endsAfter ($ unavail ->getEndDate ())) {
160
160
// Trim the front end of the availability
161
161
$ avail ->setStartDate ($ unavail ->getEndDate ());
162
162
}
163
- if ($ avail ->endsAfter ($ unavail ->getStartDate ()) && $ avail ->endsBefore ($ unavail ->getEndDate ())) {
163
+ if ($ avail ->endsAfter ($ unavail ->getStartDate ()) && $ avail ->endsBeforeOrAt ($ unavail ->getEndDate ())) {
164
164
// Trim the back end of the availability
165
165
$ avail ->setEndDate ($ unavail ->getStartDate ());
166
166
}
Original file line number Diff line number Diff line change @@ -411,7 +411,7 @@ public function testAvailabilityStartsWhenBookingStarts()
411
411
{
412
412
$ availability = [['2019-12-10 18:00:00 ' , '2019-12-10 19:00:00 ' ]];
413
413
414
- $ booked = [['2019-12-10 17:59:59 ' , '2019-12-10 18:45:00 ' ]];
414
+ $ booked = [['2019-12-10 18:00:00 ' , '2019-12-10 18:45:00 ' ]];
415
415
416
416
$ availability = new CarbonAvailability ($ availability , $ booked );
417
417
$ sessions = $ availability ->sessions ('15 minutes ' );
@@ -421,4 +421,25 @@ public function testAvailabilityStartsWhenBookingStarts()
421
421
$ sessions [0 ]->toDateTimeString ()
422
422
], ['2019-12-10 18:45:00 ' ]);
423
423
}
424
+
425
+ /**
426
+ * [===============]
427
+ * [xxxxxxxxxxx]
428
+ * [===]
429
+ * |
430
+ */
431
+ public function testAvailabilityWndsWhenBookingStarts ()
432
+ {
433
+ $ availability = [['2019-12-10 18:00:00 ' , '2019-12-10 19:00:00 ' ]];
434
+
435
+ $ booked = [['2019-12-10 18:15:00 ' , '2019-12-10 19:00:00 ' ]];
436
+
437
+ $ availability = new CarbonAvailability ($ availability , $ booked );
438
+ $ sessions = $ availability ->sessions ('15 minutes ' );
439
+
440
+ $ this ->assertCount (1 , $ sessions );
441
+ $ this ->assertEquals ([
442
+ $ sessions [0 ]->toDateTimeString ()
443
+ ], ['2019-12-10 18:00:00 ' ]);
444
+ }
424
445
}
You can’t perform that action at this time.
0 commit comments