Skip to content
Snippets Groups Projects
Commit 5584e1c5 authored by Evgeny Bardin's avatar Evgeny Bardin
Browse files

OZG-7092 do refactoring

parent 5fa8c871
No related branches found
No related tags found
1 merge request!1OZG-7092 Anpassung TokenChecker
Showing
with 143 additions and 39 deletions
......@@ -32,7 +32,7 @@ import net.devh.boot.grpc.server.service.GrpcService;
public class TokenCheckGrpcService extends TokenCheckServiceGrpc.TokenCheckServiceImplBase {
private final SamlTokenService samlTokenService;
private final CheckTokenResultMapper tokenCheckMapper;
private final TokenValidationResultMapper tokenCheckMapper;
@Override
public void checkToken(GrpcCheckTokenRequest request, StreamObserver<GrpcCheckTokenResponse> responseStreamObserver) {
......@@ -54,7 +54,7 @@ public class TokenCheckGrpcService extends TokenCheckServiceGrpc.TokenCheckServi
GrpcCheckTokenResponse buildInvalidCheckTokenResponse(TokenValidationResult result) {
return GrpcCheckTokenResponse.newBuilder()
.setTokenValid(false)
.setCheckError(tokenCheckMapper.toCheckError(result))
.setCheckErrors(tokenCheckMapper.toCheckErrors(result))
.build();
}
}
......@@ -23,10 +23,17 @@ package de.ozgcloud.token;
import org.mapstruct.CollectionMappingStrategy;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.NullValueCheckStrategy;
import org.mapstruct.NullValueMappingStrategy;
import org.mapstruct.NullValuePropertyMappingStrategy;
import org.mapstruct.ReportingPolicy;
@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED)
interface CheckTokenResultMapper {
import de.ozgcloud.token.common.errorhandling.ValidationError;
@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, //
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE,
nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT)
interface TokenValidationResultMapper {
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "trustLevelBytes", ignore = true)
......@@ -40,9 +47,24 @@ interface CheckTokenResultMapper {
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "otherFieldsList", source = "attributes")
@Mapping(target = "postfachId", source = "attributes.postfachId")
@Mapping(target = "trustLevel", source = "attributes.trustLevel")
@Mapping(target = "otherFieldsList", source = "attributes.otherAttributes")
GrpcTokenAttributes toTokenAttributes(TokenValidationResult validationResult);
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "removeCheckError", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
@Mapping(target = "mergeFrom", ignore = true)
@Mapping(target = "defaultInstanceForType", ignore = true)
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "checkErrorOrBuilderList", ignore = true)
@Mapping(target = "checkErrorBuilderList", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "checkErrorList", source = "validationErrors")
GrpcCheckErrors toCheckErrors(TokenValidationResult validationResult);
@Mapping(target = "unknownFields", ignore = true)
@Mapping(target = "messageBytes", ignore = true)
@Mapping(target = "mergeUnknownFields", ignore = true)
......@@ -51,6 +73,5 @@ interface CheckTokenResultMapper {
@Mapping(target = "clearOneof", ignore = true)
@Mapping(target = "clearField", ignore = true)
@Mapping(target = "allFields", ignore = true)
@Mapping(target = "message", source = "errorMesssage")
GrpcCheckError toCheckError(TokenValidationResult validationResult);
GrpcCheckError toCheckError(ValidationError validationError);
}
package de.ozgcloud.token;
import de.ozgcloud.token.GrpcCheckError.Builder;
import de.ozgcloud.token.common.errorHandler.ValidationErrorTestFactory;
public class GrpcCheckErrorTestFactory {
public static final String ERROR_MESSAGE = CheckTokenResultTestFactory.ERROR_MESSAGE;
public static final String ERROR_MESSAGE = ValidationErrorTestFactory.ERROR_MESSAGE;
public static GrpcCheckError create() {
return createBuilder().build();
......
package de.ozgcloud.token;
import de.ozgcloud.token.GrpcCheckErrors.Builder;
public class GrpcCheckErrorsTestFactory {
public static final GrpcCheckError CHECK_ERROR = GrpcCheckErrorTestFactory.create();
public static GrpcCheckErrors create() {
return createBuilder().build();
}
public static Builder createBuilder() {
return GrpcCheckErrors.newBuilder().addCheckError(CHECK_ERROR);
}
}
......@@ -21,11 +21,9 @@
package de.ozgcloud.token;
import de.ozgcloud.common.test.TestUtils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
class GrpcCheckTokenRequestTestFactory {
public class GrpcCheckTokenRequestTestFactory {
static final String TOKEN = TestUtils.loadTextFile("SamlResponseMuk.xml");
static GrpcCheckTokenRequest create() {
......
......@@ -20,13 +20,10 @@
package de.ozgcloud.token;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
class GrpcCheckTokenResponseTestFactory {
public static final GrpcTokenAttributes CHECK_TOKEN_RESULT = GrpcTokenCheckResultTestFactory.create();
public static final GrpcTokenAttributes GRPC_TOKEN_ATTRIBUTE = GrpcTokenAttributesTestFactory.create();
public static final GrpcCheckErrors GRPC_CHECK_ERRORS = GrpcCheckErrorsTestFactory.create();
public static GrpcCheckTokenResponse createValid() {
return createValidBuilder().build();
......@@ -35,7 +32,7 @@ class GrpcCheckTokenResponseTestFactory {
public static GrpcCheckTokenResponse.Builder createValidBuilder() {
return GrpcCheckTokenResponse.newBuilder()
.setTokenValid(true)
.setTokenAttributes(CHECK_TOKEN_RESULT);
.setTokenAttributes(GRPC_TOKEN_ATTRIBUTE);
}
public static GrpcCheckTokenResponse createInvalid() {
......@@ -45,6 +42,6 @@ class GrpcCheckTokenResponseTestFactory {
public static GrpcCheckTokenResponse.Builder createInvalidBuilder() {
return GrpcCheckTokenResponse.newBuilder()
.setTokenValid(false)
.setCheckError(GrpcCheckErrorTestFactory.create());
.setCheckErrors(GRPC_CHECK_ERRORS);
}
}
......@@ -2,8 +2,8 @@ package de.ozgcloud.token;
public class GrpcOtherFieldsTestFactory {
private static final String VALUE = TokenAttributeTestFactory.VALUE;
private static final String NAME = TokenAttributeTestFactory.NAME;
public static final String VALUE = TokenAttributeTestFactory.VALUE;
public static final String NAME = TokenAttributeTestFactory.NAME;
public static GrpcOtherField create() {
return createBuilder().build();
......
......@@ -20,14 +20,10 @@
package de.ozgcloud.token;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
class GrpcTokenAttributesTestFactory {
@NoArgsConstructor(access = AccessLevel.PRIVATE)
class GrpcTokenCheckResultTestFactory {
public static final String POSTFACH_ID = CheckTokenResultTestFactory.POSTFACH_ID;
public static final String TRUST_LEVEL = CheckTokenResultTestFactory.TRUST_LEVEL;
public static final String POSTFACH_ID = TokenAttributesTestFactory.POSTFACH_ID;
public static final String TRUST_LEVEL = TokenAttributesTestFactory.TRUST_LEVEL;
public static final GrpcOtherField TOKEN_ATTRIBUTE = GrpcOtherFieldsTestFactory.create();
public static GrpcTokenAttributes create() {
......
......@@ -44,7 +44,7 @@ class TokenCheckGrpcServiceTest {
private SamlTokenService samlTokenService;
@Mock
private CheckTokenResultMapper tokenCheckMapper;
private TokenValidationResultMapper tokenCheckMapper;
@Mock
private StreamObserver<GrpcCheckTokenResponse> tokenStreamObserver;
......@@ -102,7 +102,7 @@ class TokenCheckGrpcServiceTest {
@Nested
class TestValidToken {
private final TokenValidationResult tokenCheckResult = CheckTokenResultTestFactory.createValid();
private final TokenValidationResult tokenCheckResult = TokenValidationResultTestFactory.createValid();
@BeforeEach
void mock() {
......@@ -128,7 +128,7 @@ class TokenCheckGrpcServiceTest {
@Nested
class TestInvalidToken {
private final TokenValidationResult tokenCheckResult = CheckTokenResultTestFactory.createInvalid();
private final TokenValidationResult tokenCheckResult = TokenValidationResultTestFactory.createInvalid();
@BeforeEach
void mock() {
......@@ -155,11 +155,11 @@ class TokenCheckGrpcServiceTest {
@Nested
class TestBuildValidCheckTokenResponse {
private final TokenValidationResult tokenCheckResult = CheckTokenResultTestFactory.createValid();
private final TokenValidationResult tokenCheckResult = TokenValidationResultTestFactory.createValid();
@BeforeEach
void mock() {
when(tokenCheckMapper.toTokenAttributes(any())).thenReturn(GrpcCheckTokenResponseTestFactory.CHECK_TOKEN_RESULT);
when(tokenCheckMapper.toTokenAttributes(any())).thenReturn(GrpcCheckTokenResponseTestFactory.GRPC_TOKEN_ATTRIBUTE);
}
@Test
......@@ -173,7 +173,7 @@ class TokenCheckGrpcServiceTest {
void shouldReturnResponse() {
var response = buildCheckTokenResponse();
assertThat(response).isEqualTo(GrpcCheckTokenResponseTestFactory.createValid());
assertThat(response).usingRecursiveComparison().isEqualTo(GrpcCheckTokenResponseTestFactory.createValid());
}
private GrpcCheckTokenResponse buildCheckTokenResponse() {
......@@ -184,18 +184,18 @@ class TokenCheckGrpcServiceTest {
@Nested
class TestBuildInvalidCheckTokenResponse {
private final TokenValidationResult tokenCheckResult = CheckTokenResultTestFactory.createInvalid();
private final TokenValidationResult tokenCheckResult = TokenValidationResultTestFactory.createInvalid();
@BeforeEach
void mock() {
when(tokenCheckMapper.toCheckError(any())).thenReturn(GrpcCheckErrorTestFactory.create());
when(tokenCheckMapper.toCheckErrors(any())).thenReturn(GrpcCheckTokenResponseTestFactory.GRPC_CHECK_ERRORS);
}
@Test
void shouldCallMapper() {
buildCheckTokenResponse();
verify(tokenCheckMapper).toCheckError(tokenCheckResult);
verify(tokenCheckMapper).toCheckErrors(tokenCheckResult);
}
@Test
......
......@@ -21,41 +21,43 @@
package de.ozgcloud.token;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
class CheckTokenResultMapperTest {
import de.ozgcloud.token.common.errorHandler.ValidationErrorTestFactory;
private final CheckTokenResultMapper mapper = Mappers.getMapper(CheckTokenResultMapper.class);
class TokenValidationResultMapperTest {
private final TokenValidationResultMapper mapper = spy(Mappers.getMapper(TokenValidationResultMapper.class));
@Nested
class TestToTokenAttributes {
@Test
void shouldMapPostfachHandle() {
var result = toTokenCheckResult();
void shouldMapTokenAttributes() {
var result = mapper.toTokenAttributes(TokenValidationResultTestFactory.createValid());
assertThat(result.getPostfachId()).isEqualTo(CheckTokenResultTestFactory.POSTFACH_ID);
assertThat(result).usingRecursiveComparison().isEqualTo(GrpcTokenAttributesTestFactory.create());
}
}
@Test
void shouldMapTrustLevel() {
var result = toTokenCheckResult();
@Nested
class TestToCheckErrors {
assertThat(result.getTrustLevel()).isEqualTo(CheckTokenResultTestFactory.TRUST_LEVEL);
@BeforeEach
void init() {
doReturn(GrpcCheckErrorTestFactory.create()).when(mapper).toCheckError(any());
}
@Test
void shouldMapOtherFields() {
var result = toTokenCheckResult();
void shouldMapCheckErrors() {
var result = mapper.toCheckErrors(TokenValidationResultTestFactory.createInvalid());
assertThat(result.getOtherFieldsList()).containsExactly(GrpcTokenCheckResultTestFactory.TOKEN_ATTRIBUTE);
}
private GrpcTokenAttributes toTokenCheckResult() {
return mapper.toTokenAttributes(CheckTokenResultTestFactory.createValid());
assertThat(result).usingRecursiveComparison().isEqualTo(GrpcCheckErrorsTestFactory.create());
}
}
......@@ -63,14 +65,10 @@ class CheckTokenResultMapperTest {
class TestToCheckError {
@Test
void shouldMapErrorMessage() {
var result = toCheckError();
assertThat(result.getMessage()).isEqualTo(CheckTokenResultTestFactory.ERROR_MESSAGE);
}
void shouldMapCheckError() {
var result = mapper.toCheckError(ValidationErrorTestFactory.create());
private GrpcCheckError toCheckError() {
return mapper.toCheckError(CheckTokenResultTestFactory.createInvalid());
assertThat(result).usingRecursiveComparison().isEqualTo(GrpcCheckErrorTestFactory.create());
}
}
}
\ No newline at end of file
......@@ -30,8 +30,8 @@ import de.ozgcloud.token.common.errorhandling.ValidationError;
public class ValidationErrorTestFactory {
private static final String ERROR_MESSAGE = LoremIpsum.getInstance().getWords(4);
private static final Exception CAUSE = new Exception();
public static final String ERROR_MESSAGE = LoremIpsum.getInstance().getWords(4);
public static final Exception CAUSE = new Exception();
public static ValidationError create() {
return createBuilder().build();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment