diff --git a/testing-modules/mockito-4/src/test/java/com/baeldung/genericlist/MatchGenericListUnitTest.java b/testing-modules/mockito-4/src/test/java/com/baeldung/genericlist/MatchGenericListUnitTest.java new file mode 100644 index 000000000000..44ad2853e2be --- /dev/null +++ b/testing-modules/mockito-4/src/test/java/com/baeldung/genericlist/MatchGenericListUnitTest.java @@ -0,0 +1,55 @@ +package com.baeldung.genericlist; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyList; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.mockito.ArgumentMatchers; +import org.mockito.Mockito; + +interface MyInterface { + + default String extractFirstLetters(List words) { + return String.join(", ", words.stream() + .map(str -> str.substring(0, 1)) + .toList()); + } +} + +public class MatchGenericListUnitTest { + + @Test + void whenUseAnyWithListClass_thenCorrect() { + MyInterface mock = Mockito.mock(MyInterface.class); + when(mock.extractFirstLetters(any(List.class))).thenReturn("a, b, c, d, e"); + assertEquals("a, b, c, d, e", mock.extractFirstLetters(new ArrayList<>())); + } + + @Test + void whenUseAnyListWithTypeParameterInJava7_thenCorrect() { + //Java 7 + MyInterface mock = Mockito.mock(MyInterface.class); + when(mock.extractFirstLetters(ArgumentMatchers. anyList())).thenReturn("a, b, c, d, e"); + assertEquals("a, b, c, d, e", mock.extractFirstLetters(new ArrayList<>())); + } + + @Test + void whenUseAnyList_thenCorrect() { + MyInterface mock = Mockito.mock(MyInterface.class); + when(mock.extractFirstLetters(anyList())).thenReturn("a, b, c, d, e"); + assertEquals("a, b, c, d, e", mock.extractFirstLetters(new ArrayList<>())); + } + + @Test + void whenUseAny_thenCorrect() { + MyInterface mock = Mockito.mock(MyInterface.class); + when(mock.extractFirstLetters(any())).thenReturn("a, b, c, d, e"); + assertEquals("a, b, c, d, e", mock.extractFirstLetters(new ArrayList<>())); + } + +} \ No newline at end of file