Skip to content
Snippets Groups Projects
Commit 027fa219 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6842 fix formId mapping

parent 18e192df
No related branches found
No related tags found
No related merge requests found
package de.ozgcloud.apilib.vorgang.grpc; package de.ozgcloud.apilib.vorgang.grpc;
import java.util.ArrayList;
import java.util.Objects;
import org.mapstruct.CollectionMappingStrategy; import org.mapstruct.CollectionMappingStrategy;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
...@@ -18,10 +21,11 @@ import de.ozgcloud.vorgang.vorgang.GrpcVorgangQueryExpression.Builder; ...@@ -18,10 +21,11 @@ import de.ozgcloud.vorgang.vorgang.GrpcVorgangQueryExpression.Builder;
@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, unmappedTargetPolicy = ReportingPolicy.WARN) @Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, unmappedTargetPolicy = ReportingPolicy.WARN)
public interface OzgCloudVorgangQueryMapper { public interface OzgCloudVorgangQueryMapper {
static final String FORM_ENGINE_NAME_PATH = "formEngineName"; static final String FORM_ENGINE_NAME_PATH = "eingangs.header.formEngineName";
static final String STATUS_PATH = "status"; static final String STATUS_PATH = "status";
static final String ORGANISATIONS_EINHEIT_ID_PATH = "eingangs.zustaendigeStelle.organisationseinheitenId"; static final String ORGANISATIONS_EINHEIT_ID_PATH = "eingangs.zustaendigeStelle.organisationseinheitenId";
static final String AKTENZEICHEN_PATH = "aktenzeichen"; static final String AKTENZEICHEN_PATH = "aktenzeichen";
static final String FORM_ID_PATH = "eingangs.header.formId";
default GrpcQuery toGrpc(OzgCloudVorgangQuery ozgCloudVorgangQuery) { default GrpcQuery toGrpc(OzgCloudVorgangQuery ozgCloudVorgangQuery) {
var queryBuilder = mapPropertiesToQuery(ozgCloudVorgangQuery); var queryBuilder = mapPropertiesToQuery(ozgCloudVorgangQuery);
...@@ -38,7 +42,7 @@ public interface OzgCloudVorgangQueryMapper { ...@@ -38,7 +42,7 @@ public interface OzgCloudVorgangQueryMapper {
default GrpcQuery.Builder mapPropertiesToQuery(OzgCloudVorgangQuery query) { default GrpcQuery.Builder mapPropertiesToQuery(OzgCloudVorgangQuery query) {
var queryBuilder = GrpcQuery.newBuilder().setLogicalOperator(GrpcLogicalOperator.AND); var queryBuilder = GrpcQuery.newBuilder().setLogicalOperator(GrpcLogicalOperator.AND);
query.getAktenzeichen().map(this::toAktenzeichenExpression).ifPresent(queryBuilder::addExpressions); query.getAktenzeichen().map(this::toAktenzeichenExpression).ifPresent(queryBuilder::addExpressions);
query.getForm().map(this::toFormExpression).ifPresent(queryBuilder::addExpressions); query.getForm().map(this::toFormExpressions).ifPresent(queryBuilder::addAllExpressions);
query.getStatus().map(this::toStatusExpression).ifPresent(queryBuilder::addExpressions); query.getStatus().map(this::toStatusExpression).ifPresent(queryBuilder::addExpressions);
query.getOrganisationsEinheitId().map(this::toOrganisationsEinheitIdExpression).ifPresent(queryBuilder::addExpressions); query.getOrganisationsEinheitId().map(this::toOrganisationsEinheitIdExpression).ifPresent(queryBuilder::addExpressions);
return queryBuilder; return queryBuilder;
...@@ -65,11 +69,29 @@ public interface OzgCloudVorgangQueryMapper { ...@@ -65,11 +69,29 @@ public interface OzgCloudVorgangQueryMapper {
.build(); .build();
} }
default GrpcVorgangQueryExpression toFormExpression(FormIdentification formIdentification) { default Iterable<GrpcVorgangQueryExpression> toFormExpressions(FormIdentification formIdentification) {
return getEqualExpressionBuilder() var expressions = new ArrayList<GrpcVorgangQueryExpression>(2);
if (Objects.nonNull(formIdentification.formEngineName())) {
addFormEngineNameExpression(formIdentification, expressions);
}
if (Objects.nonNull(formIdentification.formId())) {
addFormIdExpression(formIdentification, expressions);
}
return expressions;
}
private void addFormEngineNameExpression(FormIdentification formIdentification, ArrayList<GrpcVorgangQueryExpression> expressions) {
expressions.add(getEqualExpressionBuilder()
.setPath(FORM_ENGINE_NAME_PATH) .setPath(FORM_ENGINE_NAME_PATH)
.setOperandStringValue(formIdentification.formEngineName()) .setOperandStringValue(formIdentification.formEngineName())
.build(); .build());
}
private void addFormIdExpression(FormIdentification formIdentification, ArrayList<GrpcVorgangQueryExpression> expressions) {
expressions.add(getEqualExpressionBuilder()
.setPath(FORM_ID_PATH)
.setOperandStringValue(formIdentification.formId())
.build());
} }
private Builder getEqualExpressionBuilder() { private Builder getEqualExpressionBuilder() {
......
...@@ -4,6 +4,7 @@ import static org.assertj.core.api.Assertions.*; ...@@ -4,6 +4,7 @@ import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
...@@ -14,6 +15,7 @@ import org.mockito.Spy; ...@@ -14,6 +15,7 @@ import org.mockito.Spy;
import de.ozgcloud.apilib.vorgang.FormIdentificationTestFactory; import de.ozgcloud.apilib.vorgang.FormIdentificationTestFactory;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQuery; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQuery;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQuery.FormIdentification;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQuery.Query; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQuery.Query;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQueryTestFactory; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangQueryTestFactory;
import de.ozgcloud.apilib.vorgang.QueryTestFactory; import de.ozgcloud.apilib.vorgang.QueryTestFactory;
...@@ -142,16 +144,18 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -142,16 +144,18 @@ class OzgCloudVorgangQueryMapperTest {
@Nested @Nested
class TestMapPropertiesToQuery { class TestMapPropertiesToQuery {
private final GrpcVorgangQueryExpression aktenzeichenExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder() private final GrpcVorgangQueryExpression formEngineNameExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder()
.setPath(OzgCloudVorgangQueryMapper.AKTENZEICHEN_PATH) .setPath(OzgCloudVorgangQueryMapper.FORM_ENGINE_NAME_PATH)
.setOperator(GrpcQueryOperator.EQUAL) .setOperator(GrpcQueryOperator.EQUAL)
.setOperandStringValue(OzgCloudVorgangQueryTestFactory.AKTENZEICHEN) .setOperandStringValue(FormIdentificationTestFactory.FORM_ENGINE_NAME)
.build(); .build();
private final GrpcVorgangQueryExpression formExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder() private final List<GrpcVorgangQueryExpression> formExpressions = List.of(formEngineNameExpression);
.setPath(OzgCloudVorgangQueryMapper.FORM_ENGINE_NAME_PATH)
private final GrpcVorgangQueryExpression aktenzeichenExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder()
.setPath(OzgCloudVorgangQueryMapper.AKTENZEICHEN_PATH)
.setOperator(GrpcQueryOperator.EQUAL) .setOperator(GrpcQueryOperator.EQUAL)
.setOperandStringValue(FormIdentificationTestFactory.FORM_ENGINE_NAME) .setOperandStringValue(OzgCloudVorgangQueryTestFactory.AKTENZEICHEN)
.build(); .build();
private final GrpcVorgangQueryExpression statusExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder() private final GrpcVorgangQueryExpression statusExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder()
...@@ -174,9 +178,10 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -174,9 +178,10 @@ class OzgCloudVorgangQueryMapperTest {
@BeforeEach @BeforeEach
void mock() { void mock() {
doReturn(aktenzeichenExpression).when(mapper).toAktenzeichenExpression(OzgCloudVorgangQueryTestFactory.AKTENZEICHEN); doReturn(aktenzeichenExpression).when(mapper).toAktenzeichenExpression(OzgCloudVorgangQueryTestFactory.AKTENZEICHEN);
doReturn(formExpression).when(mapper).toOrganisationsEinheitIdExpression(OzgCloudVorgangQueryTestFactory.ORGANISATIONS_EINHEIT_ID); doReturn(organisationsEinheitIdExpression).when(mapper)
.toOrganisationsEinheitIdExpression(OzgCloudVorgangQueryTestFactory.ORGANISATIONS_EINHEIT_ID);
doReturn(statusExpression).when(mapper).toStatusExpression(OzgCloudVorgangQueryTestFactory.STATUS); doReturn(statusExpression).when(mapper).toStatusExpression(OzgCloudVorgangQueryTestFactory.STATUS);
doReturn(organisationsEinheitIdExpression).when(mapper).toFormExpression(OzgCloudVorgangQueryTestFactory.FORM); doReturn(formExpressions).when(mapper).toFormExpressions(OzgCloudVorgangQueryTestFactory.FORM);
} }
@Test @Test
...@@ -204,15 +209,15 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -204,15 +209,15 @@ class OzgCloudVorgangQueryMapperTest {
void shouldCallToFormExpression() { void shouldCallToFormExpression() {
callMapPropertiesToQuery(); callMapPropertiesToQuery();
verify(mapper).toFormExpression(OzgCloudVorgangQueryTestFactory.FORM); verify(mapper).toFormExpressions(OzgCloudVorgangQueryTestFactory.FORM);
} }
@Test @Test
void shouldReturnQueryBuilderContainingAllExpressions() { void shouldReturnQueryBuilderContainingAllExpressions() {
var queryBuilder = callMapPropertiesToQuery(); var queryBuilder = callMapPropertiesToQuery();
assertThat(queryBuilder.getExpressionsList()).containsExactlyInAnyOrder(aktenzeichenExpression, statusExpression, formExpression, assertThat(queryBuilder.getExpressionsList()).containsExactlyInAnyOrder(aktenzeichenExpression, statusExpression,
organisationsEinheitIdExpression); formEngineNameExpression, organisationsEinheitIdExpression);
} }
@Test @Test
...@@ -234,6 +239,14 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -234,6 +239,14 @@ class OzgCloudVorgangQueryMapperTest {
.aktenzeichen(Optional.empty()) .aktenzeichen(Optional.empty())
.build(); .build();
@BeforeEach
void mock() {
doReturn(organisationsEinheitIdExpression).when(mapper)
.toOrganisationsEinheitIdExpression(OzgCloudVorgangQueryTestFactory.ORGANISATIONS_EINHEIT_ID);
doReturn(statusExpression).when(mapper).toStatusExpression(OzgCloudVorgangQueryTestFactory.STATUS);
doReturn(formExpressions).when(mapper).toFormExpressions(OzgCloudVorgangQueryTestFactory.FORM);
}
@Test @Test
void shouldNotCallToAktenzeichenExpression() { void shouldNotCallToAktenzeichenExpression() {
callMapPropertiesToQuery(); callMapPropertiesToQuery();
...@@ -245,7 +258,7 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -245,7 +258,7 @@ class OzgCloudVorgangQueryMapperTest {
void shouldReturnQueryBuilderContainingAllOtherExpressions() { void shouldReturnQueryBuilderContainingAllOtherExpressions() {
var queryBuilder = callMapPropertiesToQuery(); var queryBuilder = callMapPropertiesToQuery();
assertThat(queryBuilder.getExpressionsList()).containsExactlyInAnyOrder(statusExpression, formExpression, assertThat(queryBuilder.getExpressionsList()).containsExactlyInAnyOrder(statusExpression, formEngineNameExpression,
organisationsEinheitIdExpression); organisationsEinheitIdExpression);
} }
...@@ -261,11 +274,19 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -261,11 +274,19 @@ class OzgCloudVorgangQueryMapperTest {
.form(Optional.empty()) .form(Optional.empty())
.build(); .build();
@BeforeEach
void mock() {
doReturn(aktenzeichenExpression).when(mapper).toAktenzeichenExpression(OzgCloudVorgangQueryTestFactory.AKTENZEICHEN);
doReturn(organisationsEinheitIdExpression).when(mapper)
.toOrganisationsEinheitIdExpression(OzgCloudVorgangQueryTestFactory.ORGANISATIONS_EINHEIT_ID);
doReturn(statusExpression).when(mapper).toStatusExpression(OzgCloudVorgangQueryTestFactory.STATUS);
}
@Test @Test
void shouldNotCallToFormExpression() { void shouldNotCallToFormExpression() {
callMapPropertiesToQuery(); callMapPropertiesToQuery();
verify(mapper, never()).toFormExpression(any()); verify(mapper, never()).toFormExpressions(any());
} }
@Test @Test
...@@ -288,6 +309,14 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -288,6 +309,14 @@ class OzgCloudVorgangQueryMapperTest {
.status(Optional.empty()) .status(Optional.empty())
.build(); .build();
@BeforeEach
void mock() {
doReturn(aktenzeichenExpression).when(mapper).toAktenzeichenExpression(OzgCloudVorgangQueryTestFactory.AKTENZEICHEN);
doReturn(organisationsEinheitIdExpression).when(mapper)
.toOrganisationsEinheitIdExpression(OzgCloudVorgangQueryTestFactory.ORGANISATIONS_EINHEIT_ID);
doReturn(formExpressions).when(mapper).toFormExpressions(OzgCloudVorgangQueryTestFactory.FORM);
}
@Test @Test
void shouldNotCallToStatusExpression() { void shouldNotCallToStatusExpression() {
callMapPropertiesToQuery(); callMapPropertiesToQuery();
...@@ -299,7 +328,7 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -299,7 +328,7 @@ class OzgCloudVorgangQueryMapperTest {
void shouldReturnQueryBuilderContainingAllOtherExpressions() { void shouldReturnQueryBuilderContainingAllOtherExpressions() {
var queryBuilder = callMapPropertiesToQuery(); var queryBuilder = callMapPropertiesToQuery();
assertThat(queryBuilder.getExpressionsList()).containsExactlyInAnyOrder(aktenzeichenExpression, formExpression, assertThat(queryBuilder.getExpressionsList()).containsExactlyInAnyOrder(aktenzeichenExpression, formEngineNameExpression,
organisationsEinheitIdExpression); organisationsEinheitIdExpression);
} }
...@@ -315,6 +344,13 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -315,6 +344,13 @@ class OzgCloudVorgangQueryMapperTest {
.organisationsEinheitId(Optional.empty()) .organisationsEinheitId(Optional.empty())
.build(); .build();
@BeforeEach
void mock() {
doReturn(aktenzeichenExpression).when(mapper).toAktenzeichenExpression(OzgCloudVorgangQueryTestFactory.AKTENZEICHEN);
doReturn(statusExpression).when(mapper).toStatusExpression(OzgCloudVorgangQueryTestFactory.STATUS);
doReturn(formExpressions).when(mapper).toFormExpressions(OzgCloudVorgangQueryTestFactory.FORM);
}
@Test @Test
void shouldNotCallToOrganisationsEinheitIdExpression() { void shouldNotCallToOrganisationsEinheitIdExpression() {
callMapPropertiesToQuery(); callMapPropertiesToQuery();
...@@ -326,7 +362,8 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -326,7 +362,8 @@ class OzgCloudVorgangQueryMapperTest {
void shouldReturnQueryBuilderContainingAllOtherExpressions() { void shouldReturnQueryBuilderContainingAllOtherExpressions() {
var queryBuilder = callMapPropertiesToQuery(); var queryBuilder = callMapPropertiesToQuery();
assertThat(queryBuilder.getExpressionsList()).containsExactlyInAnyOrder(aktenzeichenExpression, statusExpression, formExpression); assertThat(queryBuilder.getExpressionsList()).containsExactlyInAnyOrder(aktenzeichenExpression, statusExpression,
formEngineNameExpression);
} }
private GrpcQuery.Builder callMapPropertiesToQuery() { private GrpcQuery.Builder callMapPropertiesToQuery() {
...@@ -389,17 +426,38 @@ class OzgCloudVorgangQueryMapperTest { ...@@ -389,17 +426,38 @@ class OzgCloudVorgangQueryMapperTest {
@Nested @Nested
class TestToFormExpression { class TestToFormExpression {
private final GrpcVorgangQueryExpression formExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder() private final GrpcVorgangQueryExpression formEngineNameExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder()
.setPath(OzgCloudVorgangQueryMapper.FORM_ENGINE_NAME_PATH) .setPath(OzgCloudVorgangQueryMapper.FORM_ENGINE_NAME_PATH)
.setOperator(GrpcQueryOperator.EQUAL) .setOperator(GrpcQueryOperator.EQUAL)
.setOperandStringValue(FormIdentificationTestFactory.FORM_ENGINE_NAME) .setOperandStringValue(FormIdentificationTestFactory.FORM_ENGINE_NAME)
.build(); .build();
private final GrpcVorgangQueryExpression formIdExpression = GrpcVorgangQueryExpressionTestFactory.createBuilder()
.setPath(OzgCloudVorgangQueryMapper.FORM_ID_PATH)
.setOperator(GrpcQueryOperator.EQUAL)
.setOperandStringValue(FormIdentificationTestFactory.FORM_ID)
.build();
@Test
void shouldReturnFormEngineNameExpression() {
var expressions = mapper.toFormExpressions(new FormIdentification(null, FormIdentificationTestFactory.FORM_ENGINE_NAME));
assertThat(expressions).usingRecursiveFieldByFieldElementComparator().containsExactly(formEngineNameExpression);
}
@Test
void shouldReturnFormIdExpression() {
var expressions = mapper.toFormExpressions(new FormIdentification(FormIdentificationTestFactory.FORM_ID, null));
assertThat(expressions).usingRecursiveFieldByFieldElementComparator().containsExactly(formIdExpression);
}
@Test @Test
void shouldReturnFormExpression() { void shouldReturnBothExpressions() {
var expression = mapper.toFormExpression(OzgCloudVorgangQueryTestFactory.FORM); var expressions = mapper.toFormExpressions(FormIdentificationTestFactory.create());
assertThat(expression).usingRecursiveComparison().isEqualTo(formExpression); assertThat(expressions).usingRecursiveFieldByFieldElementComparator().containsExactlyInAnyOrder(formEngineNameExpression,
formIdExpression);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment