annotate spring-boot-playground/src/test/java/de/comline/spring/service/MovieServiceTestWithInMemoryDatabase.java @ 10:29e2e914c4cd

Verschieben der Datenbank ins target Verzeichnis, damit das Home Verzeichnis nicht vollgemuellt wird
author Dirk Olmes <dirk.olmes@codedo.de>
date Thu, 13 Aug 2020 17:17:45 +0200
parents 7ce4367b50bc
children f3f9102ef7c0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
1 package de.comline.spring.service;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
2
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
3 import static org.hamcrest.MatcherAssert.assertThat;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
4 import static org.hamcrest.Matchers.is;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
5 import static org.junit.jupiter.api.Assertions.assertTrue;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
6
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
7 import org.junit.jupiter.api.DisplayName;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
8 import org.junit.jupiter.api.Test;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
9 import org.springframework.beans.factory.annotation.Autowired;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
10 import org.springframework.boot.autoconfigure.domain.EntityScan;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
11 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
12 import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
13 import org.springframework.boot.test.context.SpringBootTest;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
14 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
15
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
16 import de.comline.spring.entity.Movie;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
17
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
18 @SpringBootTest(classes = {
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
19 DataSourceAutoConfiguration.class,
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
20 HibernateJpaAutoConfiguration.class,
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
21 MovieService.class,
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
22 })
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
23 @EnableJpaRepositories("de.comline.spring.repository")
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
24 @EntityScan("de.comline.spring.entity")
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
25 public class MovieServiceTestWithInMemoryDatabase {
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
26 @Autowired
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
27 private MovieService service;
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
28
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
29 @Test
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
30 @DisplayName("Test with a real movie repository")
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
31 void withRealRepository() {
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
32 String title = "the-movie-title";
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
33
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
34 Movie movie = service.createMovie(title);
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
35 assertThat(movie.getTitle(), is(title));
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
36 assertTrue(movie.getId() > 0);
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
37 }
7ce4367b50bc Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
Dirk Olmes <dirk.olmes@codedo.de>
parents:
diff changeset
38 }