diff --git a/assignment/src/test/java/appointmentplanner/AppointmentRequestImplTest.java b/assignment/src/test/java/appointmentplanner/AppointmentRequestImplTest.java new file mode 100644 index 0000000..73c8670 --- /dev/null +++ b/assignment/src/test/java/appointmentplanner/AppointmentRequestImplTest.java @@ -0,0 +1,41 @@ +package appointmentplanner; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.time.Duration; +import java.time.LocalTime; +import java.util.stream.Stream; + +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import appointmentplanner.api.AppointmentData; +import appointmentplanner.api.AppointmentRequest; + +public class AppointmentRequestImplTest { + + private static Stream provideAppointmentRequestArgumnets() { + return Stream.of( + Arguments.of(TestData.AR1, TestData.T09_00, TestData.DATA1), + Arguments.of(TestData.AR2, TestData.T09_30, TestData.DATA2), + Arguments.of(TestData.AR3, TestData.T10_30, TestData.DATA3), + Arguments.of(TestData.AR4, TestData.T10_45, TestData.DATA4), + Arguments.of(TestData.AR5, TestData.T11_10, TestData.DATA5), + Arguments.of(TestData.AR6, TestData.T14_30, TestData.DATA6), + Arguments.of(TestData.AR7, TestData.T16_00, TestData.DATA7)); + } + + @ParameterizedTest + @MethodSource("provideAppointmentRequestArgumnets") + void apReqStartTime_shouldReturnCorrectTimeSetInConstructor(AppointmentRequest testetReq, LocalTime expectedTime) { + assertThat(testetReq.startTime()).isEqualTo(expectedTime); + } + + @ParameterizedTest + @MethodSource("provideAppointmentRequestArgumnets") + void apReqAppData_shouldReturnCorrectAppDataSetInConstructor(AppointmentRequest testReq, LocalTime expectedTime, + AppointmentData data) { + assertThat(testReq.appointmentData()).isEqualTo(data); + } +}