- WebTestClient used to simplify external web service calls into microservice
- SpringBootTest enabled with WebEnvironment defined port to enable webserver
- Hoverfly to mock external webservice and provide precanned responses
package hello;
import io.specto.hoverfly.junit.core.HoverflyConfig;
import io.specto.hoverfly.junit.rule.HoverflyRule;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.reactive.server.WebTestClient;
import static io.specto.hoverfly.junit.core.SimulationSource.defaultPath;
@RunWith(SpringRunner.class)
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,
classes = hello.Application.class)
public class IntegrationTests {
@ClassRule
public static HoverflyRule hoverflyRule = HoverflyRule.inSimulationMode(defaultPath("sm9-create-ticket.json"),
HoverflyConfig.localConfigs().asWebServer().proxyPort(8500));
@Autowired
private WebTestClient webClient;
@Test
public void testCreateTicket() {
this.webClient.get().uri("/ticket?query=x").exchange().expectStatus().isOk()
.expectBody(String.class).isEqualTo("Response from HPSM for create ticket");
}
}