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/10 20:28:57 UTC

[1/2] git commit: Test the equals and hashCode bits.

Repository: qpid-jms
Updated Branches:
  refs/heads/master 40eb821c6 -> 079e6c04d


Test the equals and hashCode bits.

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/bfd9953b
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/bfd9953b
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/bfd9953b

Branch: refs/heads/master
Commit: bfd9953b058d0a7795b87cf095a1f6bd14016861
Parents: 40eb821
Author: Timothy Bish <ta...@gmail.com>
Authored: Fri Oct 10 13:38:41 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Fri Oct 10 13:38:41 2014 -0400

----------------------------------------------------------------------
 .../qpid/jms/message/JmsBytesMessageTest.java   | 29 ++++++++++++++++++++
 1 file changed, 29 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/bfd9953b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
index 4420832..60172bd 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
@@ -654,4 +654,33 @@ public class JmsBytesMessageTest {
         } catch (MessageNotReadableException e) {
         }
     }
+
+    @Test
+    public void testHashCode() throws Exception {
+        String messageId = "ID:SOME-ID:0:1:1";
+        JmsBytesMessage message = factory.createBytesMessage();
+        message.setJMSMessageID(messageId);
+        assertEquals(message.getJMSMessageID().hashCode(), messageId.hashCode());
+        assertEquals(message.hashCode(), messageId.hashCode());
+    }
+
+    @Test
+    public void testEqualsObject() throws Exception {
+        String messageId = "ID:SOME-ID:0:1:1";
+        JmsBytesMessage message1 = factory.createBytesMessage();
+        JmsBytesMessage message2 = factory.createBytesMessage();
+        message1.setJMSMessageID(messageId);
+        assertTrue(!message1.equals(message2));
+        assertTrue(!message2.equals(message1));
+        message2.setJMSMessageID(messageId);
+        assertTrue(message1.equals(message2));
+        assertTrue(message2.equals(message1));
+        message2.setJMSMessageID(messageId + "More");
+        assertTrue(!message1.equals(message2));
+        assertTrue(!message2.equals(message1));
+
+        assertTrue(message1.equals(message1));
+        assertFalse(message1.equals(null));
+        assertFalse(message1.equals(""));
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[2/2] git commit: Capture and throw correct errors from BytesMessage read and write methods, adds tests to cover these.

Posted by ta...@apache.org.
Capture and throw correct errors from BytesMessage read and write
methods, adds tests to cover these. 

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/079e6c04
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/079e6c04
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/079e6c04

Branch: refs/heads/master
Commit: 079e6c04d41b58f0f411ea9f148b40e697db0a93
Parents: bfd9953
Author: Timothy Bish <ta...@gmail.com>
Authored: Fri Oct 10 14:28:48 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Fri Oct 10 14:28:48 2014 -0400

----------------------------------------------------------------------
 .../qpid/jms/message/JmsBytesMessage.java       |  44 +--
 .../qpid/jms/message/JmsBytesMessageTest.java   | 279 +++++++++++++++++++
 2 files changed, 301 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/079e6c04/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsBytesMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsBytesMessage.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsBytesMessage.java
index f5a6cf7..057c91a 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsBytesMessage.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsBytesMessage.java
@@ -81,9 +81,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readBoolean();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -105,9 +105,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readUnsignedByte();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -117,9 +117,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readShort();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -129,9 +129,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readUnsignedShort();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -141,9 +141,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readChar();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -153,9 +153,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readInt();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -165,9 +165,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readLong();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -177,9 +177,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readFloat();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -189,9 +189,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readDouble();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -201,9 +201,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
         initializeReading();
         try {
             return this.dataIn.readUTF();
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }
@@ -235,9 +235,9 @@ public class JmsBytesMessage extends JmsMessage implements BytesMessage {
                 n = -1;
             }
             return n;
-        } catch (ArrayIndexOutOfBoundsException e) {
+        } catch (EOFException e) {
             throw JmsExceptionSupport.createMessageEOFException(e);
-        } catch (Throwable e) {
+        } catch (IOException e) {
             throw JmsExceptionSupport.createMessageFormatException(e);
         }
     }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/079e6c04/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
index 60172bd..d1923d6 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
@@ -21,17 +21,24 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.io.EOFException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.Arrays;
 
 import javax.jms.BytesMessage;
 import javax.jms.JMSException;
