From 3f72c9e4766a5012e4d5def091e58be1b29f1435 Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Mon, 29 Aug 2016 14:38:21 -0400 Subject: [PATCH] Fixes #8 --- .../java/demo/FeignClientApplication.java | 6 ++-- .../src/test/java/demo/AdhocTestSuite.java | 2 -- .../demo/FeignClientApplicationTests.java | 36 ++++++++++++++++--- ...nClientWithServerListApplicationTests.java | 32 +++++++++-------- 4 files changed, 52 insertions(+), 24 deletions(-) rename feign-hystrix/src/test/java/{test => demo}/FeignClientWithServerListApplicationTests.java (70%) diff --git a/feign-hystrix/src/main/java/demo/FeignClientApplication.java b/feign-hystrix/src/main/java/demo/FeignClientApplication.java index f6cdead..34da72c 100644 --- a/feign-hystrix/src/main/java/demo/FeignClientApplication.java +++ b/feign-hystrix/src/main/java/demo/FeignClientApplication.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestMethod; public class FeignClientApplication { @Bean - public ApplicationRunner runner(final RestClient client) { + public ApplicationRunner runner(final UrlRestClient client) { return new ApplicationRunner() { @Override @@ -32,13 +32,13 @@ public class FeignClientApplication { } @FeignClient(name = "example", url = "example.com", fallback=FallbackClient.class) -interface RestClient { +interface UrlRestClient { @RequestMapping(value="/", method = RequestMethod.GET) String hello(); } @Component -class FallbackClient implements RestClient { +class FallbackClient implements UrlRestClient { @Override public String hello() { return "oops"; diff --git a/feign-hystrix/src/test/java/demo/AdhocTestSuite.java b/feign-hystrix/src/test/java/demo/AdhocTestSuite.java index ee82ce2..8e2c7f2 100644 --- a/feign-hystrix/src/test/java/demo/AdhocTestSuite.java +++ b/feign-hystrix/src/test/java/demo/AdhocTestSuite.java @@ -21,8 +21,6 @@ import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; -import test.FeignClientWithServerListApplicationTests; - /** * A test suite for probing weird ordering problems in the tests. * diff --git a/feign-hystrix/src/test/java/demo/FeignClientApplicationTests.java b/feign-hystrix/src/test/java/demo/FeignClientApplicationTests.java index c2fdc26..9f15fd6 100644 --- a/feign-hystrix/src/test/java/demo/FeignClientApplicationTests.java +++ b/feign-hystrix/src/test/java/demo/FeignClientApplicationTests.java @@ -1,23 +1,51 @@ package demo; -import static org.junit.Assert.assertTrue; - +import demo.FeignClientApplicationTests.TestApplication; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.boot.test.WebIntegrationTest; +import org.springframework.cloud.netflix.feign.EnableFeignClients; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import demo.FeignClientWithServerListApplicationTests.FallbackRestClient; + +import static org.junit.Assert.assertTrue; + @RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(classes = FeignClientApplication.class) +@SpringApplicationConfiguration(classes = TestApplication.class) @WebIntegrationTest(randomPort = true) @DirtiesContext public class FeignClientApplicationTests { @Autowired - private RestClient client; + private UrlRestClient client; + + @Configuration + @EnableAutoConfiguration + @EnableFeignClients + protected static class TestApplication { + + @Bean + public FallbackClient fallback() { + return new FallbackClient(); + } + + @Bean + public FallbackRestClient fallbackRestClient() { + return new FallbackRestClient(); + } + + public static void main(String[] args) { + SpringApplication.run(FeignClientApplication.class, args); + } + } @Test public void clientConnects() { diff --git a/feign-hystrix/src/test/java/test/FeignClientWithServerListApplicationTests.java b/feign-hystrix/src/test/java/demo/FeignClientWithServerListApplicationTests.java similarity index 70% rename from feign-hystrix/src/test/java/test/FeignClientWithServerListApplicationTests.java rename to feign-hystrix/src/test/java/demo/FeignClientWithServerListApplicationTests.java index 3be7148..ca59572 100644 --- a/feign-hystrix/src/test/java/test/FeignClientWithServerListApplicationTests.java +++ b/feign-hystrix/src/test/java/demo/FeignClientWithServerListApplicationTests.java @@ -1,5 +1,6 @@ -package test; +package demo; +import demo.FeignClientWithServerListApplicationTests.TestApplication; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -16,22 +17,18 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import test.FeignClientWithServerListApplicationTests.TestApplication; - import static org.junit.Assert.assertTrue; @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = TestApplication.class) -// Increase hystrix timeout or else requests timeout on CI server -@WebIntegrationTest(randomPort = true, value = { - "myexample.ribbon.listOfServers:example.com", - "hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000" }) +//Increase hystrix timeout or else requests timeout on CI server +@WebIntegrationTest(randomPort = true, value = {"myexample.ribbon.listOfServers:example.com", "hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000"}) @DirtiesContext public class FeignClientWithServerListApplicationTests { @Autowired - private RestClient client; - + private ServiceRestClient client; + @Test public void clientConnects() { assertTrue(client.hello().contains("