Teste unitário
Bom dia, galera!
Tudo bem?
Estou fazendo teste unitário com junit e mockito no apache camel, usando jdk 11 com junit 4.12 e quando executo aparece que não é encontrado a anotação @Test.
Classe:
Att,
Fernando Hiar.
Tudo bem?
Estou fazendo teste unitário com junit e mockito no apache camel, usando jdk 11 com junit 4.12 e quando executo aparece que não é encontrado a anotação @Test.
Classe:
package br.com.santander.wac.camel.route;
import java.util.ArrayList;
import java.util.List;
import org.apache.camel.CamelContext;
import org.apache.camel.EndpointInject;
import org.apache.camel.Exchange;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.spring.CamelSpringBootRunner;
import org.apache.camel.test.spring.MockEndpointsAndSkip;
import org.junit.Before;
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.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import br.com.santander.wac.camel.ClientApplication;
import br.com.santander.wac.camel.model.dto.ClientDTO;
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
@RunWith(CamelSpringBootRunner.class)
@SpringBootTest(classes = {ClientApplication.class}, webEnvironment = WebEnvironment.DEFINED_PORT)
@ContextConfiguration
@MockEndpointsAndSkip("direct:*")
public class RestClientRouteBuilderTests {
@Autowired
CamelContext camelContext;
@EndpointInject(uri = "mock:direct:getAll")
private MockEndpoint mockGetAllEndpoint;
@EndpointInject(uri = "mock:direct:get")
private MockEndpoint mockGetEndpoint;
@EndpointInject(uri = "mock:direct:create")
private MockEndpoint mockCreateEndpoint;
@EndpointInject(uri = "mock:direct:update")
private MockEndpoint mockUpdateEndpoint;
@EndpointInject(uri = "mock:direct:delete")
private MockEndpoint mockDeleteEndpoint;
private List<ClientDTO> clients;
private ClientDTO client;
@Before
public void init() throws Exception {
client = new ClientDTO(10, "Client Mock 10");
clients = new ArrayList<ClientDTO>();
clients.add(new ClientDTO(10, "Client Mock 10"));
clients.add(new ClientDTO(20, "Client Mock 20"));
}
@DirtiesContext
@Test
public void mustReturnValidClients1() throws Exception {
mockGetAllEndpoint.whenAnyExchangeReceived(exchange -> {
exchange.getIn().setBody(clients);
exchange.getIn().setHeader(Exchange.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, HttpStatus.OK.value());
});
given().log().all()
.when()
.get("/api/clients")
.then()
.log().all()
.statusCode(HttpStatus.OK.value())
.header(Exchange.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.body("id", hasItems(10, 20));
MockEndpoint.expectsMessageCount(1, mockGetAllEndpoint);
}
@DirtiesContext
@Test
public void mustReturnValidClient2() throws Exception {
mockGetEndpoint.whenAnyExchangeReceived(exchange -> {
exchange.getIn().setBody(client);
exchange.getIn().setHeader(Exchange.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, HttpStatus.OK.value());
});
given()
.log().all()
.when()
.get("/api/clients/", client.getId())
.then()
.log().all()
.statusCode(HttpStatus.OK.value())
.header(Exchange.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.body("id", comparesEqualTo(client.getId().intValue()), "name", equalTo(client.getName()));
MockEndpoint.expectsMessageCount(1, mockGetEndpoint);
}
@DirtiesContext
@Test
public void mustCreateClient3() throws Exception {
mockCreateEndpoint.whenAnyExchangeReceived(exchange -> {
exchange.getIn().setBody(client);
exchange.getIn().setHeader(Exchange.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, HttpStatus.CREATED.value());
});
mockCreateEndpoint.expectedBodiesReceived(client);
given()
.log().all()
.contentType(MediaType.APPLICATION_JSON_VALUE)
.body(client)
.when()
.post("/api/clients")
.then()
.log().all()
.statusCode(HttpStatus.CREATED.value())
.header(Exchange.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.body("id", comparesEqualTo(client.getId().intValue()), "name", equalTo(client.getName()));
mockCreateEndpoint.assertIsSatisfied();
MockEndpoint.expectsMessageCount(1, mockCreateEndpoint);
}
@DirtiesContext
@Test
public void mustUpdateClient4() throws Exception {
mockUpdateEndpoint.whenAnyExchangeReceived(exchange -> {
System.out.println(exchange.getIn().toString());
exchange.getIn().setBody(client);
exchange.getIn().setHeader(Exchange.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, HttpStatus.OK.value());
});
given()
.log().all()
.contentType(MediaType.APPLICATION_JSON_VALUE)
.body(client)
.when()
.put("/api/clients/", client.getId())
.then()
.log().all()
.statusCode(HttpStatus.OK.value())
.header(Exchange.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.body("id", comparesEqualTo(client.getId().intValue()), "name", equalTo(client.getName()));
MockEndpoint.expectsMessageCount(1, mockUpdateEndpoint);
}
@DirtiesContext
@Test
public void mustDeleteClient5() throws Exception {
mockDeleteEndpoint.whenAnyExchangeReceived(exchange -> {
exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, HttpStatus.NO_CONTENT.value());
});
given()
.log().all()
.when()
.delete("/api/clients/", client.getId())
.then().log().all()
.statusCode(HttpStatus.NO_CONTENT.value());
MockEndpoint.expectsMessageCount(1, mockDeleteEndpoint);
}
}
Att,
Fernando Hiar.
Fernando Carvalho
Curtidas 0