From 2ec7b62c30a97cceb915c26ff6065111e428d52f Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Mon, 4 Nov 2024 09:34:05 +0100
Subject: [PATCH] #1 init: Copy muk-postfach application config

---
 src/main/resources/application-itcase.yml     |  9 +++
 src/main/resources/application-local.yml      | 11 ++++
 src/main/resources/application.yml            |  3 +
 src/main/resources/log4j2-local.xml           | 33 +++++++++++
 src/main/resources/users.yml                  | 10 ++++
 .../osi/OsiPostfachRemoteServiceTest.java     | 58 +++++++++++++++++++
 src/test/resources/application-itcase.yml     |  9 +++
 7 files changed, 133 insertions(+)
 create mode 100644 src/main/resources/application-itcase.yml
 create mode 100644 src/main/resources/application-local.yml
 create mode 100644 src/main/resources/application.yml
 create mode 100644 src/main/resources/log4j2-local.xml
 create mode 100644 src/main/resources/users.yml
 create mode 100644 src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachRemoteServiceTest.java
 create mode 100644 src/test/resources/application-itcase.yml

diff --git a/src/main/resources/application-itcase.yml b/src/main/resources/application-itcase.yml
new file mode 100644
index 0000000..8e4ad25
--- /dev/null
+++ b/src/main/resources/application-itcase.yml
@@ -0,0 +1,9 @@
+ozgcloud:
+  muk:
+    server: http://localhost:8089
+logging:
+  level:
+    de.ozgcloud.MukPostfachApplication: DEBUG
+    de.ozgcloud.de.ozgcloud.nachrichten.postfach.muk.RestLoggingInterceptor: DEBUG
+    org.springframework.http: DEBUG
+    org.springframework.web.client: DEBUG
\ No newline at end of file
diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml
new file mode 100644
index 0000000..75a34ec
--- /dev/null
+++ b/src/main/resources/application-local.yml
@@ -0,0 +1,11 @@
+ozgcloud:
+  muk:
+    server: http://localhost:8081
+    user-name: "user"
+    password: "123456789"
+logging:
+  level:
+    de.ozgcloud.MukPostfachApplication: DEBUG
+    de.ozgcloud.de.ozgcloud.nachrichten.postfach.muk.RestLoggingInterceptor: DEBUG
+    org.springframework.http: DEBUG
+    org.springframework.web.client: DEBUG
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..065fffe
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,3 @@
+spring:
+  jackson:
+    default-property-inclusion: NON_NULL
\ No newline at end of file
diff --git a/src/main/resources/log4j2-local.xml b/src/main/resources/log4j2-local.xml
new file mode 100644
index 0000000..6764c41
--- /dev/null
+++ b/src/main/resources/log4j2-local.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright (c) 2024.
+  ~ Lizenziert unter der EUPL, Version 1.2 oder - sobald
+  ~ diese von der Europäischen Kommission genehmigt wurden -
+  ~ Folgeversionen der EUPL ("Lizenz");
+  ~ Sie dürfen dieses Werk ausschließlich gemäß
+  ~ dieser Lizenz nutzen.
+  ~ Eine Kopie der Lizenz finden Sie hier:
+  ~
+  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+  ~
+  ~ Sofern nicht durch anwendbare Rechtsvorschriften
+  ~ gefordert oder in schriftlicher Form vereinbart, wird
+  ~ die unter der Lizenz verbreitete Software "so wie sie
+  ~ ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+  ~ ausdrücklich oder stillschweigend - verbreitet.
+  ~ Die sprachspezifischen Genehmigungen und Beschränkungen
+  ~ unter der Lizenz sind dem Lizenztext zu entnehmen.
+  -->
+<configuration>
+    <Appenders>
+        <Console name="CONSOLE" target="SYSTEM_OUT">
+            <PatternLayout pattern="[%-5level] %c{1.} %msg%n"/>
+        </Console>
+    </Appenders>
+
+    <Loggers>
+        <Root level="INFO">
+            <appender-ref ref="CONSOLE"/>
+        </Root>
+    </Loggers>
+</configuration>
\ No newline at end of file
diff --git a/src/main/resources/users.yml b/src/main/resources/users.yml
new file mode 100644
index 0000000..dba8fab
--- /dev/null
+++ b/src/main/resources/users.yml
@@ -0,0 +1,10 @@
+fileFormat: 1
+users:
+  # normaler Benutzer (Rolle ist implizit "USER", als "gruppe" wird ein extern generiertes Token verwendet)
+  - { login: "Hans.Mustermann", credentials: { passwortHash: "$2a$10$Tf2GGkPbYfZBWJZbAsMtDenMt2w6t2GQs8h5TptGZ0wcnsfUi7W26" }, gruppe: "{d0b401b8-2ef1-4a94-936a-d501b34c6569}" }
+  # Beispiel 3: normaler Benutzer (Rolle ist implizit "USER", als "gruppe" wird ein sprechender Name verwendet)
+  - { login: "Mira.Bellenbaum@musterstadt.beispiel.de", credentials: { passwortHash: "$2a$10$LjWRzJQyHQz3v2b0FDFORe44TjNGoac3gWI5MNIQ/Rg4yq4XKVnDi" }, gruppe: "12/ABC Gemeinde Musterstadt" }
+  # Eigenes Beispiel: User: MGM-Tester, Passwort: ep86rbseprz9twe
+  - { login: "MGM-Tester", credentials: { passwortHash: "$2a$12$uZA6RBFi2q8iQbIqjgsyce/YMp0j0yunir2q1uzwTtibbf.lMrNea" }, gruppe: "MGM-KOP Test" }
+  # Eigenes Beispiel: User: user Passwort: 123456789
+  - { login: "user", credentials: { passwortHash: "$2a$12$fOgkV5PMU3itJ2r5VQq.Q.eMZdPZW5PM25xRMZ20gY6969uPs.WuC" }, gruppe: "MGM-KOP Test" }
\ No newline at end of file
diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachRemoteServiceTest.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachRemoteServiceTest.java
new file mode 100644
index 0000000..4b4dcff
--- /dev/null
+++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachRemoteServiceTest.java
@@ -0,0 +1,58 @@
+package de.ozgcloud.nachrichten.postfach.osi;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Spy;
+
+class OsiPostfachRemoteServiceTest {
+
+	@Spy
+	@InjectMocks
+	private OsiPostfachRemoteService osiPostfachRemoteService;
+
+	@DisplayName("send message")
+	@Nested
+	class TestSendMessage {
+		// TODO
+	}
+
+	@DisplayName("get all messages")
+	@Nested
+	class TestGetAllMessages {
+		// TODO
+	}
+
+	@DisplayName("delete message")
+	@Nested
+	class TestDeleteMessage {
+		// TODO
+	}
+
+	@DisplayName("get postfach type")
+	@Nested
+	class TestGetPostfachType {
+		@DisplayName("should return")
+		@Test
+		void shouldReturn() {
+			var result = osiPostfachRemoteService.getPostfachType();
+
+			assertThat(result).isEqualTo(OsiPostfachRemoteService.POSTFACH_TYPE_OSIV2);
+		}
+	}
+
+	@DisplayName("is reply allowed")
+	@Nested
+	class TestIsReplyAllowed {
+		@DisplayName("should return")
+		@Test
+		void shouldReturn() {
+			var result = osiPostfachRemoteService.isReplyAllowed();
+
+			assertThat(result).isTrue();
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/test/resources/application-itcase.yml b/src/test/resources/application-itcase.yml
new file mode 100644
index 0000000..8e4ad25
--- /dev/null
+++ b/src/test/resources/application-itcase.yml
@@ -0,0 +1,9 @@
+ozgcloud:
+  muk:
+    server: http://localhost:8089
+logging:
+  level:
+    de.ozgcloud.MukPostfachApplication: DEBUG
+    de.ozgcloud.de.ozgcloud.nachrichten.postfach.muk.RestLoggingInterceptor: DEBUG
+    org.springframework.http: DEBUG
+    org.springframework.web.client: DEBUG
\ No newline at end of file
-- 
GitLab