Created
October 18, 2012 20:10
-
-
Save jstrachan/3914487 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import javax.naming.Context; | |
import org.apache.camel.Endpoint; | |
import org.apache.camel.builder.RouteBuilder; | |
import org.apache.camel.processor.binding.DataFormatBinding; | |
import org.apache.camel.component.mock.MockEndpoint; | |
import org.apache.camel.test.junit4.CamelTestSupport; | |
import org.junit.Test; | |
public class JacksonBindingTest extends CamelTestSupport { | |
protected Endpoint boundEndpoint; | |
protected MockEndpoint results; | |
@Test | |
public void testMarshalAndUnmarshalPojo() throws Exception { | |
TestPojo in = new TestPojo(); | |
in.setName("Camel"); | |
results.expectedMessageCount(1); | |
results.message(0).body().isInstanceOf(TestPojo.class); | |
results.message(0).body().equals(in); | |
template.sendBody("direct:start", in); | |
results.assertIsSatisfied(); | |
} | |
@Override | |
protected RouteBuilder createRouteBuilder() throws Exception { | |
results = getMockEndpoint("mock:results"); | |
return new RouteBuilder() { | |
@Override | |
public void configure() throws Exception { | |
// lets use the URI to associate the binding | |
// though it would be cleaner to use a DSL... | |
boundEndpoint = endpoint("binding:jackson:file:target/queue"); | |
from("direct:start").to(boundEndpoint).to("file:target/copyOfMessages"); | |
from(boundEndpoint).to(results); | |
} | |
}; | |
} | |
@Override | |
protected Context createJndiContext() throws Exception { | |
JacksonDataFormat format = new JacksonDataFormat(TestPojo.class); | |
Context context = super.createJndiContext(); | |
context.bind("jackson", new DataFormatBinding(format)); | |
return context; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment