Repository: qpid-jms
Updated Branches:
  refs/heads/master e85c74b46 -> a6d04de00


remove testonly setBody method, update tests accordingly


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

Branch: refs/heads/master
Commit: 1794cbbf2d767b8ca30ca6f0374b0032f92f7cf5
Parents: e85c74b
Author: Robert Gemmell <rob...@apache.org>
Authored: Fri Oct 10 10:43:02 2014 +0100
Committer: Robert Gemmell <rob...@apache.org>
Committed: Fri Oct 10 10:43:02 2014 +0100

----------------------------------------------------------------------
 .../message/facade/JmsBytesMessageFacade.java   |  13 --
 .../amqp/message/AmqpJmsBytesMessageFacade.java |  15 ---
 .../qpid/jms/message/JmsBytesMessageTest.java   |  21 +--
 .../defaults/JmsDefaultBytesMessageFacade.java  |  16 +--
 .../message/AmqpJmsBytesMessageFacadeTest.java  | 127 +++++++------------
 5 files changed, 60 insertions(+), 132 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1794cbbf/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 b5ee153..ecb59c1 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
@@ -86,17 +86,4 @@ public interface JmsBytesMessageFacade extends 
JmsMessageFacade {
      * @return the number of bytes contained in the body of the message.
      */
     int getBodyLength();
-
-    /**
-     * 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.
-     *
-     * @param content
-     *        the new bytes to store in this message.
-     *
-     * @throws JMSException if an error occurs accessing the message body.
-     */
-    void setBody(byte[] content) throws JMSException;
-
 }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1794cbbf/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 4207439..9438413 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,21 +129,6 @@ public class AmqpJmsBytesMessageFacade extends 
AmqpJmsMessageFacade implements J
     }
 
     @Override
