diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/valid/FeignClientTests.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/valid/FeignClientTests.java index 7113a0c1..5471395a 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/valid/FeignClientTests.java +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/valid/FeignClientTests.java @@ -74,6 +74,7 @@ import feign.Logger; import feign.RequestInterceptor; import feign.RequestTemplate; import rx.Observable; +import rx.Single; /** * @author Spencer Gibb @@ -116,6 +117,9 @@ public class FeignClientTests { @RequestMapping(method = RequestMethod.GET, value = "/hello") Hello getHello(); + @RequestMapping(method = RequestMethod.GET, value = "/hello") + Single getHelloSingle(); + @RequestMapping(method = RequestMethod.GET, value = "/hellos") List getHellos(); @@ -178,6 +182,9 @@ public class FeignClientTests { @FeignClient(name = "localapp3", fallback = HystrixClientFallback.class) protected interface HystrixClient { + @RequestMapping(method = RequestMethod.GET, value = "/fail") + Single failSingle(); + @RequestMapping(method = RequestMethod.GET, value = "/fail") Hello fail(); @@ -197,6 +204,11 @@ public class FeignClientTests { return new Hello("fallback"); } + @Override + public Single failSingle() { + return Single.just(new Hello("fallbacksingle")); + } + @Override public HystrixCommand failCommand() { return new FallbackCommand<>(new Hello("fallbackcommand")); @@ -204,7 +216,7 @@ public class FeignClientTests { @Override public Observable failObservable() { - return new FallbackCommand<>(new Hello("fallbackobservable")).observe(); + return Observable.just(new Hello("fallbackobservable")); } @Override @@ -362,6 +374,15 @@ public class FeignClientTests { assertEquals("hellos didn't match", hellos, getHelloList()); } + @Test + public void testSingle() { + Single single = this.testClient.getHelloSingle(); + assertNotNull("single was null", single); + Hello hello = single.toBlocking().value(); + assertNotNull("hello was null", hello); + assertEquals("first hello didn't match", new Hello(HELLO_WORLD_1), hello); + } + @Test public void testNoContentResponse() { ResponseEntity response = testClient.noContent(); @@ -401,7 +422,15 @@ public class FeignClientTests { } @Test - @Ignore("Until HystrixCommand works in fallback") + public void testHystrixFallbackSingle() { + Single single = hystrixClient.failSingle(); + assertNotNull("single was null", single); + Hello hello = single.toBlocking().value(); + assertNotNull("hello was null", hello); + assertEquals("message was wrong", "fallbacksingle", hello.getMessage()); + } + + @Test public void testHystrixFallbackCommand() { HystrixCommand command = hystrixClient.failCommand(); assertNotNull("command was null", command); @@ -411,7 +440,6 @@ public class FeignClientTests { } @Test - @Ignore("Until Observable works in fallback") public void testHystrixFallbackObservable() { Observable observable = hystrixClient.failObservable(); assertNotNull("observable was null", observable); diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index aa99ad32..6d7392ea 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -19,7 +19,7 @@ 1.0.0.BUILD-SNAPSHOT 0.7.3 1.4.2 - 8.14.4 + 8.15.0 1.4.24 2.1.0 0.10.1