|
Akka/Scala example source code file (MessageJavaTest.java)
The MessageJavaTest.java Akka example source code/** * Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com> */ package akka.camel; import akka.actor.ActorSystem; import akka.dispatch.Mapper; import akka.testkit.AkkaJUnitActorSystemResource; import org.apache.camel.NoTypeConversionAvailableException; import org.apache.camel.converter.stream.InputStreamCache; import org.junit.ClassRule; import org.junit.Test; import java.io.InputStream; import java.util.*; import static org.junit.Assert.assertEquals; /** * */ public class MessageJavaTest { private Map<String,Object> empty = new HashMap<String, Object>(); @ClassRule public static AkkaJUnitActorSystemResource actorSystemResource = new AkkaJUnitActorSystemResource("MessageJavaTest"); private final ActorSystem system = actorSystemResource.getSystem(); private Camel camel = (Camel) CamelExtension.get(system); CamelMessage message(Object body){ return new CamelMessage(body, new HashMap<String, Object>()); } CamelMessage message(Object body, Map<String, Object> headers){ return new CamelMessage(body, headers); } @Test public void shouldConvertDoubleBodyToString() { assertEquals("1.4", message("1.4", empty).getBodyAs(String.class,camel.context())); } @Test(expected=NoTypeConversionAvailableException.class) public void shouldThrowExceptionWhenConvertingDoubleBodyToInputStream() { message(1.4).getBodyAs(InputStream.class,camel.context()); } @Test public void shouldConvertDoubleHeaderToString() { CamelMessage message = message("test" , createMap("test", 1.4)); assertEquals("1.4", message.getHeaderAs("test", String.class,camel.context())); } @Test public void shouldReturnSubsetOfHeaders() { CamelMessage message = message("test" , createMap("A", "1", "B", "2")); assertEquals(createMap("B", "2"), message.getHeaders(createSet("B"))); } @Test(expected=UnsupportedOperationException.class) public void shouldReturnSubsetOfHeadersUnmodifiable() { CamelMessage message = message("test" , createMap("A", "1", "B", "2")); message.getHeaders(createSet("B")).put("x", "y"); } @Test public void shouldReturnAllHeaders() { CamelMessage message = message("test" , createMap("A", "1", "B", "2")); assertEquals(createMap("A", "1", "B", "2"), message.getHeaders()); } @Test(expected=UnsupportedOperationException.class) public void shouldReturnAllHeadersUnmodifiable() { CamelMessage message = message("test" , createMap("A", "1", "B", "2")); message.getHeaders().put("x", "y"); } @Test public void shouldTransformBodyAndPreserveHeaders() { assertEquals( message("ab", createMap("A", "1")), message("a" , createMap("A", "1")).mapBody(new TestTransformer())); } @Test public void shouldConvertBodyAndPreserveHeaders() { assertEquals( message("1.4", createMap("A", "1")), message(1.4 , createMap("A", "1")).withBodyAs(String.class,camel.context())); } @Test public void shouldSetBodyAndPreserveHeaders() { assertEquals( message("test2" , createMap("A", "1")), message("test1" , createMap("A", "1")).withBody("test2")); } @Test public void shouldSetHeadersAndPreserveBody() { assertEquals( message("test1" , createMap("C", "3")), message("test1" , createMap("A", "1")).withHeaders(createMap("C", "3"))); } @Test public void shouldBeAbleToReReadStreamCacheBody() throws Exception { CamelMessage msg = new CamelMessage(new InputStreamCache("test1".getBytes("utf-8")), empty); assertEquals("test1", msg.getBodyAs(String.class, camel.context())); // re-read assertEquals("test1", msg.getBodyAs(String.class, camel.context())); } private static Set<String> createSet(String... entries) { HashSet<String> set = new HashSet<String>(); set.addAll(Arrays.asList(entries)); return set; } private static Map<String, Object> createMap(Object... pairs) { HashMap<String, Object> map = new HashMap<String, Object>(); for (int i = 0; i < pairs.length; i += 2) { map.put((String)pairs[i], pairs[i+1]); } return map; } private static class TestTransformer extends Mapper<String, String> { @Override public String apply(String param) { return param + "b"; } } } Other Akka source code examplesHere is a short list of links related to this Akka MessageJavaTest.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.