Skip to content
Snippets Groups Projects
Commit 97ab486b authored by OZGCloud's avatar OZGCloud
Browse files

OZG-7131 adjust tests

parent b55ccf23
No related branches found
No related tags found
No related merge requests found
......@@ -25,6 +25,7 @@ package de.ozgcloud.collaboration;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import jakarta.validation.Valid;
......@@ -41,6 +42,7 @@ import de.ozgcloud.collaboration.common.freemarker.TemplateHandler;
import de.ozgcloud.collaboration.common.user.UserProfileService;
import de.ozgcloud.collaboration.vorgang.ServiceKonto;
import de.ozgcloud.collaboration.vorgang.VorgangService;
import de.ozgcloud.common.errorhandling.TechnicalException;
import lombok.RequiredArgsConstructor;
@Service(CollaborationManagerConfiguration.COLLABORATION_SERVICE_NAME) // NOSONAR
......@@ -80,7 +82,7 @@ public class CollaborationService {
private final CommandMapper commandMapper;
@Qualifier(CollaborationManagerConfiguration.TEMPLATE_HANDLER_NAME) // NOSONAR
private final TemplateHandler templateHandler;
private final FachstelleVorgangUrlProvider urlProvider;
private final Optional<FachstelleVorgangUrlProvider> urlProvider;
public void createCollaborationRequest(@Valid CollaborationRequest collaborationRequest) {
var enrichedRequest = enrichCollaborationRequest(collaborationRequest, vorgangService.createCollaborationVorgang(collaborationRequest));
......@@ -101,6 +103,9 @@ public class CollaborationService {
}
public void createFachstellenBeteiligungRequest(@Valid CollaborationRequest collaborationRequest) {
if (urlProvider.isEmpty()) {
throw new TechnicalException("Fachstelle not configured.");
}
var vorgang = vorgangService.getVorgang(collaborationRequest.getVorgangId());
var enrichedRequest = enrichCollaborationRequest(collaborationRequest, vorgang.getId().toString());
var addSubCommandsRequest = buildCreateSubCommandsRequest(enrichedRequest, buildSubCommands(enrichedRequest));
......@@ -163,6 +168,6 @@ public class CollaborationService {
}
Map<String, Object> getTemplateParameters(String vorgangId) {
return Map.of(KEY_VORGANG_LINK, urlProvider.getUrl(vorgangId));
return Map.of(KEY_VORGANG_LINK, urlProvider.get().getUrl(vorgangId));
}
}
\ No newline at end of file
......@@ -24,12 +24,13 @@
package de.ozgcloud.collaboration;
import static org.assertj.core.api.Assertions.*;
import static org.assertj.core.api.InstanceOfAssertFactories.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
......@@ -60,6 +61,7 @@ import de.ozgcloud.collaboration.vorgang.VorgangService;
import de.ozgcloud.collaboration.vorgang.VorgangTestFactory;
import de.ozgcloud.command.CommandTestFactory;
import de.ozgcloud.common.datatype.StringBasedValue;
import de.ozgcloud.common.errorhandling.TechnicalException;
class CollaborationServiceTest {
......@@ -80,7 +82,9 @@ class CollaborationServiceTest {
@Mock
private TemplateHandler templateHandler;
@Mock
private FachstelleVorgangUrlProvider urlProvider;
private FachstelleVorgangUrlProvider provider;
@Mock
private Optional<FachstelleVorgangUrlProvider> urlProvider;
@Nested
class TestCreateCollaborationRequest {
......@@ -253,6 +257,8 @@ class CollaborationServiceTest {
@Nested
class TestCreateFachstellenBeteiligungRequest {
@Nested
class TestCreateRequest {
private static final Vorgang VORGANG = VorgangTestFactory.create();
private static final CollaborationRequest ENRICHED_REQUEST = CollaborationRequestTestFactory.create();
......@@ -268,7 +274,7 @@ class CollaborationServiceTest {
@Test
void shouldCallGetVorgang() {
service.createFachstellenBeteiligungRequest(CollaborationRequestTestFactory.create());
createFachstellenBeteiligungRequest();
verify(vorgangService).getVorgang(VorgangTestFactory.ID_STR);
}
......@@ -284,14 +290,14 @@ class CollaborationServiceTest {
@Test
void shouldCallBuildSubCommands() {
service.createFachstellenBeteiligungRequest(CollaborationRequestTestFactory.create());
createFachstellenBeteiligungRequest();
verify(service).buildSubCommands(ENRICHED_REQUEST);
}
@Test
void shouldCallBuildCreateSubCommandsRequest() {
service.createFachstellenBeteiligungRequest(CollaborationRequestTestFactory.create());
createFachstellenBeteiligungRequest();
verify(service).buildCreateSubCommandsRequest(ENRICHED_REQUEST, List.of(subCommand));
}
......@@ -301,12 +307,24 @@ class CollaborationServiceTest {
var addSubCommandsRequest = OzgCloudCreateSubCommandsRequestTestFactory.create();
doReturn(addSubCommandsRequest).when(service).buildCreateSubCommandsRequest(any(), any());
service.createFachstellenBeteiligungRequest(CollaborationRequestTestFactory.create());
createFachstellenBeteiligungRequest();
verify(commandService).addSubCommands(addSubCommandsRequest);
}
}
@Test
void shouldThrowExceptionIfFachstelleNotConfigured() {
when(urlProvider.isEmpty()).thenReturn(true);
assertThrows(TechnicalException.class, this::createFachstellenBeteiligungRequest);
}
private void createFachstellenBeteiligungRequest() {
service.createFachstellenBeteiligungRequest(CollaborationRequestTestFactory.create());
}
}
@Nested
class TestBuildCreateSubCommandsRequest {
......@@ -602,18 +620,23 @@ class CollaborationServiceTest {
private final String linkToVorgang = LoremIpsum.getInstance().getUrl();
@BeforeEach
void init() {
when(urlProvider.get()).thenReturn(provider);
}
@Test
void shouldCallUrlProvider() {
when(urlProvider.getUrl(any())).thenReturn(linkToVorgang);
when(provider.getUrl(any())).thenReturn(linkToVorgang);
getTemplateParameters();
verify(urlProvider).getUrl(VorgangTestFactory.ID_STR);
verify(provider).getUrl(VorgangTestFactory.ID_STR);
}
@Test
void shouldReturnTemplateParameters() {
when(urlProvider.getUrl(any())).thenReturn(linkToVorgang);
when(provider.getUrl(any())).thenReturn(linkToVorgang);
var result = getTemplateParameters();
......
......@@ -9,3 +9,6 @@ logging:
grpc:
server:
port: -1
ozgcloud:
vorgang-manager:
service-address: vorgang-manager
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment