Skip to content
Snippets Groups Projects
Commit 7dad571b authored by OZGCloud's avatar OZGCloud
Browse files

OZG-7350 implement GrpcCreateCollaborationRequestData with Fachstelle

parent ff7caf02
Branches
Tags
No related merge requests found
Showing
with 157 additions and 18 deletions
...@@ -213,7 +213,19 @@ message GrpcCreateCollaborationVorgangRequest { ...@@ -213,7 +213,19 @@ message GrpcCreateCollaborationVorgangRequest {
message GrpcCreateCollaborationRequestData { message GrpcCreateCollaborationRequestData {
string vorgangId = 1; string vorgangId = 1;
int32 collaborationLevel = 2; int32 collaborationLevel = 2;
string zustaendigeStelle = 3; reserved 3;
GrpcFachstelle zustaendigeStelle = 4;
}
message GrpcFachstelle {
string technicalId = 1;
string subjectId = 2;
GrpcFachstelleType type = 3;
}
enum GrpcFachstelleType{
ORGANISATIONS_EINHEIT = 0;
EXTERNE_FACHSTELLE = 1;
} }
message GrpcCreateCollaborationVorgangResponse { message GrpcCreateCollaborationVorgangResponse {
......
...@@ -59,7 +59,7 @@ public class CollaborationService { ...@@ -59,7 +59,7 @@ public class CollaborationService {
VorgangHead getHeader(CreateCollaborationVorgangRequest request) { VorgangHead getHeader(CreateCollaborationVorgangRequest request) {
return request.getVorgang().getHeader().toBuilder() return request.getVorgang().getHeader().toBuilder()
.collaborationLevel(request.getCollaborationLevel()) .collaborationLevel(request.getCollaborationLevel())
.organisationsEinheitId(request.getZustaendigeStelle()) .organisationsEinheitId(request.getZustaendigeStelle().getSubjectId())
.build(); .build();
} }
} }
...@@ -33,5 +33,5 @@ public class CreateCollaborationVorgangRequest { ...@@ -33,5 +33,5 @@ public class CreateCollaborationVorgangRequest {
private Vorgang vorgang; private Vorgang vorgang;
private int collaborationLevel; private int collaborationLevel;
private String zustaendigeStelle; private Fachstelle zustaendigeStelle;
} }
...@@ -29,7 +29,7 @@ import org.mapstruct.ReportingPolicy; ...@@ -29,7 +29,7 @@ import org.mapstruct.ReportingPolicy;
import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData; import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData;
@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN) @Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, uses = FachstelleMapper.class)
public interface CreateCollaborationVorgangRequestMapper { public interface CreateCollaborationVorgangRequestMapper {
@Mapping(target = "vorgang", ignore = true) @Mapping(target = "vorgang", ignore = true)
......
package de.ozgcloud.vorgang.collaboration;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@Builder
@Getter
@EqualsAndHashCode
public class Fachstelle {
private String technicalId;
private String subjectId;
private FachstelleType type;
public enum FachstelleType {
EXTERNE_FACHSTELLE, ORGANISATIONS_EINHEIT;
}
}
\ No newline at end of file
package de.ozgcloud.vorgang.collaboration;
import org.mapstruct.Mapper;
import org.mapstruct.MappingConstants;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.ValueMapping;
import de.ozgcloud.vorgang.vorgang.GrpcFachstelle;
@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
interface FachstelleMapper {
@ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)
Fachstelle fromGrpc(GrpcFachstelle fachstelle);
}
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
package de.ozgcloud.vorgang.collaboration; package de.ozgcloud.vorgang.collaboration;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
...@@ -46,7 +47,6 @@ import de.ozgcloud.vorgang.vorgang.Vorgang; ...@@ -46,7 +47,6 @@ import de.ozgcloud.vorgang.vorgang.Vorgang;
import de.ozgcloud.vorgang.vorgang.VorgangHead; import de.ozgcloud.vorgang.vorgang.VorgangHead;
import de.ozgcloud.vorgang.vorgang.VorgangHeadTestFactory; import de.ozgcloud.vorgang.vorgang.VorgangHeadTestFactory;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory; import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
class CollaborationServiceTest { class CollaborationServiceTest {
...@@ -62,7 +62,8 @@ class CollaborationServiceTest { ...@@ -62,7 +62,8 @@ class CollaborationServiceTest {
@Nested @Nested
class TestCreateCollaborationVorgang { class TestCreateCollaborationVorgang {
private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create(); private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory
.create();
private static final String COLLABORATION_VORGANG_ID = "collaboration-vorgang-id"; private static final String COLLABORATION_VORGANG_ID = "collaboration-vorgang-id";
private static final Vorgang SAVED_VORGANG = VorgangTestFactory.createBuilder().id(COLLABORATION_VORGANG_ID).build(); private static final Vorgang SAVED_VORGANG = VorgangTestFactory.createBuilder().id(COLLABORATION_VORGANG_ID).build();
...@@ -228,10 +229,10 @@ class CollaborationServiceTest { ...@@ -228,10 +229,10 @@ class CollaborationServiceTest {
private static final ServiceKonto SERVICE_KONTO = ServiceKontoTestFactory.create(); private static final ServiceKonto SERVICE_KONTO = ServiceKontoTestFactory.create();
@Test @Test
void shouldSetZustaendigeStelle() { void shouldSetOrganisationsEinheitId() {
var result = getHeader(); var result = getHeader();
assertThat(result.getOrganisationsEinheitId()).isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID); assertThat(result.getOrganisationsEinheitId()).isEqualTo(FachstelleTestFactory.SUBJECT_ID);
} }
@Test @Test
......
...@@ -24,18 +24,39 @@ ...@@ -24,18 +24,39 @@
package de.ozgcloud.vorgang.collaboration; package de.ozgcloud.vorgang.collaboration;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import org.mockito.InjectMocks;
import org.mockito.Mock;
class CreateCollaborationVorgangRequestMapperTest { class CreateCollaborationVorgangRequestMapperTest {
@InjectMocks
private final CreateCollaborationVorgangRequestMapper mapper = Mappers.getMapper(CreateCollaborationVorgangRequestMapper.class); private final CreateCollaborationVorgangRequestMapper mapper = Mappers.getMapper(CreateCollaborationVorgangRequestMapper.class);
@Mock
private FachstelleMapper fachstelleMapper;
@Nested
class TestMapFrom {
@Test
void shouldCallFachstelleMapper() {
mapper.mapFrom(GrpcCreateCollaborationRequestDataTestFactory.create());
verify(fachstelleMapper).fromGrpc(GrpcCreateCollaborationRequestDataTestFactory.FACHSTELLE);
}
@Test @Test
void shouldMapFromGrpc() { void shouldMapFromGrpc() {
when(fachstelleMapper.fromGrpc(any())).thenReturn(FachstelleTestFactory.create());
var result = mapper.mapFrom(GrpcCreateCollaborationRequestDataTestFactory.create()); var result = mapper.mapFrom(GrpcCreateCollaborationRequestDataTestFactory.create());
assertThat(result).usingRecursiveComparison().ignoringFields("vorgang").isEqualTo(CreateCollaborationVorgangRequestTestFactory.create()); assertThat(result).usingRecursiveComparison().ignoringFields("vorgang").isEqualTo(CreateCollaborationVorgangRequestTestFactory.create());
} }
} }
}
\ No newline at end of file
...@@ -25,10 +25,10 @@ package de.ozgcloud.vorgang.collaboration; ...@@ -25,10 +25,10 @@ package de.ozgcloud.vorgang.collaboration;
import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest.CreateCollaborationVorgangRequestBuilder; import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest.CreateCollaborationVorgangRequestBuilder;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory; import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
public class CreateCollaborationVorgangRequestTestFactory { public class CreateCollaborationVorgangRequestTestFactory {
public static final Fachstelle ZUSTAENDIGE_STELLE = FachstelleTestFactory.create();
public static final int COLLABORATION_LEVEL = 1; public static final int COLLABORATION_LEVEL = 1;
public static CreateCollaborationVorgangRequest create() { public static CreateCollaborationVorgangRequest create() {
...@@ -38,7 +38,7 @@ public class CreateCollaborationVorgangRequestTestFactory { ...@@ -38,7 +38,7 @@ public class CreateCollaborationVorgangRequestTestFactory {
public static CreateCollaborationVorgangRequestBuilder createBuilder() { public static CreateCollaborationVorgangRequestBuilder createBuilder() {
return CreateCollaborationVorgangRequest.builder() return CreateCollaborationVorgangRequest.builder()
.vorgang(VorgangTestFactory.create()) .vorgang(VorgangTestFactory.create())
.zustaendigeStelle(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID) .zustaendigeStelle(ZUSTAENDIGE_STELLE)
.collaborationLevel(COLLABORATION_LEVEL); .collaborationLevel(COLLABORATION_LEVEL);
} }
......
package de.ozgcloud.vorgang.collaboration;
import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
class FachstelleMapperTest {
private final FachstelleMapper mapper = Mappers.getMapper(FachstelleMapper.class);
@Nested
class TestFromGrpc {
@Test
void shouldMap() {
var fachstelle = mapper.fromGrpc(GrpcFachstelleTestFactory.create());
assertThat(fachstelle).isEqualTo(FachstelleTestFactory.create());
}
}
}
package de.ozgcloud.vorgang.collaboration;
import java.util.UUID;
import de.ozgcloud.vorgang.collaboration.Fachstelle.FachstelleBuilder;
import de.ozgcloud.vorgang.collaboration.Fachstelle.FachstelleType;
public class FachstelleTestFactory {
public static final FachstelleType TYPE = FachstelleType.ORGANISATIONS_EINHEIT;
public static final String SUBJECT_ID = UUID.randomUUID().toString();
public static final String TECHNICAL_ID = UUID.randomUUID().toString();
public static Fachstelle create() {
return createBuilder().build();
}
public static FachstelleBuilder createBuilder() {
return Fachstelle.builder()
.subjectId(SUBJECT_ID)
.technicalId(TECHNICAL_ID)
.type(TYPE);
}
}
...@@ -24,11 +24,13 @@ ...@@ -24,11 +24,13 @@
package de.ozgcloud.vorgang.collaboration; package de.ozgcloud.vorgang.collaboration;
import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData; import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData;
import de.ozgcloud.vorgang.vorgang.GrpcFachstelle;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory; import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
public class GrpcCreateCollaborationRequestDataTestFactory { public class GrpcCreateCollaborationRequestDataTestFactory {
public static final GrpcFachstelle FACHSTELLE = GrpcFachstelleTestFactory.create();
public static GrpcCreateCollaborationRequestData create() { public static GrpcCreateCollaborationRequestData create() {
return createBuilder().build(); return createBuilder().build();
} }
...@@ -36,7 +38,7 @@ public class GrpcCreateCollaborationRequestDataTestFactory { ...@@ -36,7 +38,7 @@ public class GrpcCreateCollaborationRequestDataTestFactory {
public static GrpcCreateCollaborationRequestData.Builder createBuilder() { public static GrpcCreateCollaborationRequestData.Builder createBuilder() {
return GrpcCreateCollaborationRequestData.newBuilder() return GrpcCreateCollaborationRequestData.newBuilder()
.setVorgangId(VorgangTestFactory.ID) .setVorgangId(VorgangTestFactory.ID)
.setZustaendigeStelle(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID) .setZustaendigeStelle(FACHSTELLE)
.setCollaborationLevel(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL); .setCollaborationLevel(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
} }
} }
package de.ozgcloud.vorgang.collaboration;
import de.ozgcloud.vorgang.vorgang.GrpcFachstelle;
import de.ozgcloud.vorgang.vorgang.GrpcFachstelleType;
public class GrpcFachstelleTestFactory {
public static final GrpcFachstelleType TYPE = GrpcFachstelleType.valueOf(FachstelleTestFactory.TYPE.name());
public static final String SUBJECT_ID = FachstelleTestFactory.SUBJECT_ID;
public static final String TECHNICAL_ID = FachstelleTestFactory.TECHNICAL_ID;
public static GrpcFachstelle create() {
return createBuilder().build();
}
public static GrpcFachstelle.Builder createBuilder() {
return GrpcFachstelle.newBuilder()
.setSubjectId(SUBJECT_ID)
.setTechnicalId(TECHNICAL_ID)
.setType(TYPE);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment