diff --git a/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationTest.java b/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationTest.java new file mode 100644 index 0000000000..8ea46ea0f7 --- /dev/null +++ b/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationTest.java @@ -0,0 +1,117 @@ +package org.baeldung.mockito; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; + +//@RunWith(MockitoJUnitRunner.class) +public class MockitoAnnotationTest { + + @Before + public void init() { + MockitoAnnotations.initMocks(this); + } + + @Test + public void whenNotUseMockAnnotation_thenCorrect() { + final List mockList = Mockito.mock(List.class); + mockList.add("one"); + Mockito.verify(mockList).add("one"); + assertEquals(0, mockList.size()); + + Mockito.when(mockList.size()).thenReturn(100); + assertEquals(100, mockList.size()); + } + + @Mock + List mockedList; + + @Test + public void whenUseMockAnnotation_thenTheSame() { + mockedList.add("one"); + Mockito.verify(mockedList).add("one"); + assertEquals(0, mockedList.size()); + + Mockito.when(mockedList.size()).thenReturn(100); + assertEquals(100, mockedList.size()); + } + + @Test + public void whenNotUseSpyAnnotation_thenCorrect() { + final List spyList = Mockito.spy(new ArrayList()); + spyList.add("one"); + spyList.add("two"); + + Mockito.verify(spyList).add("one"); + Mockito.verify(spyList).add("two"); + + assertEquals(2, spyList.size()); + + Mockito.doReturn(100).when(spyList).size(); + assertEquals(100, spyList.size()); + } + + @Spy + List spiedList = new ArrayList(); + + @Test + public void whenUseSpyAnnotation_thenTheSame() { + spiedList.add("one"); + spiedList.add("two"); + + Mockito.verify(spiedList).add("one"); + Mockito.verify(spiedList).add("two"); + + assertEquals(2, spiedList.size()); + + Mockito.doReturn(100).when(spiedList).size(); + assertEquals(100, spiedList.size()); + } + + @Test + public void whenNotUseCaptorAnnotation_thenCorrect() { + final List mockList = Mockito.mock(List.class); + final ArgumentCaptor arg = ArgumentCaptor.forClass(String.class); + mockList.add("one"); + Mockito.verify(mockList).add(arg.capture()); + + assertEquals("one", arg.getValue()); + } + + @Captor + ArgumentCaptor argCaptor; + + @Test + public void whenUseCaptorAnnotation_thenTheSam() { + mockedList.add("one"); + Mockito.verify(mockedList).add(argCaptor.capture()); + + assertEquals("one", argCaptor.getValue()); + } + + @Mock + Map wordMap; + + @InjectMocks + MyDictionary dic = new MyDictionary(); + + @Test + public void whenUseInjectMocksAnnotation_thenCorrect() { + Mockito.when(wordMap.get("aWord")).thenReturn("aMeaning"); + + assertEquals("aMeaning", dic.getMeaning("aWord")); + } + +} diff --git a/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java b/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java new file mode 100644 index 0000000000..1d18c88372 --- /dev/null +++ b/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java @@ -0,0 +1,22 @@ +package org.baeldung.mockito; + +import java.util.HashMap; +import java.util.Map; + + +public class MyDictionary { + Map wordMap; + + public MyDictionary() { + wordMap = new HashMap(); + } + + public void add(final String word, final String meaning) { + wordMap.put(word, meaning); + } + + public String getMeaning(final String word) { + return wordMap.get(word); + } +} +