From eb52fa6497b79c97f876857340b6e9873f80843e Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Mi, 28 Sep 2022 15:17:27 +0200
Subject: [PATCH] exercise
---
src/main/java/de/gedoplan/seminar/sbt/di/exercise/repository/BeverageRepository.java | 9 +++
src/main/java/de/gedoplan/seminar/sbt/di/exercise/init/DBInit.java | 94 +++++++++++++++++++++++++++++++
src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise05Test.java | 33 +++++++++++
src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise04Test.java | 31 ++++++++++
4 files changed, 167 insertions(+), 0 deletions(-)
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/init/DBInit.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/init/DBInit.java
new file mode 100644
index 0000000..5c70aba
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/init/DBInit.java
@@ -0,0 +1,94 @@
+package de.gedoplan.seminar.sbt.di.exercise.init;
+
+import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail;
+import de.gedoplan.seminar.sbt.di.exercise.domain.CocktailSamples;
+import de.gedoplan.seminar.sbt.di.exercise.repository.BeverageRepository;
+import de.gedoplan.seminar.sbt.di.exercise.repository.CocktailRepository;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.text.ParseException;
+import java.util.List;
+
+import static de.gedoplan.seminar.sbt.di.exercise.domain.CocktailSamples.*;
+
+@Component
+public class DBInit {
+
+ private final CocktailRepository cocktailRepository;
+ private final BeverageRepository beverageRepository;
+
+ public DBInit(CocktailRepository cocktailRepository, BeverageRepository beverageRepository) {
+ this.cocktailRepository = cocktailRepository;
+ this.beverageRepository = beverageRepository;
+ }
+
+ @PostConstruct
+ public void dbInit() throws ParseException {
+
+ beverageRepository.saveAll(CocktailSamples.BEVERAGES);
+
+ cocktailRepository.saveAll(CocktailSamples.COCKTAILS);
+
+ cocktailRepository.saveAll(List.of(Cocktail.builder("3HKS", "3 Holy Kings")
+ .ingredient(RUM, 3)
+ .ingredient(BRANDY, 2)
+ .ingredient(LIMEJUICE, 2)
+ .ingredient(HONEY, 2)
+ .ingredient(CLOVE, 1)
+ .ingredient(PIMENTO, 1)
+ .build(),
+ Cocktail.builder("ACRM", "Apple Crumple")
+ .ingredient(VODKA, 5)
+ .ingredient(CARAMELSYRUP, 2)
+ .ingredient(CINNAMON, 1)
+ .ingredient(LEMONJUICE, 1)
+ .ingredient(APPLEJUICE, 10)
+ .build(),
+ Cocktail.builder("ALTW", "Apple Lemon Twister")
+ .ingredient(MINERALWATER, 10)
+ .ingredient(APPLEJUICE, 5)
+ .ingredient(LIMEJUICE, 5)
+ .build(),
+ Cocktail.builder("CFRD", "Casual Friday")
+ .ingredient(VODKA, 3)
+ .ingredient(LIMEJUICE, 2)
+ .ingredient(APPLEJUICE, 10)
+ .ingredient(GHERKIN, 1)
+ .build(),
+ Cocktail.builder("EBFR", "Erdbeer Frappé")
+ .ingredient(MILK, 10)
+ .ingredient(STRAWBERRYPURREE, 2)
+ .ingredient(SUGAR, 1)
+ .ingredient(VANILLA, 1)
+ .build(),
+ Cocktail.builder("GINT", "Gin Tonic")
+ .ingredient(GIN, 5)
+ .ingredient(TONICWATER, 5)
+ .build(),
+ Cocktail.builder("HLSB", "Hells Bells")
+ .ingredient(BATIDA, 4)
+ .ingredient(CARAMELSYRUP, 2)
+ .ingredient(MILK, 8)
+ .ingredient(STRAWBERRYPURREE, 4)
+ .build(),
+ Cocktail.builder("PKDL", "Pink Dolly")
+ .ingredient(VODKA, 4)
+ .ingredient(ORANGEJUICE, 8)
+ .ingredient(PINEAPPLEJUICE, 4)
+ .ingredient(GRENADINE, 1)
+ .ingredient(CREAM, 3)
+ .ingredient(COCOSYRUP, 0.2)
+ .build(),
+ Cocktail.builder("WTRZ", "Winterzauber")
+ .ingredient(RUM, 1)
+ .ingredient(REDWINE, 15)
+ .ingredient(CINNAMON, 1)
+ .ingredient(SUGAR, 10)
+ .ingredient(ORANGEJUICE, 2)
+ .ingredient(LIMEJUICE, 0.5)
+ .ingredient(APPLEJUICE, 2)
+ .build()));
+
+ }
+}
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/repository/BeverageRepository.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/repository/BeverageRepository.java
new file mode 100644
index 0000000..57697c8
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/repository/BeverageRepository.java
@@ -0,0 +1,9 @@
+package de.gedoplan.seminar.sbt.di.exercise.repository;
+
+import de.gedoplan.seminar.sbt.di.exercise.domain.Beverage;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface BeverageRepository extends JpaRepository<Beverage, String> {
+}
diff --git a/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise04Test.java b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise04Test.java
new file mode 100644
index 0000000..f443ecd
--- /dev/null
+++ b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise04Test.java
@@ -0,0 +1,31 @@
+package de.gedoplan.seminar.sbt.di.exercise;
+
+import de.gedoplan.seminar.sbt.di.exercise.domain.CocktailSamples;
+import de.gedoplan.seminar.sbt.di.exercise.service.CocktailService;
+import org.assertj.core.api.Assertions;
+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.hamcrest.CoreMatchers.is;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+
+@AutoConfigureMockMvc
+@SpringBootTest
+public class Exercise04Test {
+
+ @Autowired
+ CocktailService cocktailService;
+
+ @Autowired
+ MockMvc mockMvc;
+
+ @Test
+ public void test() throws Exception {
+ mockMvc.perform(get("/bar/cocktails"))
+ .andExpect(jsonPath("$.size()",is(13)));
+ }
+}
diff --git a/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise05Test.java b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise05Test.java
new file mode 100644
index 0000000..036db42
--- /dev/null
+++ b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise05Test.java
@@ -0,0 +1,33 @@
+package de.gedoplan.seminar.sbt.di.exercise;
+
+import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail;
+import de.gedoplan.seminar.sbt.di.exercise.domain.CocktailSamples;
+import org.assertj.core.api.Assertions;
+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 java.util.List;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+
+@AutoConfigureMockMvc
+@SpringBootTest
+public class Exercise05Test {
+
+ @Autowired
+ List<Cocktail> cocktails;
+
+ @Autowired
+ MockMvc mockMvc;
+
+ @Test
+ public void test() throws Exception {
+ mockMvc.perform(get("/bar/cocktails"))
+ .andExpect(jsonPath("$.size()",is(13)));
+ }
+}
--
Gitblit v1.7.1