Skip to content
Snippets Groups Projects
Commit 25d551cb authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6259 add createVorgang method

parent 34e74c4a
Branches
Tags
No related merge requests found
......@@ -129,6 +129,14 @@ public class VorgangService {
return vorgang.toBuilder().clearEingangs().eingang(eingang);
}
public String createVorgang(Vorgang vorgang) {
var mappedEingang = kopControlDataMapper.moveLabelsToControlData(vorgang.getEingangs().getFirst());
var modifiedBuilder = vorgang.toBuilder().id(null).version(0).inCreation(false).clearEingangs().eingang(mappedEingang).build();
var result = repository.save(modifiedBuilder);
publishVorgangeCreatedEvent(result);
return result.getId();
}
private void publishVorgangeCreatedEvent(Vorgang vorgang) {
publisher.publishEvent(new VorgangCreatedEvent(vorgang.getId()));
}
......
......@@ -290,6 +290,89 @@ class VorgangServiceTest {
}
}
@Nested
class TestCreateVorgang {
private static final Eingang EINGANG = EingangTestFactory.create();
private static final Vorgang SRC_VORGANG = VorgangTestFactory.createBuilder().clientAttributes(null).clearEingangs().eingang(EINGANG).build();
private static final String CREATED_VORGANG_ID = "created-vorgang-id";
@Mock
private Eingang mappedEingang;
@Mock
private Vorgang createdVorgang;
@Captor
private ArgumentCaptor<Vorgang> vorgangCaptor;
@Captor
private ArgumentCaptor<VorgangCreatedEvent> eventCaptor;
@BeforeEach
void init() {
when(kopControlDataMapper.moveLabelsToControlData(any(Eingang.class))).thenReturn(mappedEingang);
when(createdVorgang.getId()).thenReturn(CREATED_VORGANG_ID);
when(repository.save(any())).thenReturn(createdVorgang);
}
@Test
void shouldCallMoveLabels() {
createVorgang();
verify(kopControlDataMapper).moveLabelsToControlData(EINGANG);
}
@Test
void shouldResetIdBeforeSave() {
createVorgang();
verify(repository).save(vorgangCaptor.capture());
assertThat(vorgangCaptor.getValue().getId()).isNull();
}
@Test
void shouldResetVersionBeforeSave() {
createVorgang();
verify(repository).save(vorgangCaptor.capture());
assertThat(vorgangCaptor.getValue().getVersion()).isEqualTo(0);
}
@Test
void shouldSetInCreationFalse() {
createVorgang();
verify(repository).save(vorgangCaptor.capture());
assertThat(vorgangCaptor.getValue().isInCreation()).isFalse();
}
@Test
void shouldSetMappedEingang() {
createVorgang();
verify(repository).save(vorgangCaptor.capture());
assertThat(vorgangCaptor.getValue().getEingangs()).hasSize(1).first().isEqualTo(mappedEingang);
}
@Test
void shouldPublishVorgangCreatedEvent() {
createVorgang();
verify(publisher).publishEvent(eventCaptor.capture());
assertThat(eventCaptor.getValue().getSource()).isEqualTo(CREATED_VORGANG_ID);
}
@Test
void shouldReturnCreatedVorgangId() {
var result = createVorgang();
assertThat(result).isEqualTo(CREATED_VORGANG_ID);
}
private String createVorgang() {
return service.createVorgang(SRC_VORGANG);
}
}
@Nested
class TestVorgangNotFound {
@BeforeEach
......@@ -346,7 +429,8 @@ class VorgangServiceTest {
void shouldThrowAccessDeniedException() {
when(vorgangAuthorizationService.authorizeByOrganisationseinheitenId(any(), any())).thenReturn(false);
assertThrows(AccessDeniedException.class, () -> service.getById(VorgangTestFactory.ID, FilterCriteriaTestFactory.create())); // NOSONAR
assertThrows(AccessDeniedException.class,
() -> service.getById(VorgangTestFactory.ID, FilterCriteriaTestFactory.create())); // NOSONAR
}
}
......@@ -384,7 +468,7 @@ class VorgangServiceTest {
@Nested
class TestAssignToUser {
private Command command = CommandTestFactory.createBuilder().body(Map.of("assignedTo", "Klaus")).build();
private final Command command = CommandTestFactory.createBuilder().body(Map.of("assignedTo", "Klaus")).build();
@Test
void shouldCallRepository() {
......@@ -418,8 +502,8 @@ class VorgangServiceTest {
@Nested
class TestDeleteVorgang {
private Vorgang vorgang = VorgangTestFactory.create();
private VorgangStub stub = VorgangStubTestFactory.create();
private final Vorgang vorgang = VorgangTestFactory.create();
private final VorgangStub stub = VorgangStubTestFactory.create();
@BeforeEach
void init() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment