From 30d5aab9dd725ff39195e99b421659c365c380dd Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Fr, 26 Aug 2022 17:39:24 +0200
Subject: [PATCH] Junctions hinzugefügt
---
src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java | 37 ++++++++++++
src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java | 19 ++++++
src/main/java/de/gedoplan/seminar/jpa/exercise/domain/JunctionKind.java | 5 +
src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise02Test.java | 62 ++++++++++++++++++++
src/main/java/de/gedoplan/seminar/jpa/exercise/repository/JunctionRepository.java | 11 +++
5 files changed, 134 insertions(+), 0 deletions(-)
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java
new file mode 100644
index 0000000..06bbc01
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java
@@ -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;
+ }
+
+}
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/JunctionKind.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/JunctionKind.java
new file mode 100644
index 0000000..0a0de3a
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/JunctionKind.java
@@ -0,0 +1,5 @@
+package de.gedoplan.seminar.jpa.exercise.domain;
+
+public enum JunctionKind {
+ EXIT, INTERCHANGE
+}
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/repository/JunctionRepository.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/repository/JunctionRepository.java
new file mode 100644
index 0000000..2823448
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/jpa/exercise/repository/JunctionRepository.java
@@ -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> {
+
+}
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java
new file mode 100644
index 0000000..7df8248
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java
@@ -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);
+ }
+}
diff --git a/src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise02Test.java b/src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise02Test.java
new file mode 100644
index 0000000..efa7a05
--- /dev/null
+++ b/src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise02Test.java
@@ -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);
+ }
+}
--
Gitblit v1.7.1