Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ dependencies {

compileOnly 'jakarta.servlet:jakarta.servlet-api:6.0.0'
compileOnly 'jakarta.annotation:jakarta.annotation-api:3.0.0'
testImplementation 'org.junit.jupiter:junit-jupiter:6.0.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter:6.0.0'

testImplementation 'org.springframework.boot:spring-boot-starter-test'

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package uk.nhs.adaptors.common.util;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;

import java.io.FileNotFoundException;

import org.junit.jupiter.api.Test;

public class FileUtilTest {

@Test
public void shouldReadTextResource() {
var content = FileUtil.readResourceAsString("/file-util/sample.txt");

assertEquals("sample-content", content.trim());
}

@Test
public void shouldThrowWhenResourceDoesNotExist() {
assertThrows(FileNotFoundException.class, () -> FileUtil.readResourceAsString("/file-util/missing.txt"));
}
}
2 changes: 2 additions & 0 deletions common/src/test/resources/file-util/sample.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
sample-content

Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package uk.nhs.adaptors.connector.service;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.time.Duration;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import uk.nhs.adaptors.connector.dao.MessagePersistDurationDao;
import uk.nhs.adaptors.connector.model.MessagePersistDuration;

@ExtendWith(MockitoExtension.class)
public class MessagePersistDurationServiceTest {

public static final int THREE_H_SECONDS = 300;
public static final int MIGRATION_REQUEST_ID = 101010;
public static final int TWO_CALLS = 2;
public static final int NINETY_NINE = 99;
public static final int SEVEN = 7;
public static final long PERSIST_DURATION = 300L;
public static final int FIVE = 5;
public static final String COPC = "COPC";
@Mock
private MessagePersistDurationDao messagePersistDurationDao;

@InjectMocks
private MessagePersistDurationService messagePersistDurationService;

@Test
public void shouldSaveAndReturnPersistDuration() {
var expected = MessagePersistDuration.builder()
.id(1)
.messageType("ehrExtract")
.persistDuration(Duration.ofSeconds(THREE_H_SECONDS))
Comment thread
ORybak5 marked this conversation as resolved.
Outdated
.callsSinceUpdate(TWO_CALLS)
.migrationRequestId(MIGRATION_REQUEST_ID)
.build();

when(messagePersistDurationDao.getMessagePersistDuration(MIGRATION_REQUEST_ID, "ehrExtract")).thenReturn(expected);

var actual = messagePersistDurationService.addMessagePersistDuration("ehrExtract",
Duration.ofMinutes(FIVE),
TWO_CALLS,
MIGRATION_REQUEST_ID);
Comment thread
ORybak5 marked this conversation as resolved.

verify(messagePersistDurationDao).saveMessagePersistDuration("ehrExtract", PERSIST_DURATION, TWO_CALLS, MIGRATION_REQUEST_ID);
assertEquals(expected, actual);
}

@Test
public void shouldReturnPersistDurationWhenMessageTypeExists() {
var expected = MessagePersistDuration.builder()
.messageType(COPC)
.migrationRequestId(NINETY_NINE)
.build();

when(messagePersistDurationDao.messageTypeExists(NINETY_NINE, COPC)).thenReturn(true);
when(messagePersistDurationDao.getMessagePersistDuration(NINETY_NINE, COPC)).thenReturn(expected);

var actual = messagePersistDurationService.getMessagePersistDuration(NINETY_NINE, COPC);

assertTrue(actual.isPresent());
assertEquals(expected, actual.get());
}

@Test
public void shouldReturnEmptyWhenMessageTypeDoesNotExist() {
when(messagePersistDurationDao.messageTypeExists(SEVEN, "missing")).thenReturn(false);

var actual = messagePersistDurationService.getMessagePersistDuration(SEVEN, "missing");

assertFalse(actual.isPresent());
verify(messagePersistDurationDao, never()).getMessagePersistDuration(SEVEN, "missing");
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package uk.nhs.adaptors.connector.service;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.util.List;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import uk.nhs.adaptors.common.enums.MigrationStatus;
import uk.nhs.adaptors.connector.dao.PatientMigrationRequestDao;
import uk.nhs.adaptors.connector.model.PatientMigrationRequest;

@ExtendWith(MockitoExtension.class)
public class PatientMigrationRequestServiceTest {

public static final int PATIENT_MIGRATION_REQUEST = 11111111;
@Mock
private PatientMigrationRequestDao patientMigrationRequestDao;

@InjectMocks
private PatientMigrationRequestService patientMigrationRequestService;

@Test
public void shouldReturnRequestsByMigrationStatus() {
var statuses = List.of(MigrationStatus.REQUEST_RECEIVED);
var request = PatientMigrationRequest.builder()
.id(PATIENT_MIGRATION_REQUEST)
.conversationId("conversation-id-123")
Comment thread
ORybak5 marked this conversation as resolved.
Outdated
.build();

when(patientMigrationRequestDao.getMigrationRequestsByLatestMigrationStatusIn(statuses)).thenReturn(List.of(request));

var actual = patientMigrationRequestService.getMigrationRequestsByMigrationStatusIn(statuses);

assertEquals(1, actual.size());
assertEquals("conversation-id-123", actual.get(0).getConversationId());
}

@Test
public void shouldReturnTrueWhenMigrationRequestExists() {
when(patientMigrationRequestDao.existsByConversationId("conversation-id-123")).thenReturn(true);

var exists = patientMigrationRequestService.hasMigrationRequest("conversation-id-123");

assertTrue(exists);
verify(patientMigrationRequestDao).existsByConversationId("conversation-id-123");
}
}

Loading