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