package camelinaction;
import java.io.IOException;
import org.apache.camel.test.spring.CamelSpringTestSupport;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Tests Camel with Hystrix using XML DSL with Spring
*/
public class SpringCamelHystrixTest extends CamelSpringTestSupport {
@Override
protected AbstractApplicationContext createApplicationContext() {
return new ClassPathXmlApplicationContext("camelinaction/CamelHystrixSpringTest.xml");
}
@Test
public void testCamelHystrix() throws Exception {
Object out1 = template.requestBody("direct:start", "Hello");
assertEquals("Count 1", out1);
Object out2 = template.requestBody("direct:start", "Hello");
assertEquals("Count 2", out2);
Object out3 = template.requestBody("direct:start", "Hello");
assertEquals("Count 3", out3);
Object out4 = template.requestBody("direct:start", "Hello");
assertEquals("Count 4", out4);
// should fail the 5th time
try {
template.requestBody("direct:start", "Hello");
fail("Should have thrown exception");
} catch (Exception e) {
IOException cause = assertIsInstanceOf(IOException.class, e.getCause());
assertEquals("Forced error", cause.getMessage());
}
}
}