Add more tests.

This commit is contained in:
Olga Maciaszek-Sharma
2020-10-28 14:10:22 +01:00
parent 4b5263c595
commit eaa6acd59c

View File

@@ -17,15 +17,19 @@
package org.springframework.cloud.sleuth.instrument.web.client.feign;
import feign.Client;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryFactory;
import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient;
import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
import org.springframework.cloud.openfeign.loadbalancer.RetryableFeignBlockingLoadBalancerClient;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.BDDAssertions.then;
@@ -72,6 +76,24 @@ public class TracingFeignObjectWrapperTests {
assertThat(wrapped).isInstanceOf(TraceFeignBlockingLoadBalancerClient.class);
}
// gh-1528
@Test
public void should_wrap_feign_retryable_loadbalancer_client() {
Client delegate = mock(Client.class);
BlockingLoadBalancerClient loadBalancerClient = mock(
BlockingLoadBalancerClient.class);
LoadBalancedRetryFactory retryFactory = mock(LoadBalancedRetryFactory.class);
Mockito.when(beanFactory.getBean(BlockingLoadBalancerClient.class))
.thenReturn(loadBalancerClient);
Object wrapped = traceFeignObjectWrapper
.wrap(new RetryableFeignBlockingLoadBalancerClient(delegate,
loadBalancerClient, retryFactory));
Assertions.assertThat(wrapped)
.isInstanceOf(TraceRetryableFeignBlockingLoadBalancerClient.class);
}
// gh-1528, gh-1125
@Test
public void should_wrap_subclass_of_feign_loadbalancer_client() {
@@ -88,6 +110,24 @@ public class TracingFeignObjectWrapperTests {
}
// gh-1528, gh-1125
@Test
public void should_wrap_subclass_of_retryable_feign_loadbalancer_client() {
Client delegate = mock(Client.class);
BlockingLoadBalancerClient loadBalancerClient = mock(
BlockingLoadBalancerClient.class);
LoadBalancedRetryFactory retryFactory = mock(LoadBalancedRetryFactory.class);
Mockito.when(beanFactory.getBean(BlockingLoadBalancerClient.class))
.thenReturn(loadBalancerClient);
Object wrapped = traceFeignObjectWrapper
.wrap(new TestRetryableFeignBlockingLoadBalancerClient(delegate,
loadBalancerClient, retryFactory));
Assertions.assertThat(wrapped)
.isInstanceOf(TraceRetryableFeignBlockingLoadBalancerClient.class);
}
static class TestFeignBlockingLoadBalancerClient
extends FeignBlockingLoadBalancerClient {
@@ -98,4 +138,15 @@ public class TracingFeignObjectWrapperTests {
}
static class TestRetryableFeignBlockingLoadBalancerClient
extends RetryableFeignBlockingLoadBalancerClient {
TestRetryableFeignBlockingLoadBalancerClient(Client delegate,
BlockingLoadBalancerClient loadBalancerClient,
LoadBalancedRetryFactory retryFactory) {
super(delegate, loadBalancerClient, retryFactory);
}
}
}