1
1
package uk.gov.justice.digital.hmpps.hmppsintegrationapi.controllers.v1
2
2
3
3
import io.kotest.core.spec.style.DescribeSpec
4
+ import io.kotest.matchers.shouldBe
4
5
import io.kotest.matchers.string.shouldContain
5
6
import org.mockito.internal.verification.VerificationModeFactory
6
7
import org.mockito.kotlin.verify
7
8
import org.mockito.kotlin.whenever
8
9
import org.springframework.beans.factory.annotation.Autowired
9
10
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
11
+ import org.springframework.http.HttpStatus
10
12
import org.springframework.test.context.ActiveProfiles
11
13
import org.springframework.test.context.bean.override.mockito.MockitoBean
12
14
import org.springframework.test.web.servlet.MockMvc
@@ -16,6 +18,8 @@ import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Response
16
18
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Transaction
17
19
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Transactions
18
20
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Type
21
+ import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi
22
+ import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError
19
23
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.services.GetTransactionsForPersonService
20
24
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.services.internal.AuditService
21
25
import java.time.LocalDate
@@ -82,5 +86,43 @@ class TransactionsControllerTest(
82
86
""".removeWhitespaceAndNewlines(),
83
87
)
84
88
}
89
+
90
+ it("returns a 404 NOT FOUND status code when could not find any transactions") {
91
+ whenever(getTransactionsForPersonService.execute(hmppsId, prisonId, accountCode, "2025-01-01", "2025-01-01", null)).thenReturn(
92
+ Response (
93
+ data = null,
94
+ errors =
95
+ listOf(
96
+ UpstreamApiError (
97
+ causedBy = UpstreamApi .NOMIS ,
98
+ type = UpstreamApiError .Type .ENTITY_NOT_FOUND ,
99
+ ),
100
+ ),
101
+ ),
102
+ )
103
+ val dateParams = " ?from_date=2025-01-01&to_date=2025-01-01"
104
+ val result = mockMvc.performAuthorised(basePath + dateParams)
105
+
106
+ result.response.status.shouldBe(HttpStatus .NOT_FOUND .value())
107
+ }
108
+
109
+ it("returns a 400 BAD REQUEST status code when there is an invalid HMPPS ID or incorrect prison") {
110
+ whenever(getTransactionsForPersonService.execute(hmppsId, prisonId, accountCode, "2025-01-01", "2025-01-01", null)).thenReturn(
111
+ Response (
112
+ data = null,
113
+ errors =
114
+ listOf(
115
+ UpstreamApiError (
116
+ causedBy = UpstreamApi .NOMIS ,
117
+ type = UpstreamApiError .Type .BAD_REQUEST ,
118
+ ),
119
+ ),
120
+ ),
121
+ )
122
+ val dateParams = " ?from_date=2025-01-01&to_date=2025-01-01"
123
+ val result = mockMvc.performAuthorised(basePath + dateParams)
124
+
125
+ result.response.status.shouldBe(HttpStatus .BAD_REQUEST .value())
126
+ }
85
127
},
86
128
)
0 commit comments