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

OZG-7350 implement GrpcCreateCollaborationRequestData with Fachstelle

parent ff7caf02
No related branches found
No related tags found
No related merge requests found
Showing
with 157 additions and 18 deletions
......@@ -213,7 +213,19 @@ message GrpcCreateCollaborationVorgangRequest {
message GrpcCreateCollaborationRequestData {
string vorgangId = 1;
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 {
......
......@@ -59,7 +59,7 @@ public class CollaborationService {
VorgangHead getHeader(CreateCollaborationVorgangRequest request) {
return request.getVorgang().getHeader().toBuilder()
.collaborationLevel(request.getCollaborationLevel())
.organisationsEinheitId(request.getZustaendigeStelle())
.organisationsEinheitId(request.getZustaendigeStelle().getSubjectId())
.build();
}
}
......@@ -33,5 +33,5 @@ public class CreateCollaborationVorgangRequest {
private Vorgang vorgang;
private int collaborationLevel;
private String zustaendigeStelle;
private Fachstelle zustaendigeStelle;
}
......@@ -29,7 +29,7 @@ import org.mapstruct.ReportingPolicy;
import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData;
@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, uses = FachstelleMapper.class)
public interface CreateCollaborationVorgangRequestMapper {
@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 @@
package de.ozgcloud.vorgang.collaboration;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import java.time.ZonedDateTime;
......@@ -46,7 +47,6 @@ import de.ozgcloud.vorgang.vorgang.Vorgang;
import de.ozgcloud.vorgang.vorgang.VorgangHead;
import de.ozgcloud.vorgang.vorgang.VorgangHeadTestFactory;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
class CollaborationServiceTest {
......@@ -62,7 +62,8 @@ class CollaborationServiceTest {
@Nested
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 Vorgang SAVED_VORGANG = VorgangTestFactory.createBuilder().id(COLLABORATION_VORGANG_ID).build();
......@@ -228,10 +229,10 @@ class CollaborationServiceTest {
private static final ServiceKonto SERVICE_KONTO = ServiceKontoTestFactory.create();
@Test
void shouldSetZustaendigeStelle() {
void shouldSetOrganisationsEinheitId() {
var result = getHeader();
assertThat(result.getOrganisationsEinheitId()).isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
assertThat(result.getOrganisationsEinheitId()).isEqualTo(FachstelleTestFactory.SUBJECT_ID);
}
@Test
......
......@@ -24,18 +24,39 @@
package de.ozgcloud.vorgang.collaboration;
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.mapstruct.factory.Mappers;
import org.mockito.InjectMocks;
import org.mockito.Mock;
class CreateCollaborationVorgangRequestMapperTest {
@InjectMocks
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
void shouldMapFromGrpc() {
when(fachstelleMapper.fromGrpc(any())).thenReturn(FachstelleTestFactory.create());
var result = mapper.mapFrom(GrpcCreateCollaborationRequestDataTestFactory.create());
assertThat(result).usingRecursiveComparison().ignoringFields("vorgang").isEqualTo(CreateCollaborationVorgangRequestTestFactory.create());
}
}
}
\ No newline at end of file
......@@ -25,10 +25,10 @@ package de.ozgcloud.vorgang.collaboration;
import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest.CreateCollaborationVorgangRequestBuilder;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
public class CreateCollaborationVorgangRequestTestFactory {
public static final Fachstelle ZUSTAENDIGE_STELLE = FachstelleTestFactory.create();
public static final int COLLABORATION_LEVEL = 1;
public static CreateCollaborationVorgangRequest create() {
......@@ -38,7 +38,7 @@ public class CreateCollaborationVorgangRequestTestFactory {
public static CreateCollaborationVorgangRequestBuilder createBuilder() {
return CreateCollaborationVorgangRequest.builder()
.vorgang(VorgangTestFactory.create())
.zustaendigeStelle(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)
.zustaendigeStelle(ZUSTAENDIGE_STELLE)
.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 @@
package de.ozgcloud.vorgang.collaboration;
import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData;
import de.ozgcloud.vorgang.vorgang.GrpcFachstelle;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
public class GrpcCreateCollaborationRequestDataTestFactory {
public static final GrpcFachstelle FACHSTELLE = GrpcFachstelleTestFactory.create();
public static GrpcCreateCollaborationRequestData create() {
return createBuilder().build();
}
......@@ -36,7 +38,7 @@ public class GrpcCreateCollaborationRequestDataTestFactory {
public static GrpcCreateCollaborationRequestData.Builder createBuilder() {
return GrpcCreateCollaborationRequestData.newBuilder()
.setVorgangId(VorgangTestFactory.ID)
.setZustaendigeStelle(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)
.setZustaendigeStelle(FACHSTELLE)
.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