From bcd35e00f2f77a041302b8e70861632d2b4491ea Mon Sep 17 00:00:00 2001
From: Evgeny Bardin <evgeny.bardin@external.mgm-cp.com>
Date: Fri, 3 Jan 2025 19:37:05 +0100
Subject: [PATCH] OZG-7092 [test] fix configuration

---
 .../token/TokenCheckGrpcServiceITCase.java    | 44 ++++++++++---------
 .../token/saml/SamlTestConfiguration.java     |  8 +++-
 2 files changed, 30 insertions(+), 22 deletions(-)

diff --git a/token-checker-server/src/test/java/de/ozgcloud/token/TokenCheckGrpcServiceITCase.java b/token-checker-server/src/test/java/de/ozgcloud/token/TokenCheckGrpcServiceITCase.java
index 8648a6a..1e2e4fb 100644
--- a/token-checker-server/src/test/java/de/ozgcloud/token/TokenCheckGrpcServiceITCase.java
+++ b/token-checker-server/src/test/java/de/ozgcloud/token/TokenCheckGrpcServiceITCase.java
@@ -24,35 +24,48 @@
 package de.ozgcloud.token;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
 
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.opensaml.xmlsec.signature.support.SignatureTrustEngine;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
+import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.test.annotation.DirtiesContext;
 
 import de.ozgcloud.common.test.ITCase;
 import de.ozgcloud.common.test.TestUtils;
 import de.ozgcloud.token.saml.SamlTestConfiguration;
+import lombok.SneakyThrows;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
+@ITCase
+@SpringBootTest(properties = {
+		"grpc.server.inProcessName=test",
+		"grpc.client.token-checker.address=in-process:test",
+})
+@DirtiesContext
 public class TokenCheckGrpcServiceITCase {
 
+	@GrpcClient("token-checker")
+	private TokenCheckServiceGrpc.TokenCheckServiceBlockingStub tokenCheckerStub;
+
+	@MockBean
+	private SignatureTrustEngine signatureTrustEngine;
+
 	@Nested
-	@ITCase
-	@SpringBootTest(properties = {
-			"grpc.server.inProcessName=test",
-			"grpc.client.token-checker.address=in-process:test",
-	})
-	@Import(SamlTestConfiguration.class)
-	@DirtiesContext
 	class TestCheckTokenSuccessfully {
 
-		@GrpcClient("token-checker")
-		private TokenCheckServiceGrpc.TokenCheckServiceBlockingStub tokenCheckerStub;
+		@SneakyThrows
+		@BeforeEach
+		void init() {
+			when(signatureTrustEngine.validate(any(), any())).thenReturn(true);
+		}
 
 		@Test
 		void shouldAcceptToken() {
@@ -81,19 +94,10 @@ public class TokenCheckGrpcServiceITCase {
 	}
 
 	@Nested
-	@ITCase
-	@SpringBootTest(properties = {
-			"grpc.server.inProcessName=test",
-			"grpc.client.token-checker.address=in-process:test",
-	})
-	@DirtiesContext
 	class TestCheckTokenFailure {
 
-		@GrpcClient("token-checker")
-		private TokenCheckServiceGrpc.TokenCheckServiceBlockingStub tokenCheckerStub;
-
 		@Test
-		void shouldAcceptToken() {
+		void shouldDeclineToken() {
 			var token = TestUtils.loadTextFile("SamlResponseBayernId.xml");
 
 			var result = tokenCheckerStub.checkToken(buildCheckTokenRequest(token));
diff --git a/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlTestConfiguration.java b/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlTestConfiguration.java
index 5b724a1..c18f62e 100644
--- a/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlTestConfiguration.java
+++ b/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlTestConfiguration.java
@@ -37,9 +37,12 @@ import org.opensaml.saml.saml2.core.EncryptedAssertion;
 import org.opensaml.saml.saml2.encryption.Decrypter;
 import org.opensaml.xmlsec.signature.support.SignatureTrustEngine;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
 
 import lombok.SneakyThrows;
 
+@Configuration
 public class SamlTestConfiguration {
 
 	public static final String POSTFACH_ID = UUID.randomUUID().toString();
@@ -56,13 +59,14 @@ public class SamlTestConfiguration {
 
 	@SneakyThrows
 	@Bean
-	SamlTrustEngineFactory samlTrustEngineFactory() {
-		SignatureTrustEngine signatureTrustEngine = when(mock(SignatureTrustEngine.class).validate(any(), any())).thenReturn(true).getMock();
+	@Primary
+	SamlTrustEngineFactory samlTrustEngineFactory(SignatureTrustEngine signatureTrustEngine) {
 		return when(mock(SamlTrustEngineFactory.class).buildSamlTrustEngine(any())).thenReturn(signatureTrustEngine).getMock();
 	}
 
 	@SneakyThrows
 	@Bean
+	@Primary
 	SamlDecrypterFactory samlDecrypterFactory() {
 		var attributes = SAML_ATTRIBUTES_MAP.entrySet().stream().map(e -> initAttributeMock(e.getKey(), e.getValue())).toList();
 		AttributeStatement attributeStatement = when(mock(AttributeStatement.class).getAttributes()).thenReturn(attributes).getMock();
-- 
GitLab