50 lines
1.8 KiB
Java
50 lines
1.8 KiB
Java
package de.dev089.eventproducer.web;
|
|
|
|
import de.dev089.eventproducer.producer.HealthRequestProducer;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.test.web.servlet.MockMvc;
|
|
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
import static org.mockito.Mockito.verify;
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
|
|
|
@SpringBootTest(properties = {
|
|
"RABBITMQ_HOST=localhost",
|
|
"RABBITMQ_PORT=5672",
|
|
"RABBITMQ_USERNAME=guest",
|
|
"RABBITMQ_PASSWORD=guest"
|
|
})
|
|
@AutoConfigureMockMvc
|
|
class RequestProducerControllerIT {
|
|
|
|
@Autowired
|
|
private MockMvc mockMvc;
|
|
|
|
@MockBean
|
|
private HealthRequestProducer healthRequestProducer;
|
|
|
|
@Test
|
|
void postPopulate_acceptsValidRequest() throws Exception {
|
|
mockMvc.perform(post("/api/events/populate")
|
|
.contentType(MediaType.APPLICATION_JSON)
|
|
.content("{\"message\":\"hello\"}"))
|
|
.andExpect(status().isAccepted());
|
|
|
|
verify(healthRequestProducer).publishToDefaultQueue(any());
|
|
}
|
|
|
|
@Test
|
|
void postPopulate_rejectsInvalidRequest() throws Exception {
|
|
mockMvc.perform(post("/api/events/populate")
|
|
.contentType(MediaType.APPLICATION_JSON)
|
|
.content("{\"message\":\"\"}"))
|
|
.andExpect(status().isBadRequest());
|
|
}
|
|
}
|