openjdk version "21.0.11" 2026-04-21 LTS
OpenJDK Runtime Environment Corretto-21.0.11.10.1 (build 21.0.11+10-LTS)
OpenJDK 64-Bit Server VM Corretto-21.0.11.10.1 (build 21.0.11+10-LTS, mixed mode, sharing)
javac 21.0.11
PASS blank equipment id -> IllegalArgumentException
PASS null request id -> IllegalArgumentException
PASS zero-length interval -> IllegalArgumentException
PASS reversed interval -> IllegalArgumentException
PASS missing start -> NullPointerException
PASS missing end -> NullPointerException
PASS missing request identity -> NullPointerException
PASS missing equipment identity -> NullPointerException
PASS missing period -> NullPointerException
PASS reference booking 0
PASS interval [5,10) against [10,20): CONFIRMED
PASS reference booking 1
PASS interval [20,25) against [10,20): CONFIRMED
PASS reference booking 2
PASS interval [0,5) against [10,20): CONFIRMED
PASS reference booking 3
PASS interval [25,30) against [10,20): CONFIRMED
PASS reference booking 4
PASS interval [5,11) against [10,20): OVERLAP_REJECTED
PASS reference booking 5
PASS interval [19,25) against [10,20): OVERLAP_REJECTED
PASS reference booking 6
PASS interval [12,18) against [10,20): OVERLAP_REJECTED
PASS reference booking 7
PASS interval [5,25) against [10,20): OVERLAP_REJECTED
PASS reference booking 8
PASS interval [10,20) against [10,20): OVERLAP_REJECTED
PASS reference booking 9
PASS interval [10,15) against [10,20): OVERLAP_REJECTED
PASS reference booking 10
PASS interval [15,20) against [10,20): OVERLAP_REJECTED
PASS initial request confirmed
PASS same payload retry returns original outcome
PASS changed interval under reused id rejected -> IllegalArgumentException
PASS changed equipment under reused id rejected -> IllegalArgumentException
PASS failed changed payload leaves original booking active
PASS different equipment accepts same interval
PASS unknown cancellation changes nothing
PASS rejected request has no booking to cancel
PASS cancellation releases original booking
PASS repeated cancellation reports no active booking
PASS retry after cancellation retains original outcome
PASS rejected outcome remains stable after availability changes
PASS rejected request id cannot change payload -> IllegalArgumentException
PASS new request uses released interval; old retry did not rebook
PASS replacement booking protects released interval again
PASS null request rejected -> NullPointerException
PASS null cancellation rejected -> NullPointerException
PASS total=48
Exception in thread "main" java.lang.IllegalArgumentException: rental period: TOO_SOON
	at rental.domain.RentalContract$Factory.create(RentalContract.java:61)
	at rental.domain.ResponsibilityCheck.main(ResponsibilityCheck.java:33)
