Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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 PERSIST_DURATION_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(PERSIST_DURATION_SECONDS))
.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 {

private static final int MIGRATION_REQUEST_ID = 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(MIGRATION_REQUEST_ID)
.conversationId("conversation-id-123")
.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