From cf7db3574c67340fd6f7702fae91789f4f7ad7dd Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Mi, 28 Sep 2022 18:08:34 +0200
Subject: [PATCH] exercise

---
 src/main/java/de/gedoplan/seminar/sbt/di/exercise/domain/Beverage.java |   14 +++++++
 src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise07Test.java  |   51 +++++++++++++++++++++++++
 2 files changed, 65 insertions(+), 0 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 02ff5f0..601489a 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
@@ -1,6 +1,7 @@
 package de.gedoplan.seminar.sbt.di.exercise.domain;
 
 import javax.persistence.*;
+import java.util.Objects;
 
 @Entity
 @Access(AccessType.FIELD)
@@ -33,6 +34,19 @@
   }
 
   @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+    Beverage beverage = (Beverage) o;
+    return id.equals(beverage.id);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(id);
+  }
+
+  @Override
   public String toString() {
     return "Beverage{" +
             "id='" + id + '\'' +
diff --git a/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise07Test.java b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise07Test.java
new file mode 100644
index 0000000..61e5bb0
--- /dev/null
+++ b/src/test/java/de/gedoplan/seminar/sbt/di/exercise/Exercise07Test.java
@@ -0,0 +1,51 @@
+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 de.gedoplan.seminar.sbt.di.exercise.repository.CocktailRepository;
+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 java.util.function.Predicate;
+
+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.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+
+@AutoConfigureMockMvc
+@SpringBootTest
+public class Exercise07Test {
+
+    @Autowired
+    List<Cocktail> cocktails;
+
+    @Autowired
+    private List<Predicate<Cocktail>> filters;
+
+    @Autowired
+    MockMvc mockMvc;
+
+    @Test
+    public void testFiltersFound() throws Exception {
+        Assertions.assertThat(filters).hasSize(2);
+    }
+
+    @Test
+    public void testFiltersNonAlcEmpty() throws Exception {
+        mockMvc.perform(get("/bar/nonalc"))
+                .andExpect(content().string(""));
+    }
+
+    @Test
+    public void testFiltersAlc() throws Exception {
+        mockMvc.perform(get("/bar/alc"))
+                .andExpect(jsonPath("$.size()",is(9)));
+    }
+
+}

--
Gitblit v1.7.1