Mercurial > hg > SpringPlayground
annotate spring-boot-playground/src/test/java/de/comline/spring/service/MovieServiceTest.java @ 6:d57d0c6a841b
Einbau von liquibase zum Erzeugen des Schemas
author | Dirk Olmes <dirk.olmes@codedo.de> |
---|---|
date | Thu, 13 Aug 2020 16:18:20 +0200 |
parents | 227f3105fedd |
children |
rev | line source |
---|---|
5
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
1 package de.comline.spring.service; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
2 |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
3 import static org.hamcrest.MatcherAssert.assertThat; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
4 import static org.hamcrest.Matchers.is; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
5 import static org.mockito.ArgumentMatchers.any; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
6 import static org.mockito.Mockito.mock; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
7 import static org.mockito.Mockito.when; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
8 |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
9 import org.junit.jupiter.api.DisplayName; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
10 import org.junit.jupiter.api.Test; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
11 import org.springframework.beans.factory.annotation.Autowired; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
12 import org.springframework.boot.test.context.SpringBootTest; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
13 import org.springframework.context.annotation.Bean; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
14 import org.springframework.context.annotation.Configuration; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
15 |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
16 import de.comline.spring.entity.Movie; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
17 import de.comline.spring.repository.MovieRepository; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
18 import de.comline.spring.service.MovieServiceTest.TestConfig; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
19 |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
20 @SpringBootTest(classes = { |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
21 MovieService.class, |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
22 TestConfig.class |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
23 }) |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
24 public class MovieServiceTest { |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
25 @Autowired |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
26 private MovieService service; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
27 |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
28 @Test |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
29 @DisplayName("Test with a mock movie repository") |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
30 void withMockRepository() { |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
31 String title = "the-movie-title"; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
32 |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
33 Movie movie = service.createMovie(title); |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
34 assertThat(movie.getTitle(), is(title)); |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
35 } |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
36 |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
37 @Configuration |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
38 static class TestConfig { |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
39 @Bean |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
40 MovieRepository createMockRepository() { |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
41 MovieRepository mockRepository = mock(MovieRepository.class); |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
42 when(mockRepository.save(any())).thenAnswer(invocation -> { |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
43 return invocation.getArgument(0); |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
44 }); |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
45 return mockRepository; |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
46 } |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
47 } |
227f3105fedd
Erster Unit Test, der das repository einfach nur mockt
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff
changeset
|
48 } |