diff --git a/MvnDemo/pom.xml b/MvnDemo/pom.xml
index 726fff5..ff50a2b 100644
--- a/MvnDemo/pom.xml
+++ b/MvnDemo/pom.xml
@@ -27,6 +27,13 @@
test
+
+ org.mockito
+ mockito-core
+ 5.17.0
+ test
+
+
org.apache.logging.log4j
log4j-core
@@ -66,7 +73,8 @@
- de.hs_mannheim.informatik.mvn.Main
+
+ de.hs_mannheim.informatik.mvn.Main
@@ -120,7 +128,8 @@
-
+
org.apache.maven.plugins
maven-javadoc-plugin
diff --git a/MvnDemo/src/main/java/de/hs_mannheim/informatik/mvn/mocking/CountWords.java b/MvnDemo/src/main/java/de/hs_mannheim/informatik/mvn/mocking/CountWords.java
new file mode 100644
index 0000000..d1606a8
--- /dev/null
+++ b/MvnDemo/src/main/java/de/hs_mannheim/informatik/mvn/mocking/CountWords.java
@@ -0,0 +1,28 @@
+package de.hs_mannheim.informatik.mvn.mocking;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class CountWords {
+
+ public static void main(String[] args) {
+ var cnt = new CountWords().countWords("Der schnelle braune Fuchs springt über den mueden Hund. Der Hund liegt nur muede herum.");
+ cnt.entrySet().stream().forEach(e -> System.out.println(e.getKey() + ": " + e.getValue()));
+ }
+
+ public Map countWords(String text) {
+ var words = text.toLowerCase().split("\\W+");
+ var cnt = new HashMap();
+
+ for (String w : words) {
+ cnt.put(w, cnt.getOrDefault(w, 0) + 1);
+ }
+
+ return cnt;
+ }
+
+ public Map countWordsFromFile(TextExtractor te, String path) {
+ return this.countWords(te.extractText(path));
+ }
+
+}
diff --git a/MvnDemo/src/main/java/de/hs_mannheim/informatik/mvn/mocking/TextExtractor.java b/MvnDemo/src/main/java/de/hs_mannheim/informatik/mvn/mocking/TextExtractor.java
new file mode 100644
index 0000000..e52a97e
--- /dev/null
+++ b/MvnDemo/src/main/java/de/hs_mannheim/informatik/mvn/mocking/TextExtractor.java
@@ -0,0 +1,5 @@
+package de.hs_mannheim.informatik.mvn.mocking;
+
+public abstract class TextExtractor {
+ public abstract String extractText(String path);
+}
diff --git a/MvnDemo/src/test/java/de/hs_mannheim/informatik/mvn/mocking/TextExtractorTest.java b/MvnDemo/src/test/java/de/hs_mannheim/informatik/mvn/mocking/TextExtractorTest.java
new file mode 100644
index 0000000..85d3664
--- /dev/null
+++ b/MvnDemo/src/test/java/de/hs_mannheim/informatik/mvn/mocking/TextExtractorTest.java
@@ -0,0 +1,37 @@
+package de.hs_mannheim.informatik.mvn.mocking;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+class TextExtractorTest {
+
+ @Test
+ void testCountWords() {
+ CountWords cw = new CountWords();
+ var cnt = cw.countWords("hallo welt");
+
+ assertEquals(1, cnt.get("hallo"));
+ assertEquals(1, cnt.get("welt"));
+
+ assertEquals(null, cnt.get("unbekannt"));
+ }
+
+ @Test
+ void testCountWordsFromFile() {
+ CountWords cw = new CountWords();
+
+ TextExtractor teMock = Mockito.mock(TextExtractor.class);
+ when(teMock.extractText("/tmp/test.pdf")).thenReturn("hallo welt");
+
+ var cnt = cw.countWordsFromFile(teMock, "/tmp/test.pdf");
+
+ assertEquals(1, cnt.get("hallo"));
+ assertEquals(1, cnt.get("welt"));
+
+ assertEquals(null, cnt.get("unbekannt"));
+ }
+
+}