Я тестирую интеграцию компонента, использующего клиент RabbitMQ (amqp-client версии 5.7.0) со встроенным объектом сервера Apache Qpid.
При вызове метода Channel.queuePurge()
очередь очищается.Я могу проверить это с помощью метода getMessageCount()
.Но метод queuePurge()
возвращает объект PurgeOk
, который всегда имеет 0 сообщений.В документации говорится, что PurgeOK
возвращает количество сообщений, которые были удалены.
//The queue has 1 message.
int f = getMessageCount();
//verify message count
assertEquals(f, 1);
//purge
com.rabbitmq.client.AMQP.Queue.PurgeOk purgeOK= channel.queuePurge(queueName);
//the next test fails.
//Shouldn't the purgeOK have count 1, to denote that one message was purged?
assertEquals(purgeOK.getMessageCount(), 1);
Это происходит только при тестировании со встроенным сервером Qpid.Тот же тестовый пример с действующим экземпляром Rabbit MQ дает ожидаемый результат.
Является ли это известной проблемой?Есть ли лучший способ для модульного тестирования функции очистки?