RABBIT_MQ_DEFAULT_DATA_TRANSFORMER#
Основная статья: Сериализация и десериализация
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) {
//тут описываем механизм сериализации
}
}
#Значение свойства указывается так
RABBIT_MQ_DEFAULT_DATA_TRANSFORMER=org.my.pack.MyDataTransformer
import ru.tinkoff.qa.neptune.core.api.data.format.DataTransformer;
import static ru.tinkoff.qa.neptune.rabbit.mq.properties
.RabbitMqDefaultDataTransformer.RABBIT_MQ_DEFAULT_DATA_TRANSFORMER;
public class SomeClass {
public void someVoid() {
//пример доступа до значения свойства
DataTransformer transformer = RABBIT_MQ_DEFAULT_DATA_TRANSFORMER.get();
}
}
Как вариант можно, можно использовать бины Spring-приложения
import org.my.pack;
import com.fasterxml.jackson.core.type.TypeReference;
import ru.tinkoff.qa.neptune.core.api.data.format.DataTransformer;
import static ru.tinkoff.qa.neptune.spring.boot.starter.application
.contexts.CurrentApplicationContextTestExecutionListener.getCurrentApplicationContext;
//Описываем сериализацию и десериализацию для текущего проекта
public class MyDataTransformer implements DataTransformer {
@Override
public <T> T deserialize(String message, Class<T> cls) {
//текущий контекст приложения
var context = getCurrentApplicationContext();
//Далее извлекаем необходимые бины,
//при помощи которых можно выполнить десериализацию
//сообщения Rabbit MQ
return //возврат десериализации
}
@Override
public <T> T deserialize(String string, TypeReference<T> type) {
//текущий контекст приложения
var context = getCurrentApplicationContext();
//Далее извлекаем необходимые бины,
//при помощи которых можно выполнить десериализацию
//сообщения Rabbit MQ
return //возврат десериализации
}
@Override
public String serialize(Object obj) {
//текущий контекст приложения
var context = getCurrentApplicationContext();
//Далее извлекаем необходимые бины,
//при помощи которых можно выполнить сериализацию
//сообщения Rabbit MQ
return //возврат сериализации
}
}
Полезная ссылка: Neptune Spring boot starter