You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2014/10/13 22:31:22 UTC
[1/2] git commit: Fix the test case.
Repository: qpid-jms
Updated Branches:
refs/heads/master f2900222e -> 95941245a
Fix the test case.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/fff5e965
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/fff5e965
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/fff5e965
Branch: refs/heads/master
Commit: fff5e965364be51d1cc9d2104789957a0d582181
Parents: f290022
Author: Timothy Bish <ta...@gmail.com>
Authored: Mon Oct 13 16:04:10 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Mon Oct 13 16:04:10 2014 -0400
----------------------------------------------------------------------
.../qpid/jms/message/JmsMessagePropertyIntercepterTest.java | 5 -----
1 file changed, 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fff5e965/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
index 4a54d06..69e2aed 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
@@ -454,11 +454,6 @@ public class JmsMessagePropertyIntercepterTest {
fail("Should have thrown an exception for this call");
} catch (NumberFormatException e) {
}
- try {
- JmsMessagePropertyIntercepter.setProperty(message, JMS_DELIVERY_MODE, null);
- fail("Should have thrown an exception for this call");
- } catch (NumberFormatException e) {
- }
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/2] git commit: Add some additional test cases to ensure errors are
trapped. Remove unneeded check for null.
Posted by ta...@apache.org.
Add some additional test cases to ensure errors are trapped. Remove
unneeded check for null.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/95941245
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/95941245
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/95941245
Branch: refs/heads/master
Commit: 95941245ade051d81093ac5b3cc46651a31160de
Parents: fff5e96
Author: Timothy Bish <ta...@gmail.com>
Authored: Mon Oct 13 16:31:10 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Mon Oct 13 16:31:10 2014 -0400
----------------------------------------------------------------------
.../amqp/message/AmqpJmsBytesMessageFacade.java | 3 +-
.../message/AmqpJmsBytesMessageFacadeTest.java | 107 +++++++++++++++++++
2 files changed, 108 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/95941245/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacade.java
index 1fe5e26..8e9aca9 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacade.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacade.java
@@ -103,8 +103,7 @@ public class AmqpJmsBytesMessageFacade extends AmqpJmsMessageFacade implements J
@Override
public boolean isEmpty() {
- Binary payload = getBinaryFromBody();
- return payload == null || payload.getLength() == 0;
+ return getBinaryFromBody().getLength() == 0;
}
@Override
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/95941245/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacadeTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacadeTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacadeTest.java
index b07ba29..fd110ee 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacadeTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsBytesMessageFacadeTest.java
@@ -20,13 +20,19 @@ import static org.apache.qpid.jms.provider.amqp.message.AmqpMessageSupport.JMS_B
import static org.apache.qpid.jms.provider.amqp.message.AmqpMessageSupport.JMS_MSG_TYPE;
import static org.apache.qpid.jms.provider.amqp.message.AmqpMessageSupport.getSymbol;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import io.netty.buffer.ByteBufInputStream;
+import io.netty.buffer.ByteBufOutputStream;
+import io.netty.buffer.Unpooled;
+import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
@@ -40,6 +46,7 @@ import org.apache.qpid.proton.amqp.messaging.MessageAnnotations;
import org.apache.qpid.proton.amqp.messaging.Section;
import org.apache.qpid.proton.message.Message;
import org.junit.Test;
+import org.mockito.Mockito;
/**
* Tests for class AmqpJmsBytesMessageFacade
@@ -266,6 +273,7 @@ public class AmqpJmsBytesMessageFacadeTest extends AmqpJmsMessageTypesTestCase {
AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
assertEquals("Message reports unexpected length", length, amqpBytesMessageFacade.getBodyLength());
+ assertFalse(amqpBytesMessageFacade.isEmpty());
}
@Test
@@ -285,6 +293,7 @@ public class AmqpJmsBytesMessageFacadeTest extends AmqpJmsMessageTypesTestCase {
AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
assertEquals("Message reports unexpected length", 0, amqpBytesMessageFacade.getBodyLength());
+ assertTrue(amqpBytesMessageFacade.isEmpty());
}
@Test
@@ -390,6 +399,24 @@ public class AmqpJmsBytesMessageFacadeTest extends AmqpJmsMessageTypesTestCase {
}
}
+ @Test
+ public void testIsEmpty() throws Exception {
+ Message message = Message.Factory.create();
+ message.setBody(new Data(new Binary(new byte[1])));
+ AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
+
+ // Very small payload.
+ assertFalse(amqpBytesMessageFacade.isEmpty());
+
+ // Ensure no NPE
+ message.setBody(null);
+ assertTrue(amqpBytesMessageFacade.isEmpty());
+
+ byte[] bytes = "myBytes".getBytes();
+ message.setBody(new AmqpValue(new Binary(bytes)));
+ assertFalse(amqpBytesMessageFacade.isEmpty());
+ }
+
/**
* Test that setting bytes on a received message results in the expected content in the body section
* of the underlying message and returned by a new InputStream requested from the message.
@@ -426,6 +453,66 @@ public class AmqpJmsBytesMessageFacadeTest extends AmqpJmsMessageTypesTestCase {
assertEquals("Expected input stream to be at end but data was returned", END_OF_STREAM, bytesStream.read(new byte[1]));
}
+ @Test
+ public void testClearBodyHandlesErrorFromOutputStream() throws Exception {
+ byte[] bodyBytes = "myOrigBytes".getBytes();
+
+ Message message = Message.Factory.create();
+ message.setBody(new Data(new Binary(bodyBytes)));
+ AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
+
+ OutputStream outputStream = amqpBytesMessageFacade.getOutputStream();
+ outputStream = substituteMockOutputStream(amqpBytesMessageFacade);
+ Mockito.doThrow(new IOException()).when(outputStream).close();
+
+ amqpBytesMessageFacade.clearBody();
+ }
+
+ @Test
+ public void testClearBodyHandlesErrorFromInputStream() throws Exception {
+ byte[] bodyBytes = "myOrigBytes".getBytes();
+
+ Message message = Message.Factory.create();
+ message.setBody(new Data(new Binary(bodyBytes)));
+ AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
+
+ InputStream inputStream = amqpBytesMessageFacade.getInputStream();
+ inputStream = substituteMockInputStream(amqpBytesMessageFacade);
+ Mockito.doThrow(new IOException()).when(inputStream).close();
+
+ amqpBytesMessageFacade.clearBody();
+ }
+
+ @Test
+ public void testResetHandlesErrorFromOutputStream() throws Exception {
+ byte[] bodyBytes = "myOrigBytes".getBytes();
+
+ Message message = Message.Factory.create();
+ message.setBody(new Data(new Binary(bodyBytes)));
+ AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
+
+ OutputStream outputStream = amqpBytesMessageFacade.getOutputStream();
+ outputStream = substituteMockOutputStream(amqpBytesMessageFacade);
+ Mockito.doThrow(new IOException()).when(outputStream).close();
+
+ amqpBytesMessageFacade.reset();
+ }
+
+ @Test
+ public void testResetHandlesErrorFromInputStream() throws Exception {
+ byte[] bodyBytes = "myOrigBytes".getBytes();
+
+ Message message = Message.Factory.create();
+ message.setBody(new Data(new Binary(bodyBytes)));
+ AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
+
+ InputStream inputStream = amqpBytesMessageFacade.getInputStream();
+ inputStream = substituteMockInputStream(amqpBytesMessageFacade);
+ Mockito.doThrow(new IOException()).when(inputStream).close();
+
+ amqpBytesMessageFacade.reset();
+ }
+
//--------- utility methods ----------
private void assertDataBodyAsExpected(Message protonMessage, int length) {
@@ -437,4 +524,24 @@ public class AmqpJmsBytesMessageFacadeTest extends AmqpJmsMessageTypesTestCase {
assertEquals("Unexpected body length", length, value.getLength());
}
+ private InputStream substituteMockInputStream(AmqpJmsBytesMessageFacade bytesMessage) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+ InputStream mock = Mockito.mock(ByteBufInputStream.class);
+
+ Field ishField = bytesMessage.getClass().getDeclaredField("bytesIn");
+ ishField.setAccessible(true);
+ ishField.set(bytesMessage, mock);
+
+ return mock;
+ }
+
+ private OutputStream substituteMockOutputStream(AmqpJmsBytesMessageFacade bytesMessage) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+ ByteBufOutputStream mock = Mockito.mock(ByteBufOutputStream.class);
+ Mockito.when(mock.buffer()).thenReturn(Unpooled.EMPTY_BUFFER);
+
+ Field oshField = bytesMessage.getClass().getDeclaredField("bytesOut");
+ oshField.setAccessible(true);
+ oshField.set(bytesMessage, mock);
+
+ return mock;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org