Skip to content

Commit 7099f0b

Browse files
committed
test update scenario
1 parent 4f5a643 commit 7099f0b

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

service/src/test/java/uk/nhs/adaptors/gp2gp/ehr/EhrExtractStatusServiceTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.springframework.data.mongodb.core.query.Update;
1616
import org.springframework.data.mongodb.core.query.UpdateDefinition;
1717
import uk.nhs.adaptors.gp2gp.common.service.TimestampService;
18+
import uk.nhs.adaptors.gp2gp.ehr.exception.EhrExtractException;
1819
import uk.nhs.adaptors.gp2gp.ehr.model.EhrExtractStatus;
1920
import uk.nhs.adaptors.gp2gp.mhs.exception.UnrecognisedInteractionIdException;
2021

@@ -26,6 +27,7 @@
2627
import java.util.Optional;
2728
import java.util.UUID;
2829

30+
import static java.lang.String.format;
2931
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
3032
import static org.junit.jupiter.api.Assertions.assertEquals;
3133
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -307,6 +309,31 @@ void doesNotUpdateEhrExtractStatusWhenEhrContinueIsPresent() {
307309
assertFalse(ehrExtractStatusResult.isPresent());
308310
}
309311

312+
@Test
313+
void throwsEhrExtractExceptionWhenEhrExtractStatusIsNotFound() {
314+
EhrExtractStatusService ehrExtractStatusServiceSpy = spy(ehrExtractStatusService);
315+
String conversationId = generateRandomUppercaseUUID();
316+
317+
Optional<EhrExtractStatus> ehrExtractStatus = Optional.of(EhrExtractStatus.builder()
318+
.ehrExtractCorePending(
319+
EhrExtractStatus
320+
.EhrExtractCorePending
321+
.builder()
322+
.sentAt(Instant.now())
323+
.taskId("22222").build())
324+
.build());
325+
doReturn(ehrExtractStatus).when(ehrExtractStatusRepository).findByConversationId(conversationId);
326+
327+
doReturn(null).when(mongoTemplate).findAndModify(any(Query.class), any(UpdateDefinition.class),
328+
any(FindAndModifyOptions.class), any());
329+
330+
Exception exception = assertThrows(EhrExtractException.class,
331+
() -> ehrExtractStatusServiceSpy.updateEhrExtractStatusContinue(conversationId));
332+
333+
assertTrue(exception.getMessage()
334+
.contains(format("Received a Continue message with a conversationId %s that is not recognised", conversationId)));
335+
}
336+
310337
@Test
311338
void expectTrueWhenEhrExtractStatusWithEhrReceivedAckWithErrorsAndExceededTimeoutLimit() {
312339

0 commit comments

Comments
 (0)