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