Fixes #8
This commit is contained in:
@@ -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";
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user