Slide 286
Slide 286 text
class NovoLivroControllerIntegrationTest {
// atributos, outros métodos de teste e @BeforeEach
@Test
@DisplayName("não deve cadastrar novo livro quando parametros invalidos")
public void t3() throws Exception {
// cenário
NovoLivroRequest request = new NovoLivroRequest(
“978-0-INVA-LID-XX",
"",
LocalDate.now().plusDays(1)
);
// ação
String json = toJson(request);
mockMvc.perform(post("/api/livros")
.contentType(MediaType.APPLICATION_JSON)
.content(json))
.andExpect(status().isBadRequest())
.andExpect(jsonPath("$.violations", hasSize(3)))
.andExpect(jsonPath("$.violations", containsInAnyOrder(
violation("isbn", "invalid ISBN"),
violation("titulo", "must not be blank"),
violation("publicadoEm", "must be a past date")
)
));
// validação
assertEquals(0, repository.count());
}
}