Rebased and squashed all changes to akka camel so far from Piotr and Ray

This commit is contained in:
Piotr Gabryanczyk 2012-01-19 14:38:44 +00:00 committed by RayRoestenburg
parent 43febd0b65
commit 4d6511c5c6
69 changed files with 3099 additions and 2758 deletions

View file

@ -1,109 +1,127 @@
/**
* Copyright (C) 2009-2012 Typesafe Inc. <http://www.typesafe.com>
*/
package akka.camel;
import akka.actor.ActorSystem;
import akka.japi.Function;
import org.apache.camel.NoTypeConversionAvailableException;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import akka.camel.CamelContextManager;
import akka.camel.Message;
import akka.japi.Function;
import java.io.InputStream;
import java.util.*;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
/**
* @author Martin Krasser
*/
public class MessageJavaTestBase {
static Camel camel;
private static ActorSystem system;
private Map<String,Object> empty = new HashMap<String, Object>();
@BeforeClass
public static void setUpBeforeClass() {
CamelContextManager.init();
system = ActorSystem.create("test");
camel = (Camel) CamelExtension.get(system);
}
@AfterClass
public static void cleanup(){
system.shutdown();
}
Message message(Object body){ return new Message(body, new HashMap()); }
Message message(Object body, Map<String, Object> headers){ return new Message(body, headers); }
private RichMessage rich(Message message) { return new RichMessage(message, camel.context()); }
@Test public void shouldConvertDoubleBodyToString() {
assertEquals("1.4", new Message("1.4").getBodyAs(String.class));
assertEquals("1.4", rich(message("1.4", empty)).getBodyAs(String.class));
}
@Test(expected=NoTypeConversionAvailableException.class)
public void shouldThrowExceptionWhenConvertingDoubleBodyToInputStream() {
new Message(1.4).getBodyAs(InputStream.class);
rich(message(1.4)).getBodyAs(InputStream.class);
}
@Test public void shouldReturnDoubleHeader() {
Message message = new Message("test" , createMap("test", 1.4));
Message message = message("test" , createMap("test", 1.4));
assertEquals(1.4, message.getHeader("test"));
}
@Test public void shouldConvertDoubleHeaderToString() {
Message message = new Message("test" , createMap("test", 1.4));
assertEquals("1.4", message.getHeaderAs("test", String.class));
Message message = message("test" , createMap("test", 1.4));
assertEquals("1.4", rich(message).getHeaderAs("test", String.class));
}
@Test public void shouldReturnSubsetOfHeaders() {
Message message = new Message("test" , createMap("A", "1", "B", "2"));
Message message = message("test" , createMap("A", "1", "B", "2"));
assertEquals(createMap("B", "2"), message.getHeaders(createSet("B")));
}
@Test(expected=UnsupportedOperationException.class)
public void shouldReturnSubsetOfHeadersUnmodifiable() {
Message message = new Message("test" , createMap("A", "1", "B", "2"));
Message message = message("test" , createMap("A", "1", "B", "2"));
message.getHeaders(createSet("B")).put("x", "y");
}
@Test public void shouldReturnAllHeaders() {
Message message = new Message("test" , createMap("A", "1", "B", "2"));
Message message = message("test" , createMap("A", "1", "B", "2"));
assertEquals(createMap("A", "1", "B", "2"), message.getHeaders());
}
@Test(expected=UnsupportedOperationException.class)
public void shouldReturnAllHeadersUnmodifiable() {
Message message = new Message("test" , createMap("A", "1", "B", "2"));
Message message = message("test" , createMap("A", "1", "B", "2"));
message.getHeaders().put("x", "y");
}
@Test public void shouldTransformBodyAndPreserveHeaders() {
assertEquals(
new Message("ab", createMap("A", "1")),
new Message("a" , createMap("A", "1")).transformBody((Function<String, Object>) new TestTransformer()));
message("ab", createMap("A", "1")),
message("a" , createMap("A", "1")).mapBody(new TestTransformer()));
}
@Test public void shouldConvertBodyAndPreserveHeaders() {
assertEquals(
new Message("1.4", createMap("A", "1")),
new Message(1.4 , createMap("A", "1")).setBodyAs(String.class));
message("1.4", createMap("A", "1")),
rich(message(1.4 , createMap("A", "1"))).withBodyAs(String.class));
}
@Test public void shouldSetBodyAndPreserveHeaders() {
assertEquals(
new Message("test2" , createMap("A", "1")),
new Message("test1" , createMap("A", "1")).setBody("test2"));
message("test2" , createMap("A", "1")),
message("test1" , createMap("A", "1")).withBody("test2"));
}
@Test public void shouldSetHeadersAndPreserveBody() {
assertEquals(
new Message("test1" , createMap("C", "3")),
new Message("test1" , createMap("A", "1")).setHeaders(createMap("C", "3")));
message("test1" , createMap("C", "3")),
message("test1" , createMap("A", "1")).withHeaders(createMap("C", "3")));
}
@Test public void shouldAddHeaderAndPreserveBodyAndHeaders() {
assertEquals(
new Message("test1" , createMap("A", "1", "B", "2")),
new Message("test1" , createMap("A", "1")).addHeader("B", "2"));
message("test1" , createMap("A", "1", "B", "2")),
message("test1" , createMap("A", "1")).plusHeader("B", "2"));
}
@Test public void shouldAddHeadersAndPreserveBodyAndHeaders() {
assertEquals(
new Message("test1" , createMap("A", "1", "B", "2")),
new Message("test1" , createMap("A", "1")).addHeaders(createMap("B", "2")));
message("test1" , createMap("A", "1", "B", "2")),
message("test1" , createMap("A", "1")).plusHeaders(createMap("B", "2")));
}
@Test public void shouldRemoveHeadersAndPreserveBodyAndRemainingHeaders() {
assertEquals(
new Message("test1" , createMap("A", "1")),
new Message("test1" , createMap("A", "1", "B", "2")).removeHeader("B"));
message("test1" , createMap("A", "1")),
message("test1" , createMap("A", "1", "B", "2")).withoutHeader("B"));
}
private static Set<String> createSet(String... entries) {
@ -120,7 +138,7 @@ public class MessageJavaTestBase {
return map;
}
private static class TestTransformer implements Function<String, Object> {
private static class TestTransformer implements Function<String, String> {
public String apply(String param) {
return param + "b";
}