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