-    public void setBody(byte[] content) throws JMSException {
-        if (bytesIn != null || bytesOut != null) {
-            throw new JMSException("Body cannot be read until message is 
reset()");
-        }
-
-        Data body = EMPTY_DATA;
-        if (content != null) {
-            byte[] copy = Arrays.copyOf(content, content.length);
-            body = new Data(new Binary(copy, 0, copy.length));
-        }
-
-        getAmqpMessage().setBody(body);
-    }
-
-    @Override
     public InputStream getInputStream() throws JMSException {
         if (bytesOut != null) {
             throw new IllegalStateException("Body is being written to, cannot 
perform a read.");

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1794cbbf/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 e672ee3..4420832 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
@@ -82,8 +82,7 @@ public class JmsBytesMessageTest {
     @Test
     public void testReadBytesUsingReceivedMessageWithBodyReturnsBytes() throws 
Exception {
         byte[] content = "myBytesData".getBytes();
-        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade();
-        facade.setBody(content);
+        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade(content);
 
         JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
         bytesMessage.onDispatch();
@@ -107,8 +106,7 @@ public class JmsBytesMessageTest {
     @Test(expected = MessageNotWriteableException.class)
     public void 
testReceivedBytesMessageThrowsMessageNotWriteableExceptionOnWriteBytes() throws 
Exception {
         byte[] content = "myBytesData".getBytes();
-        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade();
-        facade.setBody(content);
+        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade(content);
 
         JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
         bytesMessage.onDispatch();
@@ -133,8 +131,7 @@ public class JmsBytesMessageTest {
     @Test
     public void testClearBodyOnReceivedBytesMessageMakesMessageWritable() 
throws Exception {
         byte[] content = "myBytesData".getBytes();
-        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade();
-        facade.setBody(content);
+        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade(content);
 
         JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
         bytesMessage.onDispatch();
@@ -150,8 +147,7 @@ public class JmsBytesMessageTest {
     @Test
     public void testClearBodyOnReceivedBytesMessageClearsFacadeInputStream() 
throws Exception {
         byte[] content = "myBytesData".getBytes();
-        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade();
-        facade.setBody(content);
+        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade(content);
 
         JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
         bytesMessage.onDispatch();
@@ -170,8 +166,7 @@ public class JmsBytesMessageTest {
     @Test
     public void 
testGetBodyLengthOnClearedReceivedMessageThrowsMessageNotReadableException() 
throws Exception {
         byte[] content = "myBytesData".getBytes();
-        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade();
-        facade.setBody(content);
+        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade(content);
 
         JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
         bytesMessage.onDispatch();
@@ -193,8 +188,7 @@ public class JmsBytesMessageTest {
     @Test
     public void testResetOnReceivedBytesMessageResetsMarker() throws Exception 
{
         byte[] content = "myBytesData".getBytes();
-        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade();
-        facade.setBody(content);
+        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade(content);
 
         JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
         bytesMessage.onDispatch();
@@ -220,8 +214,7 @@ public class JmsBytesMessageTest {
     @Test
     public void 
testResetOnNewlyPopulatedBytesMessageResetsMarkerAndMakesReadable() throws 
Exception {
         byte[] content = "myBytesData".getBytes();
-        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade();
-        facade.setBody(content);
+        JmsDefaultBytesMessageFacade facade = new 
JmsDefaultBytesMessageFacade(content);
 
         JmsBytesMessage bytesMessage = new JmsBytesMessage(facade);
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1794cbbf/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 7783c3f..f647b43 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
@@ -39,6 +39,13 @@ public final class JmsDefaultBytesMessageFacade extends 
JmsDefaultMessageFacade
     private ByteBufOutputStream bytesOut;
     private ByteBufInputStream bytesIn;
 
+    public JmsDefaultBytesMessageFacade() {
+    }
+
+    public JmsDefaultBytesMessageFacade(byte[] content) {
+        this.content = Unpooled.copiedBuffer(content);
+    }
+
     @Override
     public JmsMsgType getMsgType() {
         return JmsMsgType.BYTES;
@@ -135,11 +142,4 @@ public final class JmsDefaultBytesMessageFacade extends 
JmsDefaultMessageFacade
     public int getBodyLength() {
         return content.readableBytes();
     }
-
-    @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.");
-        }
-        this.content = Unpooled.copiedBuffer(content);
-    }}
+}

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/1794cbbf/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 5ae65af..6bcf777 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
@@ -39,7 +39,6 @@ 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;
 
 /**
@@ -107,81 +106,59 @@ public class AmqpJmsBytesMessageFacadeTest extends 
AmqpJmsMessageTypesTestCase {
         AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createNewBytesMessageFacade();
 
         byte[] bytes = "myBytes".getBytes();
-        amqpBytesMessageFacade.setBody(bytes);
+        OutputStream os = amqpBytesMessageFacade.getOutputStream();
+        os.write(bytes);
+
+        amqpBytesMessageFacade.reset();
 
         assertEquals("Message reports unexpected length", bytes.length, 
amqpBytesMessageFacade.getBodyLength());
     }
 
     /**
-     * Test that setting bytes on a new messages creates the data section of 
the underlying message,
+     * Test that copying a new messages which has been written to creates the 
data section of the underlying message,
      * which as tested by {@link 
#testNewMessageHasContentTypeButNoBodySection} does not exist initially.
      */
     @Test
-    public void testSetBodyOnNewMessageCreatesDataSection() throws Exception {
-        byte[] testBytes = "myTestBytes".getBytes();
+    public void testCopyOnPopulatedNewMessageCreatesDataSection() throws 
Exception {
         AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createNewBytesMessageFacade();
         Message protonMessage = amqpBytesMessageFacade.getAmqpMessage();
 
         assertNotNull("underlying proton message was null", protonMessage);
         assertNull("Expected no body section to be present", 
protonMessage.getBody());
 
-        amqpBytesMessageFacade.setBody(testBytes);
-
-        assertNotNull("Expected body section to be present", 
protonMessage.getBody());
-        assertEquals("Unexpected body section type", Data.class, 
protonMessage.getBody().getClass());
-    }
-
-    /**
-     * Test that setting bytes on a new message results in the expected 
content in the body section
-     * of the underlying message and returned by a new InputStream requested 
from the message.
-     */
-    @Test
-    public void testSetGetBytesOnNewMessage() throws Exception {
-        byte[] bytes = "myTestBytes".getBytes();
-        AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createNewBytesMessageFacade();
-        Message protonMessage = amqpBytesMessageFacade.getAmqpMessage();
-
-        amqpBytesMessageFacade.setBody(bytes);
-
-        // retrieve the bytes from the underlying message, check they match
-        Data body = (Data) protonMessage.getBody();
-        assertTrue("Underlying message data section did not contain the 
expected bytes", Arrays.equals(bytes, body.getValue().getArray()));
+        byte[] bytes = "myBytes".getBytes();
+        OutputStream os = amqpBytesMessageFacade.getOutputStream();
+        os.write(bytes);
 
-        // retrieve the bytes via an InputStream, check they match expected
-        byte[] receivedBytes = new byte[bytes.length];
-        InputStream bytesStream = amqpBytesMessageFacade.getInputStream();
-        bytesStream.read(receivedBytes);
-        assertTrue("Retrieved bytes from input steam did not match expected 
bytes", Arrays.equals(bytes, receivedBytes));
+        AmqpJmsBytesMessageFacade copy = amqpBytesMessageFacade.copy();
 
-        // verify no more bytes remain, i.e EOS
-        assertEquals("Expected input stream to be at end but data was 
returned", END_OF_STREAM, bytesStream.read(new byte[1]));
+        assertDataBodyAsExpected(protonMessage, bytes.length);
+        assertDataBodyAsExpected(copy.getAmqpMessage(), bytes.length);
     }
 
     @Test
     public void testClearBodySetsBodyLength0AndCausesEmptyInputStream() throws 
Exception {
-        AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createNewBytesMessageFacade();
-
         byte[] bytes = "myBytes".getBytes();
-        amqpBytesMessageFacade.setBody(bytes);
-        amqpBytesMessageFacade.clearBody();
+
+        Message message = Message.Factory.create();
+        message.setBody(new Data(new Binary(bytes)));
+        AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
 
         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());
+        assertDataBodyAsExpected(amqpBytesMessageFacade.getAmqpMessage(), 0);
     }
 
     @Test
     public void testClearBodyWithExistingInputStream() throws Exception {
-        AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createNewBytesMessageFacade();
-
         byte[] bytes = "myBytes".getBytes();
-        amqpBytesMessageFacade.setBody(bytes);
+
+        Message message = Message.Factory.create();
+        message.setBody(new Data(new Binary(bytes)));
+        AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
 
         @SuppressWarnings("unused")
         InputStream unused = amqpBytesMessageFacade.getInputStream();
@@ -190,30 +167,23 @@ public class AmqpJmsBytesMessageFacadeTest extends 
AmqpJmsMessageTypesTestCase {
 
         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());
+        assertDataBodyAsExpected(amqpBytesMessageFacade.getAmqpMessage(), 0);
     }
 
     @Test
     public void testClearBodyWithExistingOutputStream() throws Exception {
-        AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createNewBytesMessageFacade();
-
         byte[] bytes = "myBytes".getBytes();
-        amqpBytesMessageFacade.setBody(bytes);
+
+        Message message = Message.Factory.create();
+        message.setBody(new Data(new Binary(bytes)));
+        AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
 
         @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());
+        assertDataBodyAsExpected(amqpBytesMessageFacade.getAmqpMessage(), 0);
     }
 
     // ---------- test handling of received messages 
-------------------------//
@@ -367,13 +337,17 @@ public class AmqpJmsBytesMessageFacadeTest extends 
AmqpJmsMessageTypesTestCase {
         AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
         Message protonMessage = amqpBytesMessageFacade.getAmqpMessage();
 
-        amqpBytesMessageFacade.setBody(replacement);
+        OutputStream os = amqpBytesMessageFacade.getOutputStream();
+        os.write(replacement);
 
-        // retrieve the new bytes from the underlying message, check they match
+        amqpBytesMessageFacade.reset();
+
+        // Retrieve the new Binary from the underlying message, check they 
match
+        // (the backing arrays may be different length so not checking 
arrayEquals)
         Data body = (Data) protonMessage.getBody();
-        assertTrue("Underlying message data section did not contain the 
expected bytes", Arrays.equals(replacement, body.getValue().getArray()));
+        assertEquals("Underlying message data section did not contain the 
expected bytes", new Binary(replacement), body.getValue());
 
-        assertEquals("expected length to match replacement bytes", 
replacement.length, amqpBytesMessageFacade.getBodyLength());
+        assertEquals("expected body length to match replacement bytes", 
replacement.length, amqpBytesMessageFacade.getBodyLength());
 
         // retrieve the new bytes via an InputStream, check they match expected
         byte[] receivedBytes = new byte[replacement.length];
@@ -385,26 +359,15 @@ 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 that setting bytes on a received message results which had no 
content type
-     * results in the content type being set.
-     */
-    @Test
-    @Ignore
-    // TODO: failing because we dont set the content type except at creation. 
Decide if we actually care.
-    public void 
testSetBytesOnReceivedMessageSetsContentTypeIfBodyTypeChanged() throws 
Exception {
-        byte[] orig = "myOrigBytes".getBytes();
-        byte[] replacement = "myReplacementBytes".getBytes();
-
-        Message message = Message.Factory.create();
-        message.setBody(new AmqpValue(new Binary(orig)));
-        AmqpJmsBytesMessageFacade amqpBytesMessageFacade = 
createReceivedBytesMessageFacade(createMockAmqpConsumer(), message);
-        Message protonMessage = amqpBytesMessageFacade.getAmqpMessage();
-
-        amqpBytesMessageFacade.setBody(replacement);
+    //--------- utility methods ----------
 
-        String contentType = protonMessage.getContentType();
-        assertNotNull("content type should be set", contentType);
-        assertEquals("application/octet-stream", contentType);
+    private void assertDataBodyAsExpected(Message protonMessage, int length) {
+        Section body = protonMessage.getBody();
+        assertNotNull("Expected body section to be present", body);
+        assertEquals("Unexpected body section type", Data.class, 
protonMessage.getBody().getClass());
+        Binary value = ((Data) body).getValue();
+        assertNotNull(value);
+        assertEquals("Unexpected body length", length, value.getLength());
     }
+
 }


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

Reply via email to