ticket-1732, return Failure on producer ask _and_ throw AkkaCamelException so supervision can occur on camel failures

This commit is contained in:
RayRoestenburg 2012-05-07 14:18:06 +02:00
parent e6513bcb67
commit 8426ded00d
6 changed files with 112 additions and 44 deletions

View file

@ -64,6 +64,8 @@ class CamelExchangeAdapterTest extends FunSuite with SharedCamelSystem with Mess
test("mustCreateFailureMessageFromExceptionAndInMessage") {
val e1 = sampleInOnly
e1.setException(new Exception("test1"))
assert(e1.toAkkaCamelException.getMessage === "test1")
assert(e1.toAkkaCamelException.headers("key-in") === "val-in")
assert(e1.toFailureMessage.cause.getMessage === "test1")
assert(e1.toFailureMessage.headers("key-in") === "val-in")
}
@ -71,6 +73,8 @@ class CamelExchangeAdapterTest extends FunSuite with SharedCamelSystem with Mess
test("mustCreateFailureMessageFromExceptionAndOutMessage") {
val e1 = sampleInOut
e1.setException(new Exception("test2"))
assert(e1.toAkkaCamelException.getMessage === "test2")
assert(e1.toAkkaCamelException.headers("key-out") === "val-out")
assert(e1.toFailureMessage.cause.getMessage === "test2")
assert(e1.toFailureMessage.headers("key-out") === "val-out")
}
@ -93,19 +97,29 @@ class CamelExchangeAdapterTest extends FunSuite with SharedCamelSystem with Mess
test("mustCreateFailureMessageFromExceptionAndInMessageWithAdditionalHeader") {
val e1 = sampleInOnly
e1.setException(new Exception("test1"))
assert(e1.toFailureMessage.cause.getMessage === "test1")
val headers = e1.toFailureMessage(Map("x" -> "y")).headers
assert(e1.toAkkaCamelException.getMessage === "test1")
val headers = e1.toAkkaCamelException(Map("x" -> "y")).headers
assert(headers("key-in") === "val-in")
assert(headers("x") === "y")
assert(e1.toFailureMessage.cause.getMessage === "test1")
val failureHeaders = e1.toFailureMessage(Map("x" -> "y")).headers
assert(failureHeaders("key-in") === "val-in")
assert(failureHeaders("x") === "y")
}
test("mustCreateFailureMessageFromExceptionAndOutMessageWithAdditionalHeader") {
val e1 = sampleInOut
e1.setException(new Exception("test2"))
assert(e1.toFailureMessage.cause.getMessage === "test2")
val headers = e1.toFailureMessage(Map("x" -> "y")).headers
assert(e1.toAkkaCamelException.getMessage === "test2")
val headers = e1.toAkkaCamelException(Map("x" -> "y")).headers
assert(headers("key-out") === "val-out")
assert(headers("x") === "y")
assert(e1.toFailureMessage.cause.getMessage === "test2")
val failureHeaders = e1.toFailureMessage(Map("x" -> "y")).headers
assert(failureHeaders("key-out") === "val-out")
assert(failureHeaders("x") === "y")
}
private def sampleInOnly = sampleExchange(ExchangePattern.InOnly)