diff --git a/assignment/src/test/java/appointmentplanner/customlist/api/CustomLinkedListTest.java b/assignment/src/test/java/appointmentplanner/customlist/api/CustomLinkedListTest.java index 26f1629..a582191 100644 --- a/assignment/src/test/java/appointmentplanner/customlist/api/CustomLinkedListTest.java +++ b/assignment/src/test/java/appointmentplanner/customlist/api/CustomLinkedListTest.java @@ -7,7 +7,10 @@ import java.util.stream.Stream; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.converter.ConvertWith; +import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.CsvSource; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.MethodSources; import appointmentplanner.StringArrayConverter; import appointmentplanner.customlist.CustomLinkedListImpl; @@ -61,4 +64,42 @@ public class CustomLinkedListTest { assertThat(list.contains(toRemove)).isFalse(); } + private static enum LlGetPosition { + BEFORE, AFTER + } + + private static String[] someBasicDataSet = new String[] { "O", "MUJ", "BOZE" }; + + private static Stream getAfterBeforeData() { + return Stream.of( + Arguments.of(someBasicDataSet, LlGetPosition.BEFORE, "MUJ", "O"), + Arguments.of(someBasicDataSet, LlGetPosition.AFTER, "MUJ", "BOZE"), + Arguments.of(someBasicDataSet, LlGetPosition.AFTER, "BOZE", null), + Arguments.of(someBasicDataSet, LlGetPosition.BEFORE, "O", null)); + } + + @ParameterizedTest + @MethodSource("getAfterBeforeData") + void cllGetAfter_shouldReturnCorrectResult(String[] data, LlGetPosition position, String reference, + String expectedResult) { + + CustomLinkedList list = new CustomLinkedListImpl<>(); + Stream.of(data).forEach(list::add); + + switch (position) { + case BEFORE: + assertThat(list.getBefore(reference)).isEqualTo(expectedResult); + break; + + case AFTER: + assertThat(list.getAfter(reference)).isEqualTo(expectedResult); + break; + + default: + fail("Incorrect parameters"); + break; + } + + } + }