RabbitMQ Java API метод queuePurge (), вызываемый в Qpid, возвращает ответ PurgeOK с нулевым количеством сообщений - PullRequest
1 голос
/ 22 мая 2019

Я тестирую интеграцию компонента, использующего клиент 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 дает ожидаемый результат.

Является ли это известной проблемой?Есть ли лучший способ для модульного тестирования функции очистки?

1 Ответ

1 голос
/ 27 мая 2019

Это не была известная проблема, я поднял проблему для этого дефекта в Qpid Broker-J.Спасибо за вашу помощь в обнаружении этого.

...