+import javax.jms.MessageEOFException;
 import javax.jms.MessageFormatException;
 import javax.jms.MessageNotReadableException;
 import javax.jms.MessageNotWriteableException;
 
+import org.apache.qpid.jms.message.facade.JmsBytesMessageFacade;
 import org.apache.qpid.jms.message.facade.defaults.JmsDefaultBytesMessageFacade;
 import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 /**
  * Test for JMS Spec compliance for the JmsBytesMessage class using the default message facade.
@@ -655,6 +662,278 @@ public class JmsBytesMessageTest {
         }
     }
 
+    //---------- Test that errors are trapped correctly ----------------------//
+
+    @Test
+    public void testReadMethodsCaptureEOFExceptionThrowsMessageEOFEx() throws Exception {
+        JmsBytesMessageFacade facade = Mockito.mock(JmsBytesMessageFacade.class);
+        InputStream bytesIn = Mockito.mock(InputStream.class);
+        Mockito.when(facade.getInputStream()).thenReturn(bytesIn);
+
+        Mockito.when(bytesIn.read()).thenThrow(new EOFException());
+        Mockito.when(bytesIn.read(Mockito.any(byte[].class))).thenThrow(new EOFException());
+        Mockito.when(bytesIn.read(Mockito.any(byte[].class), Mockito.anyInt(), Mockito.anyInt())).thenThrow(new EOFException());
+
+        JmsBytesMessage message = new JmsBytesMessage(facade);
+        message.reset();
+
+        try {
+            message.readBoolean();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readByte();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readBytes(new byte[10]);
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readBytes(new byte[10], 10);
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readChar();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readDouble();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readFloat();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readInt();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readLong();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readShort();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readUnsignedByte();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readUnsignedShort();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+
+        try {
+            message.readUTF();
+        } catch (MessageEOFException ex) {
+            assertTrue(ex.getCause() instanceof EOFException);
+        }
+    }
+
+    @Test
+    public void testReadMethodsCaptureIOExceptionThrowsJMSEx() throws Exception {
+        JmsBytesMessageFacade facade = Mockito.mock(JmsBytesMessageFacade.class);
+        InputStream bytesIn = Mockito.mock(InputStream.class);
+        Mockito.when(facade.getInputStream()).thenReturn(bytesIn);
+
+        Mockito.when(bytesIn.read()).thenThrow(new IOException());
+        Mockito.when(bytesIn.read(Mockito.any(byte[].class))).thenThrow(new IOException());
+        Mockito.when(bytesIn.read(Mockito.any(byte[].class), Mockito.anyInt(), Mockito.anyInt())).thenThrow(new IOException());
+
+        JmsBytesMessage message = new JmsBytesMessage(facade);
+        message.reset();
+
+        try {
+            message.readBoolean();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readByte();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readBytes(new byte[10]);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readBytes(new byte[10], 10);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readChar();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readDouble();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readFloat();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readInt();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readLong();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readShort();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readUnsignedByte();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readUnsignedShort();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.readUTF();
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+    }
+
+    @Test
+    public void testWriteMethodsCaptureIOExceptionThrowsJMSEx() throws Exception {
+        JmsBytesMessageFacade facade = Mockito.mock(JmsBytesMessageFacade.class);
+        OutputStream bytesOut = Mockito.mock(OutputStream.class);
+        Mockito.when(facade.getOutputStream()).thenReturn(bytesOut);
+
+        Mockito.doThrow(new IOException()).when(bytesOut).write(Mockito.anyByte());
+        Mockito.doThrow(new IOException()).when(bytesOut).write(Mockito.any(byte[].class));
+        Mockito.doThrow(new IOException()).when(bytesOut).write(Mockito.any(byte[].class), Mockito.anyInt(), Mockito.anyInt());
+        JmsBytesMessage message = new JmsBytesMessage(facade);
+
+        try {
+            message.writeBoolean(false);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeByte((byte) 128);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeBytes(new byte[10]);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeBytes(new byte[10], 0, 10);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeChar('a');
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeDouble(100.0);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeFloat(10.2f);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeInt(125);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeLong(65536L);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeObject("");
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeShort((short) 32768);
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+
+        try {
+            message.writeUTF("");
+        } catch (JMSException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+        }
+    }
+
+    //---------- Test for misc message methods -------------------------------//
+
     @Test
     public void testHashCode() throws Exception {
         String messageId = "ID:SOME-ID:0:1:1";


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org