I am trying to write a simple SpringBootTest to validate a single Feign client method using a Spring Cloud load balancer configuration defined in application.properties. I suspect I am not constructing the app. context correctly for the test as I see an error in the logs of;
10:29:03.488 [Test worker] DEBUG o.s.c.o.l.RetryableFeignBlockingLoadBalancerClient - Service instance retrieved from LoadBalancedRetryContext: was null. Reattempting service instance selection
10:29:03.490 [Test worker] DEBUG o.s.c.o.l.RetryableFeignBlockingLoadBalancerClient - Selected service instance: null
10:29:03.490 [Test worker] WARN o.s.c.o.l.RetryableFeignBlockingLoadBalancerClient - Service instance was not resolved, executing the original request
The test code is;
@SpringBootTest
@TestPropertySource("/vendor-load-balance-test.properties")
@EnableFeignClients(clients = { EndpointLoadBalancedFeignClientAPI.class })
@EnableAutoConfiguration
@ContextConfiguration(classes = { RestTemplate.class, SimpleReactiveDiscoveryClient.class, SimpleReactiveDiscoveryProperties.class, MetadataDefaulter.class })
@LoadBalancerClient(name="endpoint", configuration = EndpointLoadBalancerConfiguration.class)
class ProofpointInterfaceLoadBalanceAPITest {
@Autowired
private EndpointLoadBalancedFeignClientAPI endpointFeignClientAPI;
@Test
public void testScan() {
endpointFeignClientAPI.scanMessage("authHeader", "500botid", ScanRequest.builder().build());
}
}
The Load Balancer custom configuration is to include healthchecks;
public class EndpointLoadBalancerConfiguration {
@Bean
public ServiceInstanceListSupplier instanceSupplier(ConfigurableApplicationContext context) {
ServiceInstanceListSupplier serviceInstance = ServiceInstanceListSupplier.builder()
.withDiscoveryClient()
.withBlockingHealthChecks()
.build(context);
return serviceInstance;
}
}
and the relevant properties are;
spring.cloud.discovery.client.simple.instances.endpoint[0].uri=https://localhost:9443
spring.cloud.discovery.client.simple.instances.endpoint[1].uri=https://localhost:9444
Any suggestions welcome. Thanks.