| src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java | ●●●●● Patch | Ansicht | Raw | Blame | Historie | |
| src/main/java/de/gedoplan/seminar/jpa/exercise/domain/JunctionKind.java | ●●●●● Patch | Ansicht | Raw | Blame | Historie | |
| src/main/java/de/gedoplan/seminar/jpa/exercise/repository/JunctionRepository.java | ●●●●● Patch | Ansicht | Raw | Blame | Historie | |
| src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java | ●●●●● Patch | Ansicht | Raw | Blame | Historie | |
| src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise02Test.java | ●●●●● Patch | Ansicht | Raw | Blame | Historie |
src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java
Neue Datei @@ -0,0 +1,19 @@ package de.gedoplan.seminar.jpa.exercise.domain; public class Junction { private Integer id; private String name; private JunctionKind kind; private String no; public Junction(String name, JunctionKind kind, String no) { this.name = name; this.kind = kind; this.no = no; } } src/main/java/de/gedoplan/seminar/jpa/exercise/domain/JunctionKind.java
Neue Datei @@ -0,0 +1,5 @@ package de.gedoplan.seminar.jpa.exercise.domain; public enum JunctionKind { EXIT, INTERCHANGE } src/main/java/de/gedoplan/seminar/jpa/exercise/repository/JunctionRepository.java
Neue Datei @@ -0,0 +1,11 @@ package de.gedoplan.seminar.jpa.exercise.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import de.gedoplan.seminar.jpa.exercise.domain.Junction; @Repository public interface JunctionRepository extends JpaRepository<Junction, Integer> { } src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java
Neue Datei @@ -0,0 +1,37 @@ package de.gedoplan.seminar.jpa.exercise.rest; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import de.gedoplan.seminar.jpa.exercise.domain.Junction; import de.gedoplan.seminar.jpa.exercise.repository.JunctionRepository; @RestController @RequestMapping("/junctions") public class JunctionResource { @Autowired Logger logger; @Autowired JunctionRepository junctionRepository; /** * Exercise JPA_BASICS_02: Insert test data. */ @PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE) public void insert(@RequestBody Junction junction) { this.logger.debug("----- insert -----"); this.junctionRepository.save(junction); this.logger.debug("Inserted: " + junction); } } src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise02Test.java
Neue Datei @@ -0,0 +1,62 @@ package de.gedoplan.seminar.jpa.exercise; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.util.stream.Stream; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.params.ParameterizedTest; 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; import de.gedoplan.seminar.jpa.exercise.domain.Junction; import de.gedoplan.seminar.jpa.exercise.domain.JunctionKind; @TestMethodOrder(MethodOrderer.MethodName.class) @AutoConfigureMockMvc @SpringBootTest public class Exercise02Test { // Sample junctions // ... of A1 private static Junction testJunctionSchwerte = new Junction("Schwerte", JunctionKind.EXIT, "85"); private static Junction testJunctionKreuzWesthofen = new Junction("Westhofener Kreuz", JunctionKind.INTERCHANGE, "86"); private static Junction testJunctionHagenNord = new Junction("Hagen-Nord", JunctionKind.EXIT, "87"); // ... of A2 private static Junction testJunctionHerfordBadSalzuflen = new Junction("Herford/Bad Salzuflen", JunctionKind.EXIT, "29"); private static Junction testJunctionBielefeldOst = new Junction("Bielefeld-Ost", JunctionKind.EXIT, "27"); private static Junction testJunctionOWL = new Junction("Ostwestfalen/Lippe", JunctionKind.EXIT, "28"); // ... of A33 private static Junction testJunctionPaderbornZentrum = new Junction("Paderborn-Zentrum", JunctionKind.EXIT, "17"); @Autowired MockMvc mockMvc; @Autowired private ObjectMapper mapper; @ParameterizedTest @MethodSource("getTestJunctions") void test01_insert(Junction junction) throws Exception { mockMvc.perform( post("/junctions").contentType(MediaType.APPLICATION_JSON).content(mapper.writeValueAsString(junction))) .andExpect(status().isOk()); } private static Stream<Junction> getTestJunctions() { return Stream.of(testJunctionSchwerte, testJunctionKreuzWesthofen, testJunctionHagenNord, testJunctionHerfordBadSalzuflen, testJunctionBielefeldOst, testJunctionOWL, testJunctionPaderbornZentrum); } }