You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2014/10/09 18:48:31 UTC
[1/2] git commit: add some more unit tests for
AmqpJmsBytesMessageFacade
Repository: qpid-jms
Updated Branches:
refs/heads/master d5ef8fb95 -> 5d3bfa274
add some more unit tests for AmqpJmsBytesMessageFacade
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/5d3bfa27
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/5d3bfa27
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/5d3bfa27
Branch: refs/heads/master
Commit: 5d3bfa2740e91d929bc7adb3a4255a6f9562c1f3
Parents: 9791226
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Oct 9 17:47:56 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Oct 9 17:48:13 2014 +0100
----------------------------------------------------------------------
.../message/AmqpJmsBytesMessageFacadeTest.java | 61 ++++++++++++++++++++
1 file changed, 61 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5d3bfa27/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 67f4711..5ae65af 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
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
@@ -36,6 +37,7 @@ import org.apache.qpid.proton.amqp.messaging.AmqpSequence;
import org.apache.qpid.proton.amqp.messaging.AmqpValue;
import org.apache.qpid.proton.amqp.messaging.Data;
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.Ignore;
import org.junit.Test;
@@ -155,6 +157,65 @@ 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 testClearBodySetsBodyLength0AndCausesEmptyInputStream() throws Exception {
+ AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createNewBytesMessageFacade();
+
+ byte[] bytes = "myBytes".getBytes();
+ amqpBytesMessageFacade.setBody(bytes);
+ amqpBytesMessageFacade.clearBody();
+
+ amqpBytesMessageFacade.clearBody();
+ assertTrue("Expected no message content from facade", amqpBytesMessageFacade.getBodyLength() == 0);
+ assertEquals("Expected no data from facade, but got some", END_OF_STREAM, amqpBytesMessageFacade.getInputStream().read(new byte[1]));
+
+ Section body = amqpBytesMessageFacade.getAmqpMessage().getBody();
+ assertTrue(body instanceof Data);
+ Binary value = ((Data) body).getValue();
+ assertNotNull(value);
+ assertEquals(0, value.getLength());
+ }
+
+ @Test
+ public void testClearBodyWithExistingInputStream() throws Exception {
+ AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createNewBytesMessageFacade();
+
+ byte[] bytes = "myBytes".getBytes();
+ amqpBytesMessageFacade.setBody(bytes);
+
+ @SuppressWarnings("unused")
+ InputStream unused = amqpBytesMessageFacade.getInputStream();
+
+ amqpBytesMessageFacade.clearBody();
+
+ assertEquals("Expected no data from facade, but got some", END_OF_STREAM, amqpBytesMessageFacade.getInputStream().read(new byte[1]));
+
+ Section body = amqpBytesMessageFacade.getAmqpMessage().getBody();
+ assertTrue(body instanceof Data);
+ Binary value = ((Data) body).getValue();
+ assertNotNull(value);
+ assertEquals(0, value.getLength());
+ }
+
+ @Test
+ public void testClearBodyWithExistingOutputStream() throws Exception {
+ AmqpJmsBytesMessageFacade amqpBytesMessageFacade = createNewBytesMessageFacade();
+
+ byte[] bytes = "myBytes".getBytes();
+ amqpBytesMessageFacade.setBody(bytes);
+
+ @SuppressWarnings("unused")
+ OutputStream unused = amqpBytesMessageFacade.getOutputStream();
+
+ amqpBytesMessageFacade.clearBody();
+
+ Section body = amqpBytesMessageFacade.getAmqpMessage().getBody();
+ assertTrue(body instanceof Data);
+ Binary value = ((Data) body).getValue();
+ assertNotNull(value);
+ assertEquals(0, value.getLength());
+ }
+
// ---------- test handling of received messages -------------------------//
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/2] git commit: remove test-only getBody method,
update testClearBody
Posted by ro...@apache.org.
remove test-only getBody method, update testClearBody
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/97912261
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/97912261
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/97912261
Branch: refs/heads/master
Commit: 97912261f6912d9b3a9abc177a5297d024d02702
Parents: d5ef8fb
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Oct 9 17:17:33 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Oct 9 17:48:13 2014 +0100
----------------------------------------------------------------------
.../message/facade/JmsBytesMessageFacade.java | 10 --------
.../amqp/message/AmqpJmsBytesMessageFacade.java | 16 ------------
.../qpid/jms/message/JmsBytesMessageTest.java | 27 +++++++++-----------
.../defaults/JmsDefaultBytesMessageFacade.java | 8 ------
4 files changed, 12 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/97912261/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsBytesMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsBytesMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsBytesMessageFacade.java
index fd3adde..b5ee153 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsBytesMessageFacade.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsBytesMessageFacade.java
@@ -88,16 +88,6 @@ public interface JmsBytesMessageFacade extends JmsMessageFacade {
int getBodyLength();
/**
- * Returns a copy of the body of the message in a new byte[] instance. If the
- * message body is empty an empty byte[] will be returned.
- *
- * @returns a new byte[] that contains a copy of the contents of this message.
- *
- * @throws JMSException if an error occurs accessing the message body.
- */
- byte[] getBody() throws JMSException;
-
- /**
* Sets the contents of the message from the given byte[] the given bytes are
* copied into the body of the message. Any previous message body content is
* discarded.
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/97912261/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 854ccec..4207439 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
@@ -129,22 +129,6 @@ public class AmqpJmsBytesMessageFacade extends AmqpJmsMessageFacade implements J
}
@Override
- public byte[] getBody() throws JMSException {
- if (bytesIn != null || bytesOut != null) {
- throw new JMSException("Body cannot be read until message is reset()");
- }
-
- byte[] result = new byte[0];
- Binary payload = getBinaryFromBody();
- if (payload != null && payload.getLength() > 0) {
- result = new byte[payload.getLength()];
- System.arraycopy(payload.getArray(), payload.getArrayOffset(), result, 0, payload.getLength());
- }
-
- return result;
- }
-
- @Override
public void setBody(byte[] content) throws JMSException {
if (bytesIn != null || bytesOut != null) {
throw new JMSException("Body cannot be read until message is reset()");
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/97912261/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 acb8ffa..00c49e3 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
@@ -139,10 +139,10 @@ public class JmsBytesMessageTest {
/**
* Test that calling {@link BytesMessage#clearBody()} of a received message
- * causes the body of the underlying {@link AmqpBytesMessage} to be emptied.
+ * causes the facade input stream to be empty and body length to return 0.
*/
@Test
- public void testClearBodyOnReceivedBytesMessageClearsUnderlyingMessageBody() throws Exception {
+ public void testClearBodyOnReceivedBytesMessageClearsFacadeInputStream() throws Exception {
byte[] content = "myBytesData".getBytes();
JmsDefaultBytesMessageFacade facade = new JmsDefaultBytesMessageFacade();
facade.setBody(content);
@@ -150,9 +150,11 @@ public class JmsBytesMessageTest {
JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
bytesMessage.onDispatch();
- assertTrue("Expected message content but none was present", facade.getBody().length > 0);
+ assertTrue("Expected message content but none was present", facade.getBodyLength() > 0);
+ assertEquals("Expected data from facade", 1, facade.getInputStream().read(new byte[1]));
bytesMessage.clearBody();
- assertTrue("Expected no message content but was present", facade.getBody().length == 0);
+ assertTrue("Expected no message content from facade", facade.getBodyLength() == 0);
+ assertEquals("Expected no data from facade, but got some", END_OF_STREAM, facade.getInputStream().read(new byte[1]));
}
/**
@@ -425,18 +427,13 @@ public class JmsBytesMessageTest {
}
@Test
- public void testClearBody() throws JMSException {
+ public void testClearBodyOnNewMessage() throws JMSException {
JmsBytesMessage bytesMessage = factory.createBytesMessage();
- try {
- bytesMessage.writeInt(1);
- bytesMessage.clearBody();
- assertFalse(bytesMessage.isReadOnlyBody());
- bytesMessage.writeInt(1);
- bytesMessage.readInt();
- } catch (MessageNotReadableException mnwe) {
- } catch (MessageNotWriteableException mnwe) {
- assertTrue(false);
- }
+ bytesMessage.writeInt(1);
+ bytesMessage.clearBody();
+ assertFalse(bytesMessage.isReadOnlyBody());
+ bytesMessage.reset();
+ assertEquals(0, bytesMessage.getBodyLength());
}
@Test
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/97912261/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
index 04b949c..7783c3f 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
@@ -137,14 +137,6 @@ public final class JmsDefaultBytesMessageFacade extends JmsDefaultMessageFacade
}
@Override
- public byte[] getBody() throws JMSException {
- if (bytesIn != null || bytesOut != null) {
- throw new JMSException("Body is in use, call reset before attempting to access it.");
- }
- return content.copy().array();
- }
-
- @Override
public void setBody(byte[] content) throws JMSException {
if (bytesIn != null || bytesOut != null) {
throw new JMSException("Body is in use, call reset before attempting to access it.");
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org