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