Skip to content
This repository has been archived by the owner on Dec 17, 2024. It is now read-only.

Commit

Permalink
feat: tests
Browse files Browse the repository at this point in the history
  • Loading branch information
daho4b committed Sep 20, 2021
1 parent 5b5cfb7 commit df3678e
Show file tree
Hide file tree
Showing 6 changed files with 234 additions and 3 deletions.
3 changes: 0 additions & 3 deletions src/main/resources/liquibase.properties

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package de.caritas.cob.statisticsservice.api.service;


import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.RC_GROUP_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.SESSION_ID;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import de.caritas.cob.statisticsservice.api.service.securityheader.SecurityHeaderSupplier;
import de.caritas.cob.statisticsservice.userstatisticsservice.generated.web.UserStatisticsControllerApi;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.http.HttpHeaders;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
public class UserStatisticsServiceTest {

@InjectMocks
UserStatisticsService userStatisticsService;
@Mock
UserStatisticsControllerApi userStatisticsControllerApi;
@Mock
SecurityHeaderSupplier securityHeaderSupplier;

@Test
public void retrieveSessionViaRcGroupId_Should_RetrieveSessionViaUserStatisticsControllerApi() {

when(securityHeaderSupplier.getCsrfHttpHeaders()).thenReturn(new HttpHeaders());
userStatisticsService.retrieveSessionViaRcGroupId(RC_GROUP_ID);
verify(userStatisticsControllerApi, times(1)).getSession(null, RC_GROUP_ID);
}

@Test
public void retrieveSessionViaSessionId_Should_RetrieveSessionViaUserStatisticsControllerApi() {

when(securityHeaderSupplier.getCsrfHttpHeaders()).thenReturn(new HttpHeaders());
userStatisticsService.retrieveSessionViaSessionId(SESSION_ID);
verify(userStatisticsControllerApi, times(1)).getSession(SESSION_ID, null);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package de.caritas.cob.statisticsservice.api.statistics.events.assignsession;

import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.AGENCY_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.CONSULTANT_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.CONSULTING_TYPE_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.RC_GROUP_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.SESSION_ID;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import de.caritas.cob.statisticsservice.api.model.AssignSessionStatisticsEventMessage;
import de.caritas.cob.statisticsservice.api.model.EventType;
import de.caritas.cob.statisticsservice.api.model.UserRole;
import de.caritas.cob.statisticsservice.api.service.UserStatisticsService;
import de.caritas.cob.statisticsservice.api.statistics.model.StatisticsEvent;
import de.caritas.cob.statisticsservice.userstatisticsservice.generated.web.model.SessionStatisticsResultDTO;
import de.caritas.cob.statisticsservice.config.RabbitMqConfig;
import java.time.OffsetDateTime;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
public class AssignSessionListenerTest {

@InjectMocks AssignSessionListener assignSessionListener;
@Mock MongoTemplate mongoTemplate;
@Mock UserStatisticsService userStatisticsService;
@Mock RabbitMqConfig rabbitMqConfig;

@Test
public void receiveMessage_Should_saveEventToMongoDb() {

SessionStatisticsResultDTO sessionStatisticsResultDTO = buildResultDto();
when(userStatisticsService.retrieveSessionViaSessionId(SESSION_ID))
.thenReturn(sessionStatisticsResultDTO);

AssignSessionStatisticsEventMessage assignSessionStatisticsEventMessage = buildEventMessage();
assignSessionListener.receiveMessage(assignSessionStatisticsEventMessage);
verify(mongoTemplate, times(1)).insert(any(StatisticsEvent.class));

ArgumentCaptor<StatisticsEvent> statisticsEventCaptor = ArgumentCaptor.forClass(StatisticsEvent.class);
verify(mongoTemplate).insert(statisticsEventCaptor.capture());
StatisticsEvent statisticsEvent = statisticsEventCaptor.getValue();
assertThat(statisticsEvent.getEventType(), is(assignSessionStatisticsEventMessage.getEventType()));
assertThat(statisticsEvent.getSessionId(), is(sessionStatisticsResultDTO.getId()));
assertThat(statisticsEvent.getConsultingType().getId(), is(sessionStatisticsResultDTO.getConsultingType()));
assertThat(statisticsEvent.getAgency().getId(), is(sessionStatisticsResultDTO.getAgencyId()));
assertThat(statisticsEvent.getTimestamp(), is(assignSessionStatisticsEventMessage.getTimestamp().toInstant()));
assertThat(statisticsEvent.getUser().getId(), is(assignSessionStatisticsEventMessage.getConsultantId()));
assertThat(statisticsEvent.getUser().getUserRole(), is(UserRole.CONSULTANT));
assertThat(statisticsEvent.getMetaData(), is(nullValue()));
}

private SessionStatisticsResultDTO buildResultDto() {
return new SessionStatisticsResultDTO()
.id(SESSION_ID)
.isTeamSession(false)
.agencyId(AGENCY_ID)
.consultingType(CONSULTING_TYPE_ID)
.rcGroupId(RC_GROUP_ID);
}

private AssignSessionStatisticsEventMessage buildEventMessage() {
return new AssignSessionStatisticsEventMessage()
.sessionId(SESSION_ID)
.eventType(EventType.ASSIGN_SESSION)
.consultantId(CONSULTANT_ID)
.timestamp(OffsetDateTime.now());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package de.caritas.cob.statisticsservice.api.statistics.events.createmessage;

import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.AGENCY_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.CONSULTANT_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.CONSULTING_TYPE_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.RC_GROUP_ID;
import static de.caritas.cob.statisticsservice.api.testhelper.TestConstants.SESSION_ID;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import de.caritas.cob.statisticsservice.api.model.CreateMessageStatisticsEventMessage;
import de.caritas.cob.statisticsservice.api.model.EventType;
import de.caritas.cob.statisticsservice.api.model.UserRole;
import de.caritas.cob.statisticsservice.api.service.UserStatisticsService;
import de.caritas.cob.statisticsservice.api.statistics.model.StatisticsEvent;
import de.caritas.cob.statisticsservice.api.statistics.model.meta.CreateMessageMetaData;
import de.caritas.cob.statisticsservice.config.RabbitMqConfig;
import de.caritas.cob.statisticsservice.userstatisticsservice.generated.web.model.SessionStatisticsResultDTO;
import java.time.OffsetDateTime;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
public class CreateMessageListenerTest {

@InjectMocks
CreateMessageListener createMessageListener;
@Mock
MongoTemplate mongoTemplate;
@Mock
UserStatisticsService userStatisticsService;
@Mock
RabbitMqConfig rabbitMqConfig;

@Test
public void receiveMessage_Should_saveEventToMongoDb() {

SessionStatisticsResultDTO sessionStatisticsResultDTO = buildResultDto();
when(userStatisticsService.retrieveSessionViaRcGroupId(RC_GROUP_ID))
.thenReturn(sessionStatisticsResultDTO);

CreateMessageStatisticsEventMessage createMessageStatisticsEventMessage = buildEventMessage();
createMessageListener.receiveMessage(createMessageStatisticsEventMessage);
verify(mongoTemplate, times(1)).insert(any(StatisticsEvent.class));

ArgumentCaptor<StatisticsEvent> statisticsEventCaptor = ArgumentCaptor.forClass(StatisticsEvent.class);
verify(mongoTemplate).insert(statisticsEventCaptor.capture());
StatisticsEvent statisticsEvent = statisticsEventCaptor.getValue();
assertThat(statisticsEvent.getEventType(), is(createMessageStatisticsEventMessage.getEventType()));
assertThat(statisticsEvent.getSessionId(), is(sessionStatisticsResultDTO.getId()));
assertThat(statisticsEvent.getConsultingType().getId(), is(sessionStatisticsResultDTO.getConsultingType()));
assertThat(statisticsEvent.getAgency().getId(), is(sessionStatisticsResultDTO.getAgencyId()));
assertThat(statisticsEvent.getTimestamp(), is(createMessageStatisticsEventMessage.getTimestamp().toInstant()));
assertThat(statisticsEvent.getUser().getId(), is(createMessageStatisticsEventMessage.getConsultantId()));
assertThat(statisticsEvent.getUser().getUserRole(), is(UserRole.CONSULTANT));
assertThat(statisticsEvent.getMetaData(), is(buildMetaData(createMessageStatisticsEventMessage)));
}

private SessionStatisticsResultDTO buildResultDto() {
return new SessionStatisticsResultDTO()
.id(SESSION_ID)
.isTeamSession(false)
.agencyId(AGENCY_ID)
.consultingType(CONSULTING_TYPE_ID)
.rcGroupId(RC_GROUP_ID);
}

private CreateMessageStatisticsEventMessage buildEventMessage() {
return new CreateMessageStatisticsEventMessage()
.rcGroupId(RC_GROUP_ID)
.eventType(EventType.CREATE_MESSAGE)
.consultantId(CONSULTANT_ID)
.timestamp(OffsetDateTime.now())
.hasAttachment(true);
}

private CreateMessageMetaData buildMetaData(
CreateMessageStatisticsEventMessage createMessageStatisticsEventMessage) {
return CreateMessageMetaData
.builder()
.hasAttachment(createMessageStatisticsEventMessage.getHasAttachment())
.build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
*/
public class PathConstants {

private PathConstants() {}

public static final String ROOT_PATH = "/statistics";
public static final String PATH_GET_CONSULTANT_STATISTICS = ROOT_PATH + "/consultant";
public static final String PATH_GET_CONSULTANT_STATISTICS_CSV = ROOT_PATH + "/consultant";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package de.caritas.cob.statisticsservice.api.testhelper;

public class TestConstants {

private TestConstants() {}

public static final String RC_GROUP_ID = "yhT3444kk";
public static final Long SESSION_ID = 34344L;
public static final String CONSULTANT_ID = "d63f4cc0-215d-40e2-a866-2d3e910f0590";
public static final Long AGENCY_ID = 23447L;
public static final int CONSULTING_TYPE_ID = 1;
}

0 comments on commit df3678e

Please sign in to comment.