class {Vendor}{Domain}ConnectorTest extends GrandCentralTestSupportUtil {
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
{Vendor}{Domain}Connector connector = new {Vendor}{Domain}Connector();
Properties props = useOverridePropertiesWithPropertiesComponent();
for (Field field : connector.getClass().getDeclaredFields()) {
if (field.isAnnotationPresent(PropertyInject.class)) {
field.setAccessible(true);
PropertyInject annotation = field.getAnnotation(PropertyInject.class);
String value = props.getProperty(annotation.value(),
annotation.defaultValue().isEmpty() ? null : annotation.defaultValue());
if (value != null) field.set(connector, value);
}
}
return connector;
}
@Override
protected Properties useOverridePropertiesWithPropertiesComponent() {
Properties p = new Properties();
p.setProperty("{vendor}.base.url", "http://localhost:8080/mock");
p.setProperty("retryFlag", "false");
p.setProperty("acceptedHeaders", "entityId,Content-Type");
p.setProperty("resourcesBasePath", "");
return p;
}
@Override
public void doPostSetup() throws Exception {
JunitUtil.mockRoutes(context,
List.of("direct://getEntityById", "direct://createEntity"),
"kamelet:*");
context.start();
}
@Test
void getEntityById_shouldReturnMappedResponse() throws Exception {
MockEndpoint mockKamelet = findMockKamelet();
mockKamelet.whenAnyExchangeReceived(exchange ->
exchange.getIn().setBody(JunitUtil.loadJsonFromResource("mock-entity-response.json")));
Exchange result = template.send("direct://getEntityById",
e -> e.getIn().setHeader("entityId", "ENTITY001"));
assertNotNull(result.getIn().getBody(String.class));
assertFalse(result.isFailed());
}
}