use of io.qameta.allure.Description in project mule by mulesoft.
the class DefaultEventContextTestCase method multipleLevelsParentFirst.
@Test
@Description("Parent EventContext only completes once response publisher completes with a value and all child and grandchild contexts are complete, even if parent response is available earlier.")
public void multipleLevelsParentFirst() throws Exception {
child = addChild(parent);
BaseEventContext grandchild = child(child, empty());
parent.success(testEvent());
assertChild(is(nullValue()), is(nullValue()), false);
assertParent(is(testEvent()), is(nullValue()), false, false);
child.success(testEvent());
assertChild(is(testEvent()), is(nullValue()), false);
assertParent(is(testEvent()), is(nullValue()), false, false);
grandchild.success();
assertChild(is(testEvent()), is(nullValue()), true);
assertParent(is(testEvent()), is(nullValue()), true, true);
}
use of io.qameta.allure.Description in project mule by mulesoft.
the class SplitAggregateScopeTestCase method routingPairs.
@Test
@Description("RoutingPairs are created for each route configured. Each RoutingPair has the same input event.")
public void routingPairs() throws Exception {
CoreEvent event = createListEvent();
MessageProcessorChain nested = mock(MessageProcessorChain.class);
muleContext.getInjector().inject(router);
router.setMessageProcessors(singletonList(nested));
router.setAnnotations(getAppleFlowComponentLocationAnnotations());
router.initialise();
List<RoutingPair> routingPairs = from(router.getRoutingPairs(event)).collectList().block();
assertThat(routingPairs, hasSize(2));
assertThat(routingPairs.get(0).getEvent().getMessage().getPayload().getValue(), equalTo(((List<Message>) event.getMessage().getPayload().getValue()).get(0)));
assertThat(routingPairs.get(0).getRoute(), sameInstance(nested));
assertThat(routingPairs.get(1).getEvent().getMessage().getPayload().getValue(), equalTo(((List<Message>) event.getMessage().getPayload().getValue()).get(1)));
assertThat(routingPairs.get(1).getRoute(), sameInstance(nested));
}
use of io.qameta.allure.Description in project mule by mulesoft.
the class AbstractForkJoinStrategyTestCase method errorEager.
@Test
@Description("When configured with delayErrors='false' the first errors causes strategy to throw this exception.")
public void errorEager() throws Throwable {
strategy = createStrategy(processingStrategy, 1, false, MAX_VALUE);
Processor processorSpy = createProcessorSpy(of(1));
RuntimeException exception = new IllegalStateException();
RoutingPair failingPair = of(testEvent(), createFailingRoutingPair(exception));
RoutingPair okPair = of(testEvent(), createChain(processorSpy));
expectedException.expect(instanceOf(MessagingException.class));
expectedException.expectCause(is(exception));
invokeStrategyBlocking(strategy, testEvent(), asList(failingPair, okPair), throwable -> verify(processorSpy, never()).process(any(CoreEvent.class)));
}
use of io.qameta.allure.Description in project mule by mulesoft.
the class AbstractForkJoinStrategyTestCase method errorEagerConcurrent.
@Test
@Description("When configured with delayErrors='false' the first errors causes strategy to throw this exception. Other routes may or may not be executed depending on concurrency.")
public void errorEagerConcurrent() throws Throwable {
strategy = createStrategy(processingStrategy, 4, false, MAX_VALUE);
Processor processorSpy = createProcessorSpy(of(1));
Processor processorSpy2 = createProcessorSpy(of(2));
Processor processorSpy3 = createProcessorSpy(of(3));
CoreEvent orignial = testEvent();
RuntimeException exception = new IllegalStateException();
RoutingPair failingPair = of(orignial, createFailingRoutingPair(exception));
RoutingPair okPair = of(orignial, createChain(processorSpy));
RoutingPair okPair2 = of(orignial, createChain(processorSpy2));
RoutingPair okPair3 = of(orignial, createChain(processorSpy3));
expectedException.expect(instanceOf(MessagingException.class));
expectedException.expectCause(is(exception));
invokeStrategyBlocking(strategy, testEvent(), asList(failingPair, okPair, okPair2, okPair3), throwable -> {
verify(processorSpy, atMost(1)).process(any(CoreEvent.class));
verify(processorSpy2, atMost(1)).process(any(CoreEvent.class));
verify(processorSpy3, atMost(1)).process(any(CoreEvent.class));
});
}
use of io.qameta.allure.Description in project mule by mulesoft.
the class AbstractForkJoinStrategyTestCase method timeoutDelayed.
@Test
@Description("When a route timeout occurs all routes are still executed and a CompositeRoutingException is thrown with details of timeout error and successful routes in RoutingResult.")
public void timeoutDelayed() throws Throwable {
strategy = createStrategy(processingStrategy, 1, true, 50);
Message pair2Result = of(2);
Processor pair2Processor = createProcessorSpy(pair2Result);
RoutingPair pair2 = of(testEvent(), createChain(pair2Processor));
expectedException.expect(instanceOf(CompositeRoutingException.class));
invokeStrategyBlocking(strategy, testEvent(), asList(createRoutingPairWithSleep(of(1), 250), pair2), throwable -> {
verify(pair2Processor, times(1)).process(any(CoreEvent.class));
CompositeRoutingException compositeRoutingException = assertCompositeRoutingException(throwable, 1);
RoutingResult routingResult = assertRoutingResult(compositeRoutingException, 1, 1);
assertThat(routingResult.getFailures().get("0").getCause(), instanceOf(TimeoutException.class));
assertThat(routingResult.getResults().get("1"), is(pair2Result));
});
}
Aggregations