This commit is contained in:
Ryan Baxter
2016-08-29 14:38:21 -04:00
parent 6d0d094241
commit 3f72c9e476
4 changed files with 52 additions and 24 deletions

View File

@@ -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";

View File

@@ -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.
*

View File

@@ -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() {

View File

@@ -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("<html"));
@@ -47,23 +44,28 @@ public class FeignClientWithServerListApplicationTests {
return new FallbackRestClient();
}
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
@Bean
public FallbackClient fallback() {
return new FallbackClient();
}
public static void main(String[] args) {
SpringApplication.run(FeignClientApplication.class, args);
}
}
@FeignClient(value = "myexample", fallback = FallbackRestClient.class)
static interface RestClient {
@RequestMapping(value = "/", method = RequestMethod.GET)
public static interface ServiceRestClient {
@RequestMapping(value="/", method=RequestMethod.GET)
String hello();
}
static class FallbackRestClient implements RestClient {
static class FallbackRestClient implements ServiceRestClient {
@Override
public String hello() {
return "fallback";
}
}
}