We assert for the response status, the response message, and the location header:
assertTrue(mockResponse.status == 201)
assertTrue(mockResponse.entity.toString() == Constants.IDENTITY_CREATED)
assertNotNull(mockResponse.metadata["location"])
The unit test appears as follows:
@RunWith(MockitoJUnitRunner::class)
class CreatePersonTest {
@InjectMocks
private lateiit var controller: PersonController
@Mock
private lateinit var serviceImpl: PersonServiceImpl
private var builder = mock(Response.ResponseBuilder::class.java)
@Test
fun createPersonTest() {
val createPersonRequest = mock(Person::class.java)
createPersonRequest.name = "test user"
createPersonRequest.loginId = "[email protected]"
createPersonRequest.orgId = "123"
val uuid = UUID.randomUUID().toString()
val response = TestUtil.getResponseForIdentityCreation(uuid)
`when`(serviceImpl.createPerson(createPersonRequest))
.thenReturn(uuid)
`when`(builder.build())
.thenReturn(response)
controller.createPerson(createPersonRequest)
assertTrue(response.status == 201)
assertTrue(response.entity.toString() == Constants.IDENTITY_CREATED)
assertNotNull(response.metadata["location"])
}
}
Let's run this unit test:
As we can see, this unit test case has executed successfully.