diff --git a/mockito-mocks-spring-beans/.gitignore b/mockito-mocks-spring-beans/.gitignore new file mode 100644 index 0000000000..83c05e60c8 --- /dev/null +++ b/mockito-mocks-spring-beans/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/mockito-mocks-spring-beans/pom.xml b/mockito-mocks-spring-beans/pom.xml new file mode 100644 index 0000000000..5d4fdf069f --- /dev/null +++ b/mockito-mocks-spring-beans/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + org.baeldung + mockito-mocks-spring-beans + 0.0.1-SNAPSHOT + jar + + mocks + Injecting Mockito Mocks into Spring Beans + + + org.springframework.boot + spring-boot-starter-parent + 1.3.1.RELEASE + + + + + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter + 1.3.1.RELEASE + + + org.springframework.boot + spring-boot-starter-test + 1.3.1.RELEASE + test + + + org.mockito + mockito-all + 1.10.19 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/mockito-mocks-spring-beans/src/main/java/org/baeldung/MocksApplication.java b/mockito-mocks-spring-beans/src/main/java/org/baeldung/MocksApplication.java new file mode 100644 index 0000000000..08c3580382 --- /dev/null +++ b/mockito-mocks-spring-beans/src/main/java/org/baeldung/MocksApplication.java @@ -0,0 +1,11 @@ +package org.baeldung; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MocksApplication { + public static void main(String[] args) { + SpringApplication.run(MocksApplication.class, args); + } +} diff --git a/mockito-mocks-spring-beans/src/main/java/org/baeldung/NameService.java b/mockito-mocks-spring-beans/src/main/java/org/baeldung/NameService.java new file mode 100644 index 0000000000..2b755692fc --- /dev/null +++ b/mockito-mocks-spring-beans/src/main/java/org/baeldung/NameService.java @@ -0,0 +1,10 @@ +package org.baeldung; + +import org.springframework.stereotype.Service; + +@Service +public class NameService { + public String getUserName(String id) { + return "Baeldung"; + } +} diff --git a/mockito-mocks-spring-beans/src/main/java/org/baeldung/UserService.java b/mockito-mocks-spring-beans/src/main/java/org/baeldung/UserService.java new file mode 100644 index 0000000000..e9ca7b3206 --- /dev/null +++ b/mockito-mocks-spring-beans/src/main/java/org/baeldung/UserService.java @@ -0,0 +1,19 @@ +package org.baeldung; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + + private NameService nameService; + + @Autowired + public UserService(NameService nameService) { + this.nameService = nameService; + } + + public String getUserName(String id) { + return nameService.getUserName(id); + } +} diff --git a/mockito-mocks-spring-beans/src/main/resources/application.properties b/mockito-mocks-spring-beans/src/main/resources/application.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mockito-mocks-spring-beans/src/test/java/org/baeldung/NameServiceTestConfiguration.java b/mockito-mocks-spring-beans/src/test/java/org/baeldung/NameServiceTestConfiguration.java new file mode 100644 index 0000000000..0f26d9055d --- /dev/null +++ b/mockito-mocks-spring-beans/src/test/java/org/baeldung/NameServiceTestConfiguration.java @@ -0,0 +1,17 @@ +package org.baeldung; + +import org.mockito.Mockito; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Profile("test") +@Configuration +public class NameServiceTestConfiguration { + @Bean + @Primary + public NameService nameService() { + return Mockito.mock(NameService.class); + } +} diff --git a/mockito-mocks-spring-beans/src/test/java/org/baeldung/UserServiceTest.java b/mockito-mocks-spring-beans/src/test/java/org/baeldung/UserServiceTest.java new file mode 100644 index 0000000000..09ef244147 --- /dev/null +++ b/mockito-mocks-spring-beans/src/test/java/org/baeldung/UserServiceTest.java @@ -0,0 +1,31 @@ +package org.baeldung; + +import org.junit.Assert; +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.SpringApplicationConfiguration; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@ActiveProfiles("test") +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = MocksApplication.class) +public class UserServiceTest { + + @Autowired + private UserService userService; + + @Autowired + private NameService nameService; + + @Test + public void whenUserIdIsProvided_thenRetrievedNameIsCorrect() { + Mockito.when(nameService.getUserName("SomeId")).thenReturn("Baeldung"); + + String testName = userService.getUserName("SomeId"); + + Assert.assertEquals("Baeldung", testName); + } +} \ No newline at end of file