@@ -10,9 +10,10 @@ package infrastructure.api
1010
1111import application.presenter.api.model.MedicalTechnologyApiDto
1212import application.presenter.api.model.MedicalTechnologyApiDtoType
13+ import application.presenter.api.model.MedicalTechnologyEntry
1314import application.presenter.api.model.MedicalTechnologyPatch
14- import application.presenter.api.model.RoomApiDto
1515import application.presenter.api.model.RoomApiDtoType
16+ import application.presenter.api.model.RoomEntry
1617import infrastructure.api.KtorTestingUtility.apiTestApplication
1718import io.kotest.assertions.ktor.client.shouldHaveStatus
1819import io.kotest.core.spec.style.StringSpec
@@ -35,73 +36,80 @@ import kotlinx.serialization.json.Json
3536import java.time.Instant
3637
3738class MedicalTechnologyApiTest : StringSpec ({
39+ val medicalTechnologyEntry = MedicalTechnologyEntry (
40+ id = "mt-1",
41+ name = "name",
42+ description = "description",
43+ type = MedicalTechnologyApiDtoType .ENDOSCOPE
44+ )
45+
3846 val medicalTechnologyApiDto = MedicalTechnologyApiDto (
3947 id = "mt-1",
4048 name = "name",
4149 description = "description",
4250 type = MedicalTechnologyApiDtoType .ENDOSCOPE ,
43- inUse = true ,
44- roomId = "r-1"
51+ inUse = false ,
52+ roomId = null
4553 )
4654
47- suspend fun ApplicationTestBuilder .insertMedicalTechnology(medicalTechnology: MedicalTechnologyApiDto ) =
55+ suspend fun ApplicationTestBuilder .insertMedicalTechnology(medicalTechnology: MedicalTechnologyEntry ) =
4856 client.post("/api/v1/medical-technologies") {
4957 header(HttpHeaders .ContentType , ContentType .Application .Json .toString())
5058 setBody(Json .encodeToString(medicalTechnology))
5159 }
5260
5361 " I should be able to request the creation of a medical technology" {
5462 apiTestApplication {
55- val response = insertMedicalTechnology(medicalTechnologyApiDto )
63+ val response = insertMedicalTechnology(medicalTechnologyEntry )
5664 response shouldHaveStatus HttpStatusCode .Created
5765 response.headers[HttpHeaders .Location ] shouldNotBe null
5866 }
5967 }
6068
6169 " Add an existent medical technology then the service should result in a conflict status code" {
6270 apiTestApplication {
63- insertMedicalTechnology(medicalTechnologyApiDto )
64- val response = insertMedicalTechnology(medicalTechnologyApiDto )
71+ insertMedicalTechnology(medicalTechnologyEntry )
72+ val response = insertMedicalTechnology(medicalTechnologyEntry )
6573 response shouldHaveStatus HttpStatusCode .Conflict
6674 }
6775 }
6876
6977 " It should be possible to obtain an existing medical technology" {
7078 apiTestApplication {
71- insertMedicalTechnology(medicalTechnologyApiDto )
72- val response = client.get("/api/v1/medical-technologies/${medicalTechnologyApiDto .id}")
79+ insertMedicalTechnology(medicalTechnologyEntry )
80+ val response = client.get("/api/v1/medical-technologies/${medicalTechnologyEntry .id}")
7381 response shouldHaveStatus HttpStatusCode .OK
7482 Json .decodeFromString<MedicalTechnologyApiDto >(response.bodyAsText()) shouldBe medicalTechnologyApiDto
7583 }
7684 }
7785
7886 " It should be possible to obtain historical data about a medical technology" {
7987 apiTestApplication {
80- insertMedicalTechnology(medicalTechnologyApiDto )
88+ insertMedicalTechnology(medicalTechnologyEntry )
8189 val response = client
82- .get("/api/v1/medical-technologies/${medicalTechnologyApiDto .id}? dateTime=${Instant .now()}")
90+ .get("/api/v1/medical-technologies/${medicalTechnologyEntry .id}? dateTime=${Instant .now()}")
8391 response shouldHaveStatus HttpStatusCode .OK
8492 }
8593 }
8694
8795 " It should handle the get request on a non existing medical technology" {
8896 apiTestApplication {
89- val response = client.get("/api/v1/medical-technologies/${medicalTechnologyApiDto .id}")
97+ val response = client.get("/api/v1/medical-technologies/${medicalTechnologyEntry .id}")
9098 response shouldHaveStatus HttpStatusCode .NotFound
9199 }
92100 }
93101
94102 " It should be possible to delete an existing medical technology" {
95103 apiTestApplication {
96- insertMedicalTechnology(medicalTechnologyApiDto )
97- val response = client.delete("/api/v1/medical-technologies/${medicalTechnologyApiDto .id}")
104+ insertMedicalTechnology(medicalTechnologyEntry )
105+ val response = client.delete("/api/v1/medical-technologies/${medicalTechnologyEntry .id}")
98106 response shouldHaveStatus HttpStatusCode .NoContent
99107 }
100108 }
101109
102110 " It should not be possible to delete a not-existent medical technology" {
103111 apiTestApplication {
104- val response = client.delete("/api/v1/medical-technologies/${medicalTechnologyApiDto .id}")
112+ val response = client.delete("/api/v1/medical-technologies/${medicalTechnologyEntry .id}")
105113 response shouldHaveStatus HttpStatusCode .NotFound
106114 }
107115 }
@@ -113,7 +121,7 @@ class MedicalTechnologyApiTest : StringSpec({
113121 header(HttpHeaders .ContentType , ContentType .Application .Json .toString())
114122 setBody(
115123 Json .encodeToString(
116- RoomApiDto (
124+ RoomEntry (
117125 "r1",
118126 "name",
119127 "z1",
@@ -123,8 +131,8 @@ class MedicalTechnologyApiTest : StringSpec({
123131 )
124132 }
125133 // create medical technology
126- insertMedicalTechnology(medicalTechnologyApiDto )
127- val response = client.patch("/api/v1/medical-technologies/${medicalTechnologyApiDto .id}") {
134+ insertMedicalTechnology(medicalTechnologyEntry )
135+ val response = client.patch("/api/v1/medical-technologies/${medicalTechnologyEntry .id}") {
128136 header(HttpHeaders .ContentType , ContentType .Application .Json .toString())
129137 setBody(Json .encodeToString(MedicalTechnologyPatch ("r1")))
130138 }
@@ -134,7 +142,7 @@ class MedicalTechnologyApiTest : StringSpec({
134142
135143 " It should not be possible to map a non existent medical technology to a non existent room" {
136144 apiTestApplication {
137- val response = client.patch("/api/v1/medical-technologies/${medicalTechnologyApiDto .id}") {
145+ val response = client.patch("/api/v1/medical-technologies/${medicalTechnologyEntry .id}") {
138146 header(HttpHeaders .ContentType , ContentType .Application .Json .toString())
139147 setBody(Json .encodeToString(MedicalTechnologyPatch ("r1")))
140148 }
@@ -144,8 +152,8 @@ class MedicalTechnologyApiTest : StringSpec({
144152
145153 " It should not be possible to map an existent medical technology to a non existent room" {
146154 apiTestApplication {
147- insertMedicalTechnology(medicalTechnologyApiDto )
148- val response = client.patch("/api/v1/medical-technologies/${medicalTechnologyApiDto .id}") {
155+ insertMedicalTechnology(medicalTechnologyEntry )
156+ val response = client.patch("/api/v1/medical-technologies/${medicalTechnologyEntry .id}") {
149157 header(HttpHeaders .ContentType , ContentType .Application .Json .toString())
150158 setBody(Json .encodeToString(MedicalTechnologyPatch ("r1")))
151159 }
0 commit comments