Skip to content

Commit 5f1e50d

Browse files
committed
add test coverage of 404 and 400 errors on transactionController
1 parent 017816f commit 5f1e50d

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/controllers/v1/TransactionsControllerTest.kt

+42
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package uk.gov.justice.digital.hmpps.hmppsintegrationapi.controllers.v1
22

33
import io.kotest.core.spec.style.DescribeSpec
4+
import io.kotest.matchers.shouldBe
45
import io.kotest.matchers.string.shouldContain
56
import org.mockito.internal.verification.VerificationModeFactory
67
import org.mockito.kotlin.verify
78
import org.mockito.kotlin.whenever
89
import org.springframework.beans.factory.annotation.Autowired
910
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
11+
import org.springframework.http.HttpStatus
1012
import org.springframework.test.context.ActiveProfiles
1113
import org.springframework.test.context.bean.override.mockito.MockitoBean
1214
import org.springframework.test.web.servlet.MockMvc
@@ -16,6 +18,8 @@ import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Response
1618
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Transaction
1719
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Transactions
1820
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
1923
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.services.GetTransactionsForPersonService
2024
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.services.internal.AuditService
2125
import java.time.LocalDate
@@ -82,5 +86,43 @@ class TransactionsControllerTest(
8286
""".removeWhitespaceAndNewlines(),
8387
)
8488
}
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+
}
85127
},
86128
)

0 commit comments

Comments
 (0)