1
为什么此测试失败,并显示“java.lang.AssertionError:mock:// destino Received message count。Expected:< 12> but was:< 0>”?我只是想测试骆驼是否真的可以重新排列消息。使用MockEndpoint测试骆驼路由
进口:
import java.util.ArrayList;
import java.util.List;
import org.apache.camel.CamelContext;
import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.guice.CamelModuleWithRouteTypes;
import org.jukito.JukitoModule;
import org.jukito.JukitoRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.google.inject.Inject;
测试:
@RunWith(JukitoRunner.class) public class ResequenceTest {
@Inject protected CamelContext context;
@Produce protected ProducerTemplate template;
public static class Module extends JukitoModule {
@SuppressWarnings("unchecked") protected void configureTest() {
install(new CamelModuleWithRouteTypes(OrderingTestRouteBuilder.class));
}
}
@Test public void testDozenMsgsOrderByIntegerBody() throws Exception {
// fail();
Integer[] input = new Integer[] {12, 11, 10, 9, 8, 7, 6, 5, 1, 2, 3, 4};
List<Integer> expectedOutput = new ArrayList<Integer>();
for (int i=1; i<=12; i++) {expectedOutput.add(i);};
for (Integer i : input) {template.sendBody("mock:receptor", i);};
MockEndpoint resultEndpoint = context.getEndpoint("mock:destino", MockEndpoint.class);
resultEndpoint.expectedBodiesReceived(expectedOutput);
resultEndpoint.assertIsSatisfied();
}
}
路线:
class OrderingTestRouteBuilder extends RouteBuilder {
@Override public void configure() throws Exception {
from("direct:start")
.to("mock:receptor")
.resequence(body(Integer.class))
.to("mock:destino");
}
}
感谢, 鲁道夫
是的,我今天早上意识到这点。谢谢,克劳斯。 – Rodolfo 2011-12-19 12:53:28