Skip to content
Snippets Groups Projects
Commit 58b2aade authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-6751 Testcoverage verbessert' (#37) from...

Merge pull request 'OZG-6751 Testcoverage verbessert' (#37) from OZG-6751-fix-sonar-issues into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/info-manager/pulls/37
parents 8f10b92a 78cb540a
No related branches found
No related tags found
No related merge requests found
......@@ -21,14 +21,19 @@
package de.ozgcloud.info.information;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.context.annotation.Configuration;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Configuration
@ConfigurationProperties(prefix = InfoManagerProperties.PREFIX)
@ConfigurationPropertiesScan
public class InfoManagerProperties {
static final String PREFIX = "ozgcloud.infomanager";
private final String postfachIdKeyName = "postkorbhandle";
public static final String POSTKORBHANDLE = "postkorbhandle";
private String postfachIdKeyName = POSTKORBHANDLE;
}
......@@ -57,18 +57,16 @@ public class NachrichtGrpcService extends NachrichtServiceGrpc.NachrichtServiceI
private void saveNachricht(GrpcNewNachrichtRequest request) {
var nachricht = nachrichtenMapper.fromGrpcNachricht(request.getNachricht());
if (isValid(nachricht)) {
checkForValidity(nachricht);
nachrichtService.save(nachricht);
}
}
private boolean isValid(NachrichtEvent nachrichtEvent) {
private void checkForValidity(NachrichtEvent nachrichtEvent) {
Set<ConstraintViolation<NachrichtEvent>> violations = validator.validate(nachrichtEvent);
if (!violations.isEmpty()) {
throw new ConstraintViolationException(violations);
}
return true;
}
@Override
......
......@@ -22,6 +22,7 @@
*/
package de.ozgcloud.info;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Spy;
......@@ -29,4 +30,9 @@ class InfoManagerApplicationTest {
@Spy
@InjectMocks
private InfoManagerApplication application;
@Test
void shouldLoadContext() { //NOSONAR
// empty
}
}
\ No newline at end of file
......@@ -47,7 +47,11 @@ public class NachrichtEventTestFactory {
}
public static GrpcNewNachrichtRequest createNewNachrichtRequest() {
return GrpcNewNachrichtRequest.newBuilder().setNachricht(createGrpcNachricht()).build();
return createNewNachrichtRequestBuilder().setNachricht(createGrpcNachricht()).build();
}
public static GrpcNewNachrichtRequest.Builder createNewNachrichtRequestBuilder() {
return GrpcNewNachrichtRequest.newBuilder().setNachricht(createGrpcNachricht());
}
public static GrpcFinishedNachrichtRequest createFinishNachrichtRequest() {
......
package de.ozgcloud.info.information;
import static de.ozgcloud.info.information.InfoManagerProperties.*;
import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import de.ozgcloud.common.test.ITCase;
@SpringBootTest(classes = { InfoManagerProperties.class })
@ITCase
class InfoManagerPropertiesITCase {
@TestPropertySource(properties = {
InfoManagerProperties.PREFIX + ".postfachIdKeyName" + "=" + TestLoadingConfiguration.OTHER_POSTFACH_KEY,
})
@Nested
class TestLoadingConfiguration {
static final String OTHER_POSTFACH_KEY = "otherPostfachKey";
@Autowired
private InfoManagerProperties infoManagerProperties;
@Test
void shouldHaveProperties() {
assertThat(infoManagerProperties).isNotNull();
}
@Test
void testPostfachHandleKey() {
assertThat(infoManagerProperties.getPostfachIdKeyName()).isEqualTo(OTHER_POSTFACH_KEY);
}
}
@Nested
class TestLoadingDefaultConfiguration {
@Autowired
private InfoManagerProperties infoManagerProperties;
@Test
void shouldHaveProperties() {
assertThat(infoManagerProperties).isNotNull();
}
@Test
void testPostfachHandleKey() {
assertThat(infoManagerProperties.getPostfachIdKeyName()).isEqualTo(POSTKORBHANDLE);
}
}
}
\ No newline at end of file
......@@ -25,6 +25,7 @@ import static org.mockito.Mockito.*;
import java.util.Set;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.Validator;
......@@ -129,6 +130,33 @@ class NachrichtenGrpcServiceTest {
}
}
@Nested
class TestSaveInvalidNewNachrichtEvent {
@Mock
private StreamObserver<GrpcNewNachrichtReply> newNachrichtStreamObserver;
private final GrpcNachricht invalidNachricht = NachrichtEventTestFactory.createGrpcNachrichtBuilder().setNachrichtenListUrl("invalid")
.build();
private final GrpcNewNachrichtRequest invalidNachrichtRequest = NachrichtEventTestFactory.createNewNachrichtRequestBuilder()
.setNachricht(invalidNachricht).build();
@BeforeEach
@SuppressWarnings("unchecked")
void init() {
when(nachrichtenMapper.fromGrpcNachricht(any())).thenReturn(
NachrichtEventTestFactory.createNachrichtEventBuilder().id(null).nachrichtenListUrl("invalid").build());
var constraintViolation = mock(ConstraintViolation.class);
when(validator.validate(any(NachrichtEvent.class))).thenReturn(Set.of(constraintViolation));
}
@Test
void shouldNotCreateNachrichtBecauseInvalidNachrichtenListUrl() {
nachrichtenGrpcService.saveNewNachricht(invalidNachrichtRequest, newNachrichtStreamObserver);
verify(nachrichtenService, never()).save(any());
}
}
@Nested
class TestFinishNachrichtEvent {
@Mock
......
......@@ -94,6 +94,10 @@ class NachrichtenServiceTest {
class TestFinishNachrichtEvent {
@Test
void shouldCallDelete() {
when(
repository.findByPostfachIdAndNachrichtenListUrl(NachrichtEventTestFactory.POSTKORB_HANDLE, NachrichtEventTestFactory.URL)).thenReturn(
Optional.of(NachrichtEventTestFactory.createNachrichtEvent()));
service.finish(NachrichtEventTestFactory.createNachrichtEvent());
verify(repository, atMostOnce()).findByPostfachIdAndNachrichtenListUrl(NachrichtEventTestFactory.POSTKORB_HANDLE,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment