Search in sources :

Example 31 with GetResponse

use of com.rabbitmq.client.GetResponse in project rabbitmq-queue-management by gessnerfl.

the class MessageOperationExecutorTest method mockDefaultGetResponse.

private GetResponse mockDefaultGetResponse() {
    GetResponse response = mock(GetResponse.class);
    when(response.getEnvelope()).thenReturn(DEFAULT_ENVELOPE);
    when(response.getProps()).thenReturn(DEFAULT_BASIC_PROPERTIES);
    when(response.getBody()).thenReturn(DEFAULT_PAYLOAD);
    return response;
}
Also used : GetResponse(com.rabbitmq.client.GetResponse)

Example 32 with GetResponse

use of com.rabbitmq.client.GetResponse in project rabbitmq-queue-management by gessnerfl.

the class MessageOperationExecutorTest method shouldRetrieveMessageFromQueueAndNackWithRequeuWhenChecksumDoesNotMatch.

@Test
public void shouldRetrieveMessageFromQueueAndNackWithRequeuWhenChecksumDoesNotMatch() throws Exception {
    GetResponse response = mockDefaultGetResponse();
    when(channel.basicGet(DEFAULT_QUEUE_NAME, false)).thenReturn(response);
    try {
        sut.consumeMessageApplyFunctionAndAckknowlegeOnSuccess(DEFAULT_BROKER_NAME, DEFAULT_QUEUE_NAME, "invalidChecksum", function);
        fail();
    } catch (MessageOperationFailedException e) {
    }
    verify(channel).basicNack(DEFAULT_DELIVERY_TAG, false, true);
    verify(function, never()).apply(any(Channel.class), any(GetResponse.class));
}
Also used : Channel(com.rabbitmq.client.Channel) GetResponse(com.rabbitmq.client.GetResponse) Test(org.junit.Test)

Example 33 with GetResponse

use of com.rabbitmq.client.GetResponse in project rabbitmq-queue-management by gessnerfl.

the class MessageOperationExecutorTest method shouldThrowExceptionWhenNackCannotBeSentAfterChecksumMatchFailed.

@Test
public void shouldThrowExceptionWhenNackCannotBeSentAfterChecksumMatchFailed() throws Exception {
    GetResponse getResponse = mockDefaultGetResponse();
    when(channel.basicGet(DEFAULT_QUEUE_NAME, false)).thenReturn(getResponse);
    when(messageChecksum.createFor(DEFAULT_BASIC_PROPERTIES, DEFAULT_PAYLOAD)).thenReturn(DEFAULT_CHECKSUM);
    IOException expectedException = new IOException();
    doThrow(expectedException).when(channel).basicNack(DEFAULT_DELIVERY_TAG, false, true);
    try {
        sut.consumeMessageApplyFunctionAndAckknowlegeOnSuccess(DEFAULT_BROKER_NAME, DEFAULT_QUEUE_NAME, "invalidMessage", function);
    } catch (MessageOperationFailedException e) {
        assertSame(expectedException, e.getCause());
    }
    verify(messageChecksum).createFor(DEFAULT_BASIC_PROPERTIES, DEFAULT_PAYLOAD);
    verify(channel).basicGet(DEFAULT_QUEUE_NAME, false);
    verify(channel).basicNack(DEFAULT_DELIVERY_TAG, false, true);
    verifyNoMoreInteractions(channel);
    verify(function, never()).apply(any(Channel.class), any(GetResponse.class));
}
Also used : Channel(com.rabbitmq.client.Channel) IOException(java.io.IOException) GetResponse(com.rabbitmq.client.GetResponse) Test(org.junit.Test)

Example 34 with GetResponse

use of com.rabbitmq.client.GetResponse in project rabbitmq-queue-management by gessnerfl.

the class MessageMapperTest method shouldMapRabbitMqSpecificTypesInAmqpBasicPropertiesHeadersDeepInMap.

@Test
public void shouldMapRabbitMqSpecificTypesInAmqpBasicPropertiesHeadersDeepInMap() {
    String headerKey = "headerKey";
    String subHeaderKey = "subHeaderKey";
    String subHeaderValue = "subHeaderValue";
    LongString longStringValue = mock(LongString.class);
    when(longStringValue.toString()).thenReturn(subHeaderValue);
    Map<String, Object> subHeaders = new HashMap<>();
    subHeaders.put(subHeaderKey, longStringValue);
    Map<String, Object> headers = new HashMap<>();
    headers.put(headerKey, subHeaders);
    AMQP.BasicProperties basicProperties = mock(AMQP.BasicProperties.class);
    when(basicProperties.getHeaders()).thenReturn(headers);
    Envelope envelope = mock(Envelope.class);
    GetResponse getResponse = mockResponse(envelope, basicProperties);
    Message result = sut.map(getResponse);
    BasicProperties basicPropertiesOfResult = result.getProperties();
    assertNotNull(basicPropertiesOfResult);
    assertThat(basicPropertiesOfResult.getHeaders().keySet(), Matchers.hasSize(1));
    assertThat(basicPropertiesOfResult.getHeaders(), Matchers.hasKey(headerKey));
    assertThat(basicPropertiesOfResult.getHeaders().get(headerKey), Matchers.instanceOf(Map.class));
    assertThat(((Map<String, Object>) basicPropertiesOfResult.getHeaders().get(headerKey)).keySet(), Matchers.hasSize(1));
    assertThat(((Map<String, Object>) basicPropertiesOfResult.getHeaders().get(headerKey)), Matchers.hasKey(subHeaderKey));
    assertEquals(subHeaderValue, ((Map) basicPropertiesOfResult.getHeaders().get(headerKey)).get(subHeaderKey));
}
Also used : Message(de.gessnerfl.rabbitmq.queue.management.model.Message) AMQP(com.rabbitmq.client.AMQP) BasicProperties(de.gessnerfl.rabbitmq.queue.management.model.BasicProperties) LongString(com.rabbitmq.client.LongString) LongString(com.rabbitmq.client.LongString) Envelope(com.rabbitmq.client.Envelope) GetResponse(com.rabbitmq.client.GetResponse) Test(org.junit.Test)

Example 35 with GetResponse

use of com.rabbitmq.client.GetResponse in project rabbitmq-queue-management by gessnerfl.

the class MessageMapperTest method shouldMapRabbitMqSpecificTypesInAmqpBasicPropertiesHeaders.

@Test
public void shouldMapRabbitMqSpecificTypesInAmqpBasicPropertiesHeaders() {
    String headerKey = "headerKey";
    String headerValue = "headerValue";
    LongString longStringValue = mock(LongString.class);
    when(longStringValue.toString()).thenReturn(headerValue);
    Map<String, Object> headers = new HashMap<>();
    headers.put(headerKey, longStringValue);
    AMQP.BasicProperties basicProperties = mock(AMQP.BasicProperties.class);
    when(basicProperties.getHeaders()).thenReturn(headers);
    Envelope envelope = mock(Envelope.class);
    GetResponse getResponse = mockResponse(envelope, basicProperties);
    Message result = sut.map(getResponse);
    BasicProperties basicPropertiesOfResult = result.getProperties();
    assertNotNull(basicPropertiesOfResult);
    assertThat(basicPropertiesOfResult.getHeaders().keySet(), Matchers.hasSize(1));
    assertThat(basicPropertiesOfResult.getHeaders(), Matchers.hasKey(headerKey));
    assertEquals(headerValue, basicPropertiesOfResult.getHeaders().get(headerKey));
}
Also used : Message(de.gessnerfl.rabbitmq.queue.management.model.Message) AMQP(com.rabbitmq.client.AMQP) BasicProperties(de.gessnerfl.rabbitmq.queue.management.model.BasicProperties) LongString(com.rabbitmq.client.LongString) LongString(com.rabbitmq.client.LongString) Envelope(com.rabbitmq.client.Envelope) GetResponse(com.rabbitmq.client.GetResponse) Test(org.junit.Test)

Aggregations

GetResponse (com.rabbitmq.client.GetResponse)55 Test (org.junit.Test)27 Channel (com.rabbitmq.client.Channel)10 IOException (java.io.IOException)10 Envelope (com.rabbitmq.client.Envelope)8 Connection (com.rabbitmq.client.Connection)7 Message (de.gessnerfl.rabbitmq.queue.management.model.Message)6 HashMap (java.util.HashMap)6 AMQP (com.rabbitmq.client.AMQP)5 LongString (com.rabbitmq.client.LongString)5 BasicProperties (com.rabbitmq.client.AMQP.BasicProperties)4 BasicProperties (de.gessnerfl.rabbitmq.queue.management.model.BasicProperties)4 RMQDestination (com.rabbitmq.jms.admin.RMQDestination)3 ArrayList (java.util.ArrayList)3 HashSet (java.util.HashSet)3 List (java.util.List)3 Map (java.util.Map)3 Queue (javax.jms.Queue)3 QueueSender (javax.jms.QueueSender)3 QueueSession (javax.jms.QueueSession)3