Skip to content
Snippets Groups Projects
Commit 555aa711 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-7037 move ClientAttributeService into Archive Service

parent 2bc66507
Branches
Tags
2 merge requests!2Ozg 7037 refactor package structure,!1Ozg 7037 vorgang an dms
......@@ -58,7 +58,6 @@ public class ArchiveManagerConfiguration {
public static final String CALL_CONTEXT_PROVIDER_NAME = "archive_CallContextProvider";
public static final String CALL_CONTEXT_MAPPER_NAME = "archive_CallContextMapper";
public static final String CLIENT_ATTRIBUTE_SERVICE_NAME = "archive_ClientAttributeService";
public static final String OZGCLOUD_CLIENT_ATTRIBUTE_SERVICE_NAME = "archive_OzgCloudClientAttributeService";
public static final String KOMMENTAR_SERVICE_NAME = "archive_KommentarService";
......
......@@ -34,7 +34,6 @@ import org.springframework.security.core.context.SecurityContext;
import org.springframework.stereotype.Component;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.attributes.ClientAttributeService;
import de.ozgcloud.archive.common.callcontext.CallContextUser;
import de.ozgcloud.archive.common.callcontext.CurrentUserService;
import de.ozgcloud.archive.common.command.CommandService;
......@@ -69,13 +68,12 @@ class ArchiveEventListener {
@Qualifier(ArchiveManagerConfiguration.CURRENT_USER_SERVICE_NAME) // NOSONAR
private final CurrentUserService currentUserService;
@Qualifier(ArchiveManagerConfiguration.CLIENT_ATTRIBUTE_SERVICE_NAME) // NOSONAR
private final ClientAttributeService clientAttributeService;
@Qualifier(ArchiveManagerConfiguration.VORGANG_SERVICE_NAME) // NOSONAR
private final VorgangService vorgangService;
private final ApplicationEventPublisher eventPublisher;
@Qualifier(ArchiveManagerConfiguration.COMMAND_SERVICE_NAME) // NOSONAR
private final CommandService commandService;
private final ArchiveService archiveService;
......@@ -85,7 +83,7 @@ class ArchiveEventListener {
}
void doLockVorgang(Command command) {
clientAttributeService.setVorgangArchiving(command.getVorgangId());
archiveService.setVorgangArchiving(command.getVorgangId());
vorgangService.lockVorgang(command);
}
......
......@@ -7,8 +7,15 @@ import java.util.UUID;
import jakarta.activation.DataHandler;
import jakarta.activation.FileDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import de.ozgcloud.apilib.client_attribute.OzgCloudAccessPermission;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.common.callcontext.CallContextUser;
import de.ozgcloud.archive.common.xta.XtaService;
import de.ozgcloud.archive.export.ExportService;
import de.ozgcloud.command.Command;
......@@ -20,8 +27,25 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
class ArchiveService {
public static final String ATTRIBUTE_NAME_ANTRAG_ARCHIVING = "ARCHIVING";
private final XtaService xtaService;
private final ExportService exportService;
@Qualifier(ArchiveManagerConfiguration.OZGCLOUD_CLIENT_ATTRIBUTE_SERVICE_NAME) // NOSONAR
private final OzgCloudClientAttributeService ozgCloudAttributesService;
private final OzgCloudVorgangIdMapper vorgangIdMapper;
public void setVorgangArchiving(String vorgangId) {
ozgCloudAttributesService.setClientAttribute(buildBooleanClientAttribute(true), vorgangIdMapper.fromString(vorgangId));
}
OzgCloudBooleanClientAttribute buildBooleanClientAttribute(boolean isArchiving) {
return OzgCloudBooleanClientAttribute.builder()
.clientName(CallContextUser.ARCHIVE_MANAGER_CLIENT_NAME)
.access(OzgCloudAccessPermission.READ_ONLY)
.attributeName(ATTRIBUTE_NAME_ANTRAG_ARCHIVING)
.value(isArchiving)
.build();
}
public void archiveVorgang(Command command) {
xtaService.sendXdomeaFile(buildXdomeaXtaFile(command.getVorgangId()));
......
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.ozgcloud.archive.attributes;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import de.ozgcloud.apilib.client_attribute.OzgCloudAccessPermission;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.common.callcontext.CallContextUser;
import lombok.RequiredArgsConstructor;
@Service(ArchiveManagerConfiguration.CLIENT_ATTRIBUTE_SERVICE_NAME) // NOSONAR
@RequiredArgsConstructor
public class ClientAttributeService {
public static final String ATTRIBUTE_NAME_ANTRAG_ARCHIVING = "ARCHIVING";
@Qualifier(ArchiveManagerConfiguration.OZGCLOUD_CLIENT_ATTRIBUTE_SERVICE_NAME) // NOSONAR
private final OzgCloudClientAttributeService ozgCloudAttributesService;
private final OzgCloudVorgangIdMapper vorgangIdMapper;
public void setVorgangArchiving(String vorgangId) {
ozgCloudAttributesService.setClientAttribute(buildBooleanClientAttribute(true), vorgangIdMapper.fromString(vorgangId));
}
OzgCloudBooleanClientAttribute buildBooleanClientAttribute(boolean isArchiving) {
return OzgCloudBooleanClientAttribute.builder()
.clientName(CallContextUser.ARCHIVE_MANAGER_CLIENT_NAME)
.access(OzgCloudAccessPermission.READ_ONLY)
.attributeName(ATTRIBUTE_NAME_ANTRAG_ARCHIVING)
.value(isArchiving)
.build();
}
}
......@@ -40,7 +40,6 @@ import org.mockito.Spy;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.security.core.context.SecurityContext;
import de.ozgcloud.archive.attributes.ClientAttributeService;
import de.ozgcloud.archive.common.callcontext.CurrentUserService;
import de.ozgcloud.archive.common.command.CommandService;
import de.ozgcloud.archive.common.errorhandling.TimeoutException;
......@@ -63,8 +62,6 @@ class ArchiveEventListenerTest {
@Mock
private CurrentUserService currentUserService;
@Mock
private ClientAttributeService clientAttributeService;
@Mock
private VorgangService vorgangService;
@Mock
private ApplicationEventPublisher eventPublisher;
......@@ -103,7 +100,7 @@ class ArchiveEventListenerTest {
void shouldCallSetVorgangArchiving() {
doLockVorgang();
verify(clientAttributeService).setVorgangArchiving(CommandTestFactory.VORGANG_ID);
verify(archiveService).setVorgangArchiving(CommandTestFactory.VORGANG_ID);
}
@Test
......
......@@ -17,11 +17,18 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockedConstruction;
import org.mockito.Spy;
import de.ozgcloud.apilib.client_attribute.OzgCloudAccessPermission;
import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
import de.ozgcloud.archive.common.callcontext.CallContextUser;
import de.ozgcloud.archive.common.xta.XtaService;
import de.ozgcloud.archive.export.ExportService;
import de.ozgcloud.archive.vorgang.VorgangWithEingangTestFactory;
......@@ -42,6 +49,76 @@ class ArchiveServiceTest {
private ExportService exportService;
@Mock
private XtaService xtaService;
@Mock
private OzgCloudClientAttributeService ozgCloudAttributesService;
@Mock
private OzgCloudVorgangIdMapper vorgangIdMapper;
@Nested
class TestSetVorgangArchiving {
@Test
void shouldBuildBooleanClientAttribute() {
setVorgangArchiving();
verify(service).buildBooleanClientAttribute(true);
}
@Test
void shouldCallVorgangIdMapper() {
setVorgangArchiving();
verify(vorgangIdMapper).fromString(VorgangWithEingangTestFactory.ID);
}
@Test
void shouldSetClientAttribute() {
var attribute = OzgCloudBooleanClientAttributeTestFactory.create();
doReturn(attribute).when(service).buildBooleanClientAttribute(true);
when(vorgangIdMapper.fromString(VorgangWithEingangTestFactory.ID)).thenReturn(OzgCloudVorgangId.from(VorgangWithEingangTestFactory.ID));
setVorgangArchiving();
verify(ozgCloudAttributesService).setClientAttribute(attribute, OzgCloudVorgangId.from(VorgangWithEingangTestFactory.ID));
}
private void setVorgangArchiving() {
service.setVorgangArchiving(VorgangWithEingangTestFactory.ID);
}
}
@Nested
class TestBuildBooleanClientAttribute {
@Test
void shouldSetClientName() {
var attribute = service.buildBooleanClientAttribute(false);
assertThat(attribute.getClientName()).isEqualTo(CallContextUser.ARCHIVE_MANAGER_CLIENT_NAME);
}
@Test
void shouldSetAccess() {
var attribute = service.buildBooleanClientAttribute(false);
assertThat(attribute.getAccess()).isEqualTo(OzgCloudAccessPermission.READ_ONLY);
}
@Test
void shouldSetAttributeName() {
var attribute = service.buildBooleanClientAttribute(false);
assertThat(attribute.getAttributeName()).isEqualTo(ArchiveService.ATTRIBUTE_NAME_ANTRAG_ARCHIVING);
}
@ParameterizedTest
@ValueSource(booleans = { true, false })
void shouldSetValue(boolean isArchiving) {
var attribute = service.buildBooleanClientAttribute(isArchiving);
assertThat(attribute.getValue()).isEqualTo(isArchiving);
}
}
@Nested
class TestArchiveVorgang {
......
package de.ozgcloud.archive.archivierung;
import com.thedeanda.lorem.LoremIpsum;
import de.ozgcloud.apilib.client_attribute.OzgCloudAccessPermission;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute.OzgCloudBooleanClientAttributeBuilder;
import de.ozgcloud.archive.common.callcontext.CallContextUserTestFactory;
public class OzgCloudBooleanClientAttributeTestFactory {
private static final boolean VALUE = true;
private static final String ATTRIBUTE_NAME = LoremIpsum.getInstance().getWords(1);
private static final OzgCloudAccessPermission ACCESS = OzgCloudAccessPermission.READ_ONLY;
private static final String CLIENT_NAME = CallContextUserTestFactory.CLIENT_NAME;
public static OzgCloudBooleanClientAttribute create() {
return createBuilder().build();
}
private static OzgCloudBooleanClientAttributeBuilder<?, ?> createBuilder() {
return OzgCloudBooleanClientAttribute.builder()
.clientName(CLIENT_NAME)
.access(ACCESS)
.attributeName(ATTRIBUTE_NAME)
.value(VALUE);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment