From c66917c237c5d5136d9461da09e1f9f9e1b4bce9 Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Fr, 30 Sep 2022 12:09:07 +0200
Subject: [PATCH] exercise
---
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/IngredientService.java | 12 ++++++
src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise09Test.java | 4 -
src/main/java/de/gedoplan/seminar/sbt/di/exercise/logging/LoggerProducer.java | 20 ++++++++++
src/main/java/de/gedoplan/seminar/sbt/di/exercise/domain/Beverage.java | 4 ++
src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise10Test.java | 35 +++++++++++++++++
5 files changed, 72 insertions(+), 3 deletions(-)
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/domain/Beverage.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/domain/Beverage.java
index 601489a..671d2c6 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/domain/Beverage.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/domain/Beverage.java
@@ -22,6 +22,10 @@
this.alcoholPercent = alcoholPercent;
}
+ public String getId() {
+ return id;
+ }
+
public String getName() {
return this.name;
}
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/logging/LoggerProducer.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/logging/LoggerProducer.java
new file mode 100644
index 0000000..2d9a397
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/logging/LoggerProducer.java
@@ -0,0 +1,20 @@
+package de.gedoplan.seminar.sbt.di.exercise.logging;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InjectionPoint;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Scope;
+
+import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_PROTOTYPE;
+
+@Configuration
+public class LoggerProducer {
+
+ @Bean
+ @Scope(SCOPE_PROTOTYPE)
+ public Logger getLogger(InjectionPoint injectionPoint) {
+ return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass());
+ }
+}
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/IngredientService.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/IngredientService.java
new file mode 100644
index 0000000..7163535
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/IngredientService.java
@@ -0,0 +1,12 @@
+package de.gedoplan.seminar.sbt.di.exercise.service;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class IngredientService {
+
+ public boolean isAvailable(String id, double amount) {
+ // Dummy check: Anything but rum is available
+ return !"RUM".equals(id);
+ }
+}
diff --git a/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise09Test.java b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise09Test.java
index 8d30c2c..ee1241c 100644
--- a/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise09Test.java
+++ b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise09Test.java
@@ -13,12 +13,10 @@
@AutoConfigureMockMvc
@SpringBootTest
public class Exercise09Test {
-
@Autowired
MockMvc mockMvc;
-
@Test
- public void testFiltersNonAlcEmpty() throws Exception {
+ public void testMethodCounter() throws Exception {
mockMvc.perform(get("/api/bar/cocktails"))
.andExpect(status().isOk());
diff --git a/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise10Test.java b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise10Test.java
new file mode 100644
index 0000000..8d53158
--- /dev/null
+++ b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise10Test.java
@@ -0,0 +1,35 @@
+package de.gedoplan.seminar.sbt.di.exercise;
+
+import org.junit.jupiter.api.Test;
+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.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@AutoConfigureMockMvc
+@SpringBootTest
+public class Exercise10Test {
+
+ @Autowired
+ MockMvc mockMvc;
+
+ @Test
+ public void test() throws Exception {
+ String location = mockMvc.perform(post("/api/mixer/order"))
+ .andExpect(status().isCreated())
+ .andReturn().getResponse().getHeader("Location");
+
+ mockMvc.perform(post(location+"/kirr"))
+ .andExpect(status().isCreated());
+
+ mockMvc.perform(post(location+"/stdq"))
+ .andExpect(status().isConflict());
+
+ mockMvc.perform(put(location+"/placed"))
+ .andExpect(status().isNoContent());
+ }
+}
--
Gitblit v1.7.1