Arhn - архитектура программирования

Apache Camel: использование ValueBuilder.convertTo в фиктивных ожиданиях конечной точки

Я не могу понять, как использовать ValueBuilder.convertTo в качестве предложения в фиктивных ожиданиях конечной точки Apache Camel. По какой-то причине ожидания, содержащие convertTo, игнорируются.

Вот тест, который иллюстрирует проблему:

package wheleph;

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;

public class ConvertToTest extends CamelTestSupport {

    private static final String INBOUND_ENDPOINT = "direct:inbound";
    private static final String OUTBOUND_ENDPOINT = "mock:outbound";

    @Test
    public void testConvertToBody() throws InterruptedException {
        MockEndpoint mockOutboundEndpoint = getMockEndpoint(OUTBOUND_ENDPOINT);
        mockOutboundEndpoint.expectedMessageCount(1);
        mockOutboundEndpoint.message(0).body().convertTo(String.class).isEqualTo("Blah");

        template.sendBody(INBOUND_ENDPOINT, "Message 1");

        assertMockEndpointsSatisfied();
    }

    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from(INBOUND_ENDPOINT).
                        to(OUTBOUND_ENDPOINT);
            }
        };
    }
}

Приведенный выше тестовый пример должен завершиться ошибкой, потому что фиктивная конечная точка фактически получает сообщение с телом «Message 1», которое не равно ожидаемому значению «Blah». Однако этот тест зеленый.

Но если я удалю convertTo из настройки фиктивной конечной точки (mockOutboundEndpoint.message(0).body().convertTo(String.class).isEqualTo("Blah")), то тест завершится неудачей, как и должно быть.

Я неправильно использую ValueBuilder.convertTo или это ошибка в среде тестирования Apache Camel?


Ответы:


1

Просто укажите тип в качестве параметра body, как показано ниже:

mockOutboundEndpoint.message(0).body(String.class).isEqualTo("Blah");
25.08.2014
  • Спасибо, Клаус. Это работает, если я хочу утвердить тело сообщения. Но что, если я хочу подтвердить значение свойства? Также какова цель ValueBuilder.convertTo? 25.08.2014
  • Я также думаю, что есть .header и .property. 26.08.2014
  • Правильно, но в отличие от AssertionClause.body, здесь нет свойства или заголовка перегруженных методов, которые принимают класс для преобразования в (camel.apache.org/maven/camel-2.13.0/camel-core/apidocs/org/). Я что-то упускаю? 26.08.2014
  • Вопрос, поднятый в моем предыдущем комментарии, был сообщен: issues.apache.org/jira/browse /CAMEL-7767 31.08.2014
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..