diff --git a/testing-modules/spring-mockito/pom.xml b/testing-modules/spring-mockito/pom.xml index 117da9478e..36504ab306 100644 --- a/testing-modules/spring-mockito/pom.xml +++ b/testing-modules/spring-mockito/pom.xml @@ -26,6 +26,9 @@ mockito-core ${mockito.version} + + org.projectlombok + lombok + - \ No newline at end of file diff --git a/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/DataProvider.java b/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/DataProvider.java new file mode 100644 index 0000000000..303cd6f7cf --- /dev/null +++ b/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/DataProvider.java @@ -0,0 +1,17 @@ +package com.baeldung.runners; + +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Component +public class DataProvider { + + private final List memory = Stream.of("baeldung", "java", "dummy").collect(Collectors.toList()); + + public Stream getValues() { + return memory.stream(); + } +} diff --git a/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/StringConverter.java b/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/StringConverter.java new file mode 100644 index 0000000000..0ed34cab08 --- /dev/null +++ b/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/StringConverter.java @@ -0,0 +1,22 @@ +package com.baeldung.runners; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class StringConverter { + + private final DataProvider dataProvider; + + @Autowired + public StringConverter(DataProvider dataProvider) { + this.dataProvider = dataProvider; + } + + public List convert() { + return dataProvider.getValues().map(String::toUpperCase).collect(Collectors.toList()); + } +} diff --git a/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/StringConverterStarter.java b/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/StringConverterStarter.java new file mode 100644 index 0000000000..6244d9bfa7 --- /dev/null +++ b/testing-modules/spring-mockito/src/main/java/com/baeldung/runners/StringConverterStarter.java @@ -0,0 +1,11 @@ +package com.baeldung.runners; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class StringConverterStarter { + public static void main(String[] args) { + SpringApplication.run(StringConverterStarter.class, args); + } +} diff --git a/testing-modules/spring-mockito/src/main/resources/application.properties b/testing-modules/spring-mockito/src/main/resources/application.properties index 709574239b..0cae63ed98 100644 --- a/testing-modules/spring-mockito/src/main/resources/application.properties +++ b/testing-modules/spring-mockito/src/main/resources/application.properties @@ -1 +1,2 @@ -spring.main.allow-bean-definition-overriding=true \ No newline at end of file +spring.main.allow-bean-definition-overriding=true +spring.main.web-application-type=none \ No newline at end of file diff --git a/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterMockitoRunnerUnitTest.java b/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterMockitoRunnerUnitTest.java new file mode 100644 index 0000000000..80b8a8bdbb --- /dev/null +++ b/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterMockitoRunnerUnitTest.java @@ -0,0 +1,30 @@ +package com.baeldung.runners; + +import lombok.val; +import org.assertj.core.api.Assertions; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.stream.Stream; + +@RunWith(MockitoJUnitRunner.class) +public class StringConverterMockitoRunnerUnitTest { + @Mock + private DataProvider dataProvider; + + @InjectMocks + private StringConverter stringConverter; + + @Test + public void givenStrings_whenConvert_thenReturnUpperCase() { + Mockito.when(dataProvider.getValues()).thenReturn(Stream.of("first", "second")); + + val result = stringConverter.convert(); + + Assertions.assertThat(result).contains("FIRST", "SECOND"); + } +} \ No newline at end of file diff --git a/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterSpringRunnerUnitTest.java b/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterSpringRunnerUnitTest.java new file mode 100644 index 0000000000..4408cd71ca --- /dev/null +++ b/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterSpringRunnerUnitTest.java @@ -0,0 +1,32 @@ +package com.baeldung.runners; + +import lombok.val; +import org.assertj.core.api.Assertions; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.stream.Stream; + +@ContextConfiguration(classes = StringConverter.class) +@RunWith(SpringRunner.class) +public class StringConverterSpringRunnerUnitTest { + @MockBean + private DataProvider dataProvider; + + @Autowired + private StringConverter stringConverter; + + @Test + public void givenStrings_whenConvert_thenReturnUpperCase() { + Mockito.when(dataProvider.getValues()).thenReturn(Stream.of("first", "second")); + + val result = stringConverter.convert(); + + Assertions.assertThat(result).contains("FIRST", "SECOND"); + } +} \ No newline at end of file diff --git a/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterWithInitUnitTest.java b/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterWithInitUnitTest.java new file mode 100644 index 0000000000..a41fa20ca0 --- /dev/null +++ b/testing-modules/spring-mockito/src/test/java/com/baeldung/runners/StringConverterWithInitUnitTest.java @@ -0,0 +1,37 @@ +package com.baeldung.runners; + +import lombok.val; +import org.assertj.core.api.Assertions; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + +import java.util.stream.Stream; + +public class StringConverterWithInitUnitTest { + @Mock + private DataProvider dataProvider; + + @InjectMocks + private StringConverter stringConverter; + + @Before + public void init() { + MockitoAnnotations.openMocks(this); + // or + // dataProvider = Mockito.mock(DataProvider.class); + // stringConverter = new StringConverter(dataProvider); + } + + @Test + public void givenStrings_whenConvert_thenReturnUpperCase() { + Mockito.when(dataProvider.getValues()).thenReturn(Stream.of("first", "second")); + + val result = stringConverter.convert(); + + Assertions.assertThat(result).contains("FIRST", "SECOND"); + } +} \ No newline at end of file