Skip to content
Snippets Groups Projects
Commit 47a4f775 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-7350 Adjusted mocking in CollaborationITCase and fixed naming for...

OZG-7350 Adjusted mocking in CollaborationITCase and fixed naming for GrpcCreateCollaborationRequestData
parent 6d83ad91
Branches
Tags
No related merge requests found
......@@ -214,7 +214,7 @@ message GrpcCreateCollaborationRequestData {
string vorgangId = 1;
int32 collaborationLevel = 2;
reserved 3;
string organisationsEinheitId = 4;
string organisationEinheitId = 4;
}
message GrpcCreateCollaborationVorgangResponse {
......
......@@ -33,5 +33,6 @@ import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData;
public interface CreateCollaborationVorgangRequestMapper {
@Mapping(target = "vorgang", ignore = true)
@Mapping(target = "organisationsEinheitId", source = "organisationEinheitId")
CreateCollaborationVorgangRequest mapFrom(GrpcCreateCollaborationRequestData grpcCollaborationRequest);
}
......@@ -49,11 +49,8 @@ import org.mockito.Captor;
import org.mockito.Mock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Bean;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
......@@ -74,6 +71,7 @@ import de.ozgcloud.collaboration.CollaborationService;
import de.ozgcloud.collaboration.CollaborationServiceGrpc.CollaborationServiceBlockingStub;
import de.ozgcloud.collaboration.GrpcGetFileContentRequest;
import de.ozgcloud.collaboration.fachstelle.Fachstelle.FachstelleType;
import de.ozgcloud.collaboration.fachstelle.FachstelleService;
import de.ozgcloud.collaboration.request.CollaborationRequestId;
import de.ozgcloud.collaboration.request.CollaborationRequestServiceGrpc.CollaborationRequestServiceBlockingStub;
import de.ozgcloud.collaboration.request.GrpcFindRequestsRequest;
......@@ -103,17 +101,13 @@ import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
import io.grpc.Status;
import io.grpc.StatusRuntimeException;
import net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration;
import net.devh.boot.grpc.client.inject.GrpcClient;
import net.devh.boot.grpc.server.autoconfigure.GrpcServerAutoConfiguration;
import net.devh.boot.grpc.server.autoconfigure.GrpcServerFactoryAutoConfiguration;
@SpringBootTest(properties = {
"grpc.server.inProcessName=test",
"grpc.client.vorgang-manager.address=in-process:test",
"grpc.client.ozgcloud-command-manager.address=in-process:test",
"grpc.client.file-manager.address=in-process:test",
"grpc.client.zufi-manager.address=in-process:test",
"grpc.client.inProcess.address=in-process:test",
"grpc.client.pluto.address=in-process:test"
})
......@@ -125,7 +119,6 @@ class CollaborationITCase {
private static final String FIELD_COLLABORATION_VORGANG_ID = "collaborationVorgangId";
private static final String TITEL = "Collaboration Vorgang";
private static final String BESCHREIBUNG = "Beschreibung der Anfrage";
private static final String ZUFI_ID = UUID.randomUUID().toString();
@Autowired
private CommandService commandService;
......@@ -145,6 +138,8 @@ class CollaborationITCase {
private OzgCloudUserProfile ozgCloudUserProfile;
@MockBean
private OzgCloudClientAttributeMapper clientAttributeMapper;
@MockBean
private FachstelleService fachstelleService;
private String vorgangId;
......@@ -225,24 +220,6 @@ class CollaborationITCase {
}
}
private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId, int collaborationLevel) {
return buildCreateCollaborationVorgangCommand(vorgangId, collaborationLevel, ZUFI_ID);
}
private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId, int collaborationLevel, String zustaendigeStelleId) {
return CreateCommandRequest.builder()
.callContext(CallContext.builder().client("test").build())
.vorgangId(vorgangId)
.relationId(vorgangId)
.order("CREATE_COLLABORATION_REQUEST")
.bodyObject(Map.of(
"titel", TITEL,
"beschreibung", BESCHREIBUNG,
"collaborationLevel", collaborationLevel,
"zustaendigeStelle", zustaendigeStelleId))
.build();
}
private List<VorgangAttachedItem> loadCollaborationRequest(String vorgangId) {
var query = new Query(new Criteria().andOperator(
Criteria.where(VorgangAttachedItem.FIELDNAME_VORGANG_ID).is(vorgangId),
......@@ -258,11 +235,13 @@ class CollaborationITCase {
@Nested
class TestCreateCollaborationVorgang {
public static final String ORGANISATIONS_EINHEIT_ID = UUID.randomUUID().toString();
@BeforeEach
void init() {
when(ozgCloudUserProfile.getId()).thenReturn(OzgCloudUserId.from(CommandTestFactory.CREATED_BY));
when(collaborationOzgCloudUserProfileService.getById(any())).thenReturn(ozgCloudUserProfile);
when(fachstelleService.getOrganisationEinheit(FachstelleTestFactory.TECHNICAL_ID)).thenReturn(FachstelleTestFactory.create());
}
@Test
......@@ -286,14 +265,14 @@ class CollaborationITCase {
assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getCollaborationLevel)
.isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getOrganisationsEinheitId)
.isEqualTo(OrganisationsEinheitGrpcServiceMock.ORGANISATIONS_EINHEIT_ID);
.isEqualTo(FachstelleTestFactory.SUBJECT_ID);
assertThat(collaborationVorgang.getClientAttributes()).isEmpty();
}
private Command createCommand() {
return commandService.createCommand(
buildCreateCollaborationVorgangCommand(vorgangId,
CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL, OrganisationsEinheitGrpcServiceMock.ID));
CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL, FachstelleTestFactory.TECHNICAL_ID));
}
private Vorgang loadCollaborationVorgang(String sourceVorgangId) {
......@@ -317,6 +296,7 @@ class CollaborationITCase {
void init() {
when(ozgCloudUserProfile.getId()).thenReturn(OzgCloudUserId.from(CommandTestFactory.CREATED_BY));
when(collaborationOzgCloudUserProfileService.getById(any())).thenReturn(ozgCloudUserProfile);
when(fachstelleService.getExterneFachstelle(FachstelleTestFactory.TECHNICAL_ID)).thenReturn(FachstelleTestFactory.create());
}
@Test
......@@ -338,7 +318,7 @@ class CollaborationITCase {
verify(postfachRemoteService).sendMessage(postfachNachrichtCaptor.capture());
assertThat(postfachNachrichtCaptor.getValue().getPostfachAddress()).extracting(PostfachAddress::getIdentifier)
.hasToString(FachstelleGrpcServiceMock.MUK_ID);
.hasToString(FachstelleTestFactory.SUBJECT_ID);
}
@Test
......@@ -367,8 +347,22 @@ class CollaborationITCase {
private Command createCommand() {
return commandService
.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, COLLABORATION_LEVEL, FachstelleGrpcServiceMock.ZUFI_ID));
.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, COLLABORATION_LEVEL, FachstelleTestFactory.TECHNICAL_ID));
}
}
private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId, int collaborationLevel, String zustaendigeStelleId) {
return CreateCommandRequest.builder()
.callContext(CallContext.builder().client("test").build())
.vorgangId(vorgangId)
.relationId(vorgangId)
.order("CREATE_COLLABORATION_REQUEST")
.bodyObject(Map.of(
"titel", TITEL,
"beschreibung", BESCHREIBUNG,
"collaborationLevel", collaborationLevel,
"zustaendigeStelle", zustaendigeStelleId))
.build();
}
@DisplayName("Collaboration requests")
......@@ -386,9 +380,9 @@ class CollaborationITCase {
public static final String COLLABORATION_VORGANG_ID = UUID.randomUUID().toString();
public static final int COLLABORATION_LEVEL = 1;
private static final String TECHNICAL_ID = OrganisationsEinheitGrpcServiceMock.ID;
private static final String SUBJECT_ID = OrganisationsEinheitGrpcServiceMock.ORGANISATIONS_EINHEIT_ID;
private static final FachstelleType TYPE = FachstelleType.ORGANISATIONS_EINHEIT;
private static final String TECHNICAL_ID = FachstelleTestFactory.TECHNICAL_ID;
private static final String SUBJECT_ID = FachstelleTestFactory.SUBJECT_ID;
private static final FachstelleType TYPE = FachstelleType.ORGANISATION_EINHEIT;
private final Vorgang vorgang = VorgangTestFactory.create();
......@@ -499,21 +493,4 @@ class CollaborationITCase {
}
}
@TestConfiguration
@ImportAutoConfiguration({
GrpcServerAutoConfiguration.class,
GrpcServerFactoryAutoConfiguration.class,
GrpcClientAutoConfiguration.class })
static class ZufiServerTestConfiguration {
@Bean
FachstelleGrpcServiceMock fachstelleGrpcServiceMock() {
return new FachstelleGrpcServiceMock();
}
@Bean
OrganisationsEinheitGrpcServiceMock organisationsEinheitGrpcServiceMock() {
return new OrganisationsEinheitGrpcServiceMock();
}
}
}
\ No newline at end of file
package de.ozgcloud.vorgang.collaboration;
import java.util.UUID;
import com.thedeanda.lorem.LoremIpsum;
import de.ozgcloud.zufi.grpc.fachstelle.FachstelleServiceGrpc.FachstelleServiceImplBase;
import de.ozgcloud.zufi.grpc.fachstelle.GrpcFachstelle;
import de.ozgcloud.zufi.grpc.fachstelle.GrpcFachstelleGetRequest;
import de.ozgcloud.zufi.grpc.fachstelle.GrpcFachstelleGetResponse;
import io.grpc.stub.StreamObserver;
import net.devh.boot.grpc.server.service.GrpcService;
@GrpcService
class FachstelleGrpcServiceMock extends FachstelleServiceImplBase {
static final String ZUFI_ID = UUID.randomUUID().toString();
static final String MUK_ID = UUID.randomUUID().toString();
public static final String FIRMEN_NAME = LoremIpsum.getInstance().getWords(2);
public static final String RECHTSFORM = LoremIpsum.getInstance().getWords(1);
public static final String RECHTSFORM_TEXT = LoremIpsum.getInstance().getWords(1);
public static final String REGISTER_NUMMER = UUID.randomUUID().toString();
public static final String REGISTER_ART = LoremIpsum.getInstance().getWords(1);
public static final String EMAIL_ADRESSE = LoremIpsum.getInstance().getEmail();
public static final String ANSCHRIFT = LoremIpsum.getInstance().getWords(5);
@Override
public void getById(GrpcFachstelleGetRequest request, StreamObserver<GrpcFachstelleGetResponse> responseObserver) {
if (request.getId().equals(ZUFI_ID)) {
responseObserver.onNext(buildFachstelleGetResponse());
responseObserver.onCompleted();
} else {
throw new AssertionError("Expected zufiId %s. But actual zufiId was %s.".formatted(ZUFI_ID, request.getId()));
}
}
GrpcFachstelleGetResponse buildFachstelleGetResponse() {
return GrpcFachstelleGetResponse.newBuilder()
.setFachstelle(GrpcFachstelle.newBuilder()
.setId(ZUFI_ID)
.setMukId(MUK_ID)
.setFirmenName(FIRMEN_NAME)
.setRechtsform(RECHTSFORM)
.setRechtsformText(RECHTSFORM_TEXT)
.setRegisterNummer(REGISTER_NUMMER)
.setRegisterArt(REGISTER_ART)
.setEmailAdresse(EMAIL_ADRESSE)
.setAnschrift(ANSCHRIFT))
.build();
}
}
package de.ozgcloud.vorgang.collaboration;
import java.util.UUID;
import de.ozgcloud.collaboration.fachstelle.Fachstelle;
import de.ozgcloud.collaboration.fachstelle.Fachstelle.FachstelleBuilder;
import de.ozgcloud.collaboration.fachstelle.Fachstelle.FachstelleType;
public class FachstelleTestFactory {
public static final String SUBJECT_ID = UUID.randomUUID().toString();
public static final String TECHNICAL_ID = UUID.randomUUID().toString();
public static final FachstelleType TYPE = FachstelleType.ORGANISATION_EINHEIT;
public static Fachstelle create() {
return createBuilder().build();
}
public static FachstelleBuilder createBuilder() {
return Fachstelle.builder()
.subjectId(SUBJECT_ID)
.technicalId(TECHNICAL_ID)
.type(TYPE);
}
}
......@@ -35,7 +35,7 @@ public class GrpcCreateCollaborationRequestDataTestFactory {
public static GrpcCreateCollaborationRequestData.Builder createBuilder() {
return GrpcCreateCollaborationRequestData.newBuilder()
.setVorgangId(VorgangTestFactory.ID)
.setOrganisationsEinheitId(CreateCollaborationVorgangRequestTestFactory.ORGANISATIONSEINHEIT_ID)
.setOrganisationEinheitId(CreateCollaborationVorgangRequestTestFactory.ORGANISATIONSEINHEIT_ID)
.setCollaborationLevel(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
}
}
package de.ozgcloud.vorgang.collaboration;
import java.util.Random;
import java.util.UUID;
import com.thedeanda.lorem.LoremIpsum;
import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcAnschrift;
import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheit;
import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetRequest;
import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetResponse;
import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcXzufiId;
import de.ozgcloud.zufi.grpc.organisationseinheit.OrganisationsEinheitServiceGrpc.OrganisationsEinheitServiceImplBase;
import io.grpc.stub.StreamObserver;
import net.devh.boot.grpc.server.service.GrpcService;
@GrpcService
public class OrganisationsEinheitGrpcServiceMock extends OrganisationsEinheitServiceImplBase {
public static final String ID = UUID.randomUUID().toString();
public static final String ORGANISATIONS_EINHEIT_ID = UUID.randomUUID().toString();
public static final String SCHEME_AGENCY_ID = UUID.randomUUID().toString();
public static final GrpcXzufiId XZUFI_ID = GrpcXzufiId.newBuilder().setId(ORGANISATIONS_EINHEIT_ID).setSchemeAgencyId(SCHEME_AGENCY_ID).build();
public static final String NAME = LoremIpsum.getInstance().getName();
public static final String SYNONYME = LoremIpsum.getInstance().getWords(5);
public static final String PLZ = LoremIpsum.getInstance().getZipCode();
public static final String ORT = LoremIpsum.getInstance().getCity();
public static final String STRASSE = LoremIpsum.getInstance().getWords(2);
public static final String HAUSNUMMER = String.valueOf(new Random().nextInt());
public static final GrpcAnschrift ANSCHRIFT = GrpcAnschrift.newBuilder()
.setStrasse(STRASSE)
.setHausnummer(HAUSNUMMER)
.setPlz(PLZ)
.setOrt(ORT)
.build();
public static final String VORGANG_MANAGER_ADDRESS = LoremIpsum.getInstance().getUrl();
@Override
public void getById(GrpcOrganisationsEinheitGetRequest request, StreamObserver<GrpcOrganisationsEinheitGetResponse> responseObserver) {
if (request.getId().equals(ID)) {
responseObserver.onNext(buildOrganisationsEinheitGetResponse());
responseObserver.onCompleted();
} else {
throw new AssertionError("Expected id %s. But actual id was %s.".formatted(ID, request.getId()));
}
}
GrpcOrganisationsEinheitGetResponse buildOrganisationsEinheitGetResponse() {
return GrpcOrganisationsEinheitGetResponse.newBuilder().setOrganisationsEinheit(
GrpcOrganisationsEinheit.newBuilder()
.setId(ID)
.setName(NAME)
.setAnschrift(ANSCHRIFT)
.setVorgangManagerAddress(VORGANG_MANAGER_ADDRESS)
.setXzufiId(XZUFI_ID)
.build())
.build();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment