Почему этот тест не проходит с "java.lang.AssertionError: mock: // destino Количество полученных сообщений. Ожидаемое: <12>, но было: <0>"?Я просто пытаюсь проверить, может ли Camel действительно изменить порядок сообщений.
Импорт:
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");
}
}
Спасибо, Родольфо