2012-01-19 14:38:44 +00:00
|
|
|
/**
|
2013-01-09 01:47:48 +01:00
|
|
|
* Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com>
|
2012-01-19 14:38:44 +00:00
|
|
|
*/
|
2011-05-23 11:37:56 -04:00
|
|
|
|
2012-01-19 14:38:44 +00:00
|
|
|
package akka.camel;
|
2011-05-23 11:37:56 -04:00
|
|
|
|
2012-09-21 14:50:06 +02:00
|
|
|
import scala.concurrent.duration.Duration;
|
|
|
|
|
import scala.concurrent.duration.FiniteDuration;
|
2012-09-14 10:08:40 +02:00
|
|
|
import akka.actor.ActorRef;
|
|
|
|
|
import akka.actor.ActorSystem;
|
|
|
|
|
import akka.actor.Props;
|
|
|
|
|
import akka.testkit.JavaTestKit;
|
2012-09-03 12:08:46 +02:00
|
|
|
import akka.util.Timeout;
|
|
|
|
|
import scala.concurrent.Await;
|
|
|
|
|
import scala.concurrent.ExecutionContext;
|
|
|
|
|
import org.junit.AfterClass;
|
|
|
|
|
import org.junit.Test;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
import akka.testkit.AkkaSpec;
|
|
|
|
|
import static org.junit.Assert.*;
|
2011-05-23 11:37:56 -04:00
|
|
|
/**
|
2012-11-24 18:08:34 +01:00
|
|
|
*
|
2011-05-23 11:37:56 -04:00
|
|
|
*/
|
|
|
|
|
public class ConsumerJavaTestBase {
|
|
|
|
|
|
2012-09-19 23:55:53 +02:00
|
|
|
static ActorSystem system = ActorSystem.create("test", AkkaSpec.testConf());
|
|
|
|
|
|
|
|
|
|
@AfterClass
|
|
|
|
|
public static void tearDownAfterClass() {
|
|
|
|
|
system.shutdown();
|
|
|
|
|
}
|
|
|
|
|
|
2012-09-03 12:08:46 +02:00
|
|
|
@Test
|
|
|
|
|
public void shouldHandleExceptionThrownByActorAndGenerateCustomResponse() throws Exception {
|
|
|
|
|
new JavaTestKit(system) {{
|
|
|
|
|
String result = new EventFilter<String>(Exception.class) {
|
|
|
|
|
protected String run() {
|
|
|
|
|
FiniteDuration duration = Duration.create(1, TimeUnit.SECONDS);
|
|
|
|
|
Timeout timeout = new Timeout(duration);
|
|
|
|
|
Camel camel = CamelExtension.get(system);
|
|
|
|
|
ExecutionContext executionContext = system.dispatcher();
|
|
|
|
|
try {
|
|
|
|
|
Await.result(
|
2013-05-02 17:00:44 +02:00
|
|
|
camel.activationFutureFor(system.actorOf(Props.create(SampleErrorHandlingConsumer.class), "sample-error-handling-consumer"), timeout, executionContext),
|
2012-09-03 12:08:46 +02:00
|
|
|
duration);
|
|
|
|
|
return camel.template().requestBody("direct:error-handler-test-java", "hello", String.class);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e) {
|
|
|
|
|
return e.getMessage();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}.occurrences(1).exec();
|
|
|
|
|
assertEquals("error: hello", result);
|
|
|
|
|
}};
|
|
|
|
|
}
|
2011-05-23 11:37:56 -04:00
|
|
|
}
|