Publish-операции#

Полезные ссылки:

import static ru.tinkoff.qa.neptune.rabbit.mq.RabbitMqStepContext.rabbitMq;
import static ru.tinkoff.qa.neptune.rabbit.mq.function.publish.RabbitMqPublishSupplier.rabbitTextMessage;

public class MyTest {

    @Test
    public void myTest() {
        //публикация сообщения, переданного текстом
        rabbitMq().publish(rabbitTextMessage("Hello world") //публикуемый текст
                .exchange("exchange1") //необязательный вызов
                //по умолчанию используется значение свойства RABBIT_MQ_DEFAULT_EXCHANGE_NAME
                .routingKey("routing_key1") //необязательный вызов
                //по умолчанию используется значение свойства RABBIT_MQ_DEFAULT_ROUTING_KEY_NAME
                .immediate() //и при необходимости 
                .mandatory() //можно указать набор дополнительных 
                .header("header1", "value1") //параметров
                .replyTo("ReplyTo")
                .deliveryMode(1)
                .priority(2)
                .contentType("plain text")
                .contentEncoding("UTF-8")
                .correlationId("!@#4")
                .expiration("1234567")
                .messageId("hjhjkhjk")
                .timestamp(timeStamp)
                .userId("UserId")
                .appId("AppId")
                .clusterId("ClasterId"));
    }
}

Публикация сериализованного объекта#

Полезные ссылки:

import org.my.pack;

import com.fasterxml.jackson.core.type.TypeReference;
import ru.tinkoff.qa.neptune.core.api.data.format.DataTransformer;

//Описываем сериализацию и десериализацию для текущего проекта
public class MyDataTransformer implements DataTransformer {


    @Override
    public <T> T deserialize(String message, Class<T> cls) {
        //тут описываем механизм десериализации
    }

    @Override
    public <T> T deserialize(String string, TypeReference<T> type) {
        //тут описываем механизм десериализации
    }

    @Override
    public String serialize(Object obj) {
        //тут описываем механизм сериализации
    }
}
import static ru.tinkoff.qa.neptune.rabbit.mq.RabbitMqStepContext.rabbitMq;
import static ru.tinkoff.qa.neptune.rabbit.mq.function.publish.RabbitMqPublishSupplier.rabbitSerializedMessage;

public class MyTest {

    @Test
    public void myTest() {
        //передача объекта, сериализуемого в строку
        rabbitMq().publish(rabbitSerializedMessage(
                //объект, который надо превратить в сообщение
                new DraftDto().setName("test")) // и опубликовать
                //необязательный вызов
                //по умолчанию используется значение свойства RABBIT_MQ_DEFAULT_DATA_TRANSFORMER
                .withDataTransformer(new MyDataTransformer())
            //можно указать 
            //прочие дополнительные параметры
            //см пример выше
            );
    }
}