diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/Order.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/Order.java index 5a4c25ad185ea39ac6722fad8e27e0cf96115d91..cdc8f9ed1fe03bd3c28231b45ba909c24500d5f0 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/Order.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/Order.java @@ -50,6 +50,7 @@ public enum Order { REDIRECT_VORGANG, FORWARD_SUCCESSFULL, FORWARD_FAILED, + FORWARD_VORGANG, SEND_POSTFACH_MAIL, RESEND_POSTFACH_MAIL, diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/Address.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/Address.java new file mode 100644 index 0000000000000000000000000000000000000000..b15442afab102d783a5b10787a274f87604a3a34 --- /dev/null +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/Address.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 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.vorgang.vorgang.redirect; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +class Address { + + private String street; + private String houseNumber; + private String zipCode; + private String city; +} diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListener.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListener.java index d84484bc860b99521ce9a382437d96ee17c73b17..7f25cf25bf14f9ed44eee288bb9fdda44f43c90a 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListener.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListener.java @@ -26,7 +26,6 @@ package de.ozgcloud.vorgang.vorgang.redirect; import java.util.ConcurrentModificationException; import java.util.function.Predicate; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; @@ -38,9 +37,11 @@ import de.ozgcloud.nachrichten.email.MailSendErrorEvent; import de.ozgcloud.nachrichten.email.MailSendRequest; import de.ozgcloud.nachrichten.email.MailSentEvent; import de.ozgcloud.vorgang.command.Order; +import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @Component +@RequiredArgsConstructor @Log4j2 public class ForwardingEventListener { @@ -48,17 +49,17 @@ public class ForwardingEventListener { private static final String IS_SUCCESSFULL_ORDER_CONDITION = "{T(de.ozgcloud.vorgang.vorgang.redirect.ForwardingEventListener).IS_SUCCESSFULL_ORDER.test(event.getSource())}"; private static final String IS_FAILED_ORDER_CONDITION = "{T(de.ozgcloud.vorgang.vorgang.redirect.ForwardingEventListener).IS_FAILED_ORDER.test(event.getSource())}"; private static final String IS_FORWARD_ORDER_CONDITION = "{T(de.ozgcloud.vorgang.vorgang.redirect.ForwardingEventListener).IS_FORWARD_ORDER.test(event.getSource())}"; + private static final String IS_FORWARD_VORGANG_ORDER_CONDITION = "{T(de.ozgcloud.vorgang.vorgang.redirect.ForwardingEventListener).IS_FORWARD_VORGANG_ORDER.test(event.getSource())}"; public static final Predicate<MailSendRequest> IS_REDIRECT_MAIL_REQ = req -> req.getRequestReference() instanceof Forwarding; public static final Predicate<Command> IS_SUCCESSFULL_ORDER = command -> Order.FORWARD_SUCCESSFULL.isMeant(command.getOrder()); public static final Predicate<Command> IS_FAILED_ORDER = command -> Order.FORWARD_FAILED.isMeant(command.getOrder()); public static final Predicate<Command> IS_FORWARD_ORDER = command -> Order.REDIRECT_VORGANG.isMeant(command.getOrder()); + public static final Predicate<Command> IS_FORWARD_VORGANG_ORDER = command -> Order.FORWARD_VORGANG.isMeant(command.getOrder()); - @Autowired - private ForwardingService service; - - @Autowired - private ApplicationEventPublisher publisher; + private final ForwardingService service; + private final ApplicationEventPublisher publisher; + private final ForwardingRequestMapper forwardingRequestMapper; @EventListener(condition = IS_FORWARD_ORDER_CONDITION) public void onForwardOrder(CommandCreatedEvent event) { @@ -89,6 +90,11 @@ public class ForwardingEventListener { service.markAsFailed(event.getSource()); } + @EventListener(condition = IS_FORWARD_VORGANG_ORDER_CONDITION) + public void onForwardVorgangOrder(CommandCreatedEvent event) { + service.forward(forwardingRequestMapper.fromCommand(event.getSource())); + } + private void handleException(Runnable runnable, String commandId) { try { runnable.run(); diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequest.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..b8dbf058763bb106e0a9a700af4bde86e1c755a5 --- /dev/null +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequest.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 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.vorgang.vorgang.redirect; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class ForwardingRequest { + + private String vorgangId; + private long version; + private String createdBy; + private String createdByName; + private OrganisationEinheit organisationEinheit; +} diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestMapper.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..0da7cd2ac9c189a8fab893884b05052b39c5f94a --- /dev/null +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestMapper.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2025 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.vorgang.vorgang.redirect; + +import java.util.Map; + +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; + +import de.ozgcloud.command.Command; + +@Mapper +interface ForwardingRequestMapper { + + @Mapping(target = "version", source = "relationVersion") + @Mapping(target = "organisationEinheit", source = "bodyObject") + ForwardingRequest fromCommand(Command command); + + @Mapping(target = "id", expression = "java((String) body.get(\"organisationsEinheitId\"))") + @Mapping(target = "name", expression = "java((String) body.get(\"name\"))") + @Mapping(target = "address", source = ".") + OrganisationEinheit toOrganisationEinheit(Map<String, Object> body); + + @Mapping(target = "street", expression = "java((String) body.get(\"strasse\"))") + @Mapping(target = "houseNumber", expression = "java((String) body.get(\"hausnummer\"))") + @Mapping(target = "zipCode", expression = "java((String) body.get(\"plz\"))") + @Mapping(target = "city", expression = "java((String) body.get(\"ort\"))") + Address toAddress(Map<String, Object> body); +} diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingService.java index 7af3879a0b86aa557a864fc13b32889b986eeb0d..a38f6fcf7b6ea3d663ba5e097f8675e6a64bfd77 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingService.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingService.java @@ -329,4 +329,8 @@ public class ForwardingService { public Stream<Forwarding> findForwardings(String vorgangId) { return repository.findByVorgangId(vorgangId).stream(); } + + public void forward(ForwardingRequest request) { + + } } \ No newline at end of file diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/OrganisationEinheit.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/OrganisationEinheit.java new file mode 100644 index 0000000000000000000000000000000000000000..8465f4180d3f235292f899aa1bd1fe481411f10d --- /dev/null +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/OrganisationEinheit.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 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.vorgang.vorgang.redirect; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class OrganisationEinheit { + + private String id; + private String name; + private Address address; +} diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/AddressTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/AddressTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..69d3d4e215f8aac71fd2b967d98b8212aa3d3b61 --- /dev/null +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/AddressTestFactory.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 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.vorgang.vorgang.redirect; + +import com.thedeanda.lorem.LoremIpsum; + +import de.ozgcloud.vorgang.vorgang.redirect.Address.AddressBuilder; + +class AddressTestFactory { + + public static final String STREET = LoremIpsum.getInstance().getName(); + public static final String HOUSE_NUMBER = "42a"; + public static final String ZIP_CODE = LoremIpsum.getInstance().getZipCode(); + public static final String CITY = LoremIpsum.getInstance().getCity(); + + public static Address create() { + return createBuilder().build(); + } + + public static AddressBuilder createBuilder() { + return new AddressBuilder() + .street(STREET) + .houseNumber(HOUSE_NUMBER) + .zipCode(ZIP_CODE) + .city(CITY); + } +} diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerTest.java index 1c436314978374894da998e3a8dd766fc03801c8..364aa21a99328cbf1050ff04a39b7883ad0c6535 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerTest.java @@ -23,18 +23,26 @@ */ package de.ozgcloud.vorgang.vorgang.redirect; +import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.util.ConcurrentModificationException; +import java.util.Map; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.springframework.context.ApplicationEventPublisher; +import com.thedeanda.lorem.LoremIpsum; + import de.ozgcloud.command.Command; +import de.ozgcloud.command.CommandCreatedEvent; import de.ozgcloud.command.CommandFailedEvent; import de.ozgcloud.nachrichten.email.MailSentEventTestFactory; import de.ozgcloud.vorgang.command.CommandCreatedEventTestFactory; @@ -50,9 +58,11 @@ class ForwardingEventListenerTest { private ForwardingService forwardingService; @Mock private ApplicationEventPublisher publisher; + @Mock + private ForwardingRequestMapper forwardingRequestMapper; @Nested - class onForwardOrderCommand { + class OnForwardOrderCommand { @Test void shouldCallService() { @@ -72,7 +82,7 @@ class ForwardingEventListenerTest { } @Nested - class onMailSentEvent { + class OnMailSentEvent { private Forwarding forwarding = ForwardingTestFactory.create(); @@ -85,6 +95,42 @@ class ForwardingEventListenerTest { } + @Nested + class TestOnForwardVorgangOrder { + + private final CommandCreatedEvent event = event(); + @Captor + private ArgumentCaptor<ForwardingRequest> forwardingRequestCaptor; + + @BeforeEach + void init() { + when(forwardingRequestMapper.fromCommand(event.getSource())).thenReturn(ForwardingRequestTestFactory.create()); + } + + @Test + void shouldMapCommandForwardingRequest() { + listener.onForwardVorgangOrder(event); + + verify(forwardingRequestMapper).fromCommand(event.getSource()); + } + + @Test + void shouldCallForwardingService() { + listener.onForwardVorgangOrder(event); + + verify(forwardingService).forward(forwardingRequestCaptor.capture()); + assertThat(forwardingRequestCaptor.getValue()).usingRecursiveComparison().isEqualTo(ForwardingRequestTestFactory.create()); + } + + private static CommandCreatedEvent event() { + return CommandCreatedEventTestFactory.create(CommandTestFactory.createBuilder().bodyObject(commandBody()).build()); + } + + private static Map<String, Object> commandBody() { + return Map.of(LoremIpsum.getInstance().getWords(1), LoremIpsum.getInstance().getWords(1)); + } + } + @Nested class TestMarkAsSuccessfull { diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestMapperTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..08f42edb7f2c5c41a6b3673d78569a40dce0773b --- /dev/null +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestMapperTest.java @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2025 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.vorgang.vorgang.redirect; + +import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; + +import java.util.Map; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; +import org.mockito.Spy; + +import de.ozgcloud.vorgang.command.CommandTestFactory; + +class ForwardingRequestMapperTest { + + @Spy + private ForwardingRequestMapper mapper = Mappers.getMapper(ForwardingRequestMapper.class); + private final Map<String, Object> bodyObject = Map.of( + "organisationsEinheitId", OrganisationEinheitTestFactory.ID, + "name", OrganisationEinheitTestFactory.NAME, + "strasse", AddressTestFactory.STREET, + "hausnummer", AddressTestFactory.HOUSE_NUMBER, + "plz", AddressTestFactory.ZIP_CODE, + "ort", AddressTestFactory.CITY + ); + + @Nested + class TestFromCommand { + + @BeforeEach + void init() { + doReturn(OrganisationEinheitTestFactory.create()).when(mapper).toOrganisationEinheit(any()); + } + + @Test + void shouldMapToOrganisationEinheit() { + map(); + + verify(mapper).toOrganisationEinheit(bodyObject); + } + + @Test + void shouldMapForwardingRequestFields() { + var mapped = map(); + + assertThat(mapped).usingRecursiveComparison().isEqualTo(ForwardingRequestTestFactory.create()); + } + + private ForwardingRequest map() { + return mapper.fromCommand(CommandTestFactory.createBuilder().bodyObject(bodyObject).build()); + } + } + + @Nested + class TestToOrganisationEinheit { + + @BeforeEach + void init() { + doReturn(AddressTestFactory.create()).when(mapper).toAddress(any()); + } + + @Test + void shouldMapToAddress() { + map(); + + verify(mapper).toAddress(bodyObject); + } + + @Test + void shouldMapOrganisationEinheitFields() { + var mapped = map(); + + assertThat(mapped).usingRecursiveComparison().isEqualTo(OrganisationEinheitTestFactory.create()); + } + + private OrganisationEinheit map() { + return mapper.toOrganisationEinheit(bodyObject); + } + } + + @Nested + class TestToAddress { + + @Test + void shouldMapAddressFields() { + var mapped = map(); + + assertThat(mapped).usingRecursiveComparison().isEqualTo(AddressTestFactory.create()); + } + + private Address map() { + return mapper.toAddress(bodyObject); + } + } +} diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..dbe06e0b8b4c9676408e944e7afb5b5028f507d3 --- /dev/null +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRequestTestFactory.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2025 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.vorgang.vorgang.redirect; + +import de.ozgcloud.vorgang.callcontext.UserTestFactory; +import de.ozgcloud.vorgang.vorgang.VorgangTestFactory; +import de.ozgcloud.vorgang.vorgang.redirect.ForwardingRequest.ForwardingRequestBuilder; + +class ForwardingRequestTestFactory { + + public static ForwardingRequest create() { + return createBuilder().build(); + } + + public static ForwardingRequestBuilder createBuilder() { + return new ForwardingRequestBuilder() + .vorgangId(VorgangTestFactory.ID) + .version(VorgangTestFactory.VERSION) + .createdBy(UserTestFactory.ID) + .createdByName(UserTestFactory.NAME) + .organisationEinheit(OrganisationEinheitTestFactory.create()); + } +} diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/OrganisationEinheitTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/OrganisationEinheitTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..27e64b0db89125d53cda528a838c9610f24dc34e --- /dev/null +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/OrganisationEinheitTestFactory.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2025 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.vorgang.vorgang.redirect; + +import java.util.UUID; + +import com.thedeanda.lorem.LoremIpsum; + +import de.ozgcloud.vorgang.vorgang.redirect.OrganisationEinheit.OrganisationEinheitBuilder; + +class OrganisationEinheitTestFactory { + + public static final String ID = UUID.randomUUID().toString(); + public static final String NAME = LoremIpsum.getInstance().getName(); + + public static OrganisationEinheit create() { + return createBuilder().build(); + } + + public static OrganisationEinheitBuilder createBuilder() { + return new OrganisationEinheitBuilder() + .id(ID) + .name(NAME) + .address(AddressTestFactory.create()); + } +}