From 5e828a204ad13cb9b3427c295cbe70e285948593 Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Fr, 26 Aug 2022 16:11:32 +0200
Subject: [PATCH] Tests hinzugefügt

---
 src/main/java/de/gedoplan/seminar/jpa/exercise/common/LoggerProducer.java |    2 +
 /dev/null                                                                 |    1 
 src/main/java/de/gedoplan/seminar/jpa/exercise/rest/HighwayResource.java  |   10 +----
 pom.xml                                                                   |    7 +++
 src/main/resources/application.yaml                                       |   13 ++++++
 src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise01Test.java        |   65 ++++++++++++++++++++++++++++++++
 6 files changed, 89 insertions(+), 9 deletions(-)

diff --git a/pom.xml b/pom.xml
index b84831b..a57d9e7 100644
--- a/pom.xml
+++ b/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>
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/common/LoggerProducer.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/common/LoggerProducer.java
index 61d004c..9dce618 100644
--- a/src/main/java/de/gedoplan/seminar/jpa/exercise/common/LoggerProducer.java
+++ b/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());
 	}
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/HighwayResource.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/HighwayResource.java
index b4afdf0..e432796 100644
--- a/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/HighwayResource.java
+++ b/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);
   }
 
   /**
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
deleted file mode 100644
index 8b13789..0000000
--- a/src/main/resources/application.properties
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml
new file mode 100644
index 0000000..5a70f09
--- /dev/null
+++ b/src/main/resources/application.yaml
@@ -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
\ No newline at end of file
diff --git a/src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise01Test.java b/src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise01Test.java
new file mode 100644
index 0000000..a4129bc
--- /dev/null
+++ b/src/test/java/de/gedoplan/seminar/jpa/exercise/Exercise01Test.java
@@ -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"));
+	}
+
+}

--
Gitblit v1.7.1