Hendrik Jungnitsch
2022-08-26 5e828a204ad13cb9b3427c295cbe70e285948593
Tests hinzugefügt
2 Dateien hinzugefügt
3 Dateien geändert
1 Dateien gelöscht
98 ■■■■■ Geänderte Dateien
pom.xml 7 ●●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/java/de/gedoplan/seminar/jpa/exercise/common/LoggerProducer.java 2 ●●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/java/de/gedoplan/seminar/jpa/exercise/rest/HighwayResource.java 10 ●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/resources/application.properties 1 ●●●● Patch | Ansicht | Raw | Blame | Historie
src/main/resources/application.yaml 13 ●●●●● Patch | Ansicht | Raw | Blame | Historie
src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise01Test.java 65 ●●●●● Patch | Ansicht | Raw | Blame | Historie
pom.xml
@@ -32,6 +32,13 @@
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
src/main/java/de/gedoplan/seminar/jpa/exercise/common/LoggerProducer.java
@@ -5,11 +5,13 @@
import org.springframework.beans.factory.InjectionPoint;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
@Configuration
public class LoggerProducer {
    @Bean
    @Scope("prototype")
    Logger getLogger(InjectionPoint ip) {
        return LoggerFactory.getLogger(ip.getMember().getDeclaringClass());
    }
src/main/java/de/gedoplan/seminar/jpa/exercise/rest/HighwayResource.java
@@ -21,15 +21,9 @@
import de.gedoplan.seminar.jpa.exercise.repository.HighwayRepository;
@RequestMapping(path = "exercise/highways", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(path = "/highways", produces = MediaType.APPLICATION_JSON_VALUE)
public class HighwayResource {
  // Some test data
  private Highway testHighwayA1_DO_K = new Highway(4610, "A1", "Dortmund", "Cologne");
  private Highway testHighwayA2_DO_H = new Highway(4711, "A2", "Dortmund", "Hannover");
  private Highway testHighwayA33_BI_PB = new Highway(4812, "A33", "Bielefeld", "Paderborn");
  private List<Highway> testHighways = List.of(this.testHighwayA1_DO_K, this.testHighwayA2_DO_H, this.testHighwayA33_BI_PB );
  private final HighwayRepository highwayRepository;
  private final Logger logger;
@@ -49,7 +43,7 @@
    
    // this.highwayRepository.
    this.logger.debug("Inserted: " + testHighways);
    this.logger.debug("Inserted: " + highway);
  }
  /**
src/main/resources/application.properties
Datei wurde gelöscht
src/main/resources/application.yaml
Neue Datei
@@ -0,0 +1,13 @@
spring:
  datasource:
    url: jdbc:h2:mem:seminar
    username: seminar
    password: seminar
    driverClassName: org.h2.Driver
  jpa:
    hibernate:
      ddl-auto: update
logging:
  level:
    '[de.gedoplan.seminar]': debug
src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise01Test.java
Neue Datei
@@ -0,0 +1,65 @@
package de.gedoplan.seminar.jpa.exercise;
import static org.junit.jupiter.params.provider.Arguments.arguments;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.util.stream.Stream;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.gedoplan.seminar.jpa.exercise.domain.Highway;
@AutoConfigureMockMvc
@SpringBootTest
public class Exercise01Test {
    // Some test data
    private Highway testHighwayA1_DO_K = new Highway(4610, "A1", "Dortmund", "Cologne");
    private Highway testHighwayA2_DO_H = new Highway(4711, "A2", "Dortmund", "Hannover");
    private Highway testHighwayA33_BI_PB = new Highway(4812, "A33", "Bielefeld", "Paderborn");
    @Autowired
    MockMvc mockMvc;
    @Autowired
    private ObjectMapper mapper;
    @Test
    @MethodSource("getTestHighways")
    void testInsert() throws Exception {
        mockMvc.perform(post("/highways")
                .contentType(MediaType.APPLICATION_JSON)
                .content(mapper.writeValueAsString(testHighwayA1_DO_K)))
            .andExpect(status().isOk());
    }
    @Test
    @MethodSource("getTestDataFindById")
    void testFindById(Integer id, String name) throws Exception {
        mockMvc.perform(post("/highways/{id}",id))
            .andExpect(jsonPath("$.name").value(name));
    }
    private Stream<Highway> getTestHighways() {
        return Stream.of(this.testHighwayA1_DO_K, this.testHighwayA2_DO_H,
                this.testHighwayA33_BI_PB);
    }
    private Stream<Arguments> getTestDataFindById() {
        return Stream.of(
                arguments(4711,"A2"),
                arguments(4812, "A33"));
    }
}