Skip to content

Instantly share code, notes, and snippets.

@hakansander
Last active April 24, 2020 10:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hakansander/81994e8d327d440d31fa065e41c5ceb2 to your computer and use it in GitHub Desktop.
Save hakansander/81994e8d327d440d31fa065e41c5ceb2 to your computer and use it in GitHub Desktop.
@RunWith(SpringRunner.class)
@WebMvcTest(InvoiceController.class)
public class InvoiceControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private InvoiceService invoiceService;
private static final ObjectMapper mapper = new ObjectMapper();
@Test
public void testWhenPhoneNumEnteredAndDataExists_thenReturnHttp200() throws Exception {
final String mockPhoneNumber = "534*******";
final FileInputStream fileInputStream = new FileInputStream(ResourceUtils.getFile("classpath:response_http200.json"));
final String staticResponse = StreamUtils.copyToString(fileInputStream, Charset.defaultCharset());
InvoiceResponse mockInvoiceResponse = mapper.readValue(staticResponse, InvoiceResponse.class);
when(invoiceService.getInvoiceInfo(mockPhoneNumber))
.thenReturn(mockInvoiceResponse);
mockMvc.perform(get("/invoiceQuery/{phoneNumber}", mockPhoneNumber))
.andExpect(jsonPath("$.statusCode", is("200")));
}
@Test
public void testWhenPhoneNumEnteredAndNoDataFound_thenReturnHttp204() throws Exception {
final String mockPhoneNumber = "542*******";
final FileInputStream fileInputStream = new FileInputStream(ResourceUtils.getFile("classpath:response_http204.json"));
final String staticResponse = StreamUtils.copyToString(fileInputStream, Charset.defaultCharset());
InvoiceResponse mockInvoiceResponse = mapper.readValue(staticResponse, InvoiceResponse.class);
when(invoiceService.getInvoiceInfo(mockPhoneNumber))
.thenReturn(mockInvoiceResponse);
mockMvc.perform(get("/invoiceQuery/{phoneNumber}", mockPhoneNumber))
.andExpect(jsonPath("$.statusCode", is("204")));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment