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 2013/11/26 16:50:53 UTC
svn commit: r1545692 - in /qpid/jms/trunk/src:
main/java/org/apache/qpid/jms/engine/ test/java/org/apache/qpid/jms/engine/
test/java/org/apache/qpid/jms/impl/
Author: robbie
Date: Tue Nov 26 15:50:52 2013
New Revision: 1545692
URL: http://svn.apache.org/r1545692
Log:
QPIDJMS-9: flesh out support for incoming TextMessages using amqp data section, add unit testing of text messages and tweak the *Test class heirarchy and setUp overridding to ease examination of console output
Added:
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpTextMessageTest.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/TextMessageImplTest.java
Modified:
qpid/jms/trunk/src/main/java/org/apache/qpid/jms/engine/AmqpTextMessage.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageFactoryTest.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageTest.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageFactoryImplTest.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/ReceiverImplTest.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SenderImplTest.java
qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SimplePredicateTest.java
Modified: qpid/jms/trunk/src/main/java/org/apache/qpid/jms/engine/AmqpTextMessage.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/main/java/org/apache/qpid/jms/engine/AmqpTextMessage.java?rev=1545692&r1=1545691&r2=1545692&view=diff
==============================================================================
--- qpid/jms/trunk/src/main/java/org/apache/qpid/jms/engine/AmqpTextMessage.java (original)
+++ qpid/jms/trunk/src/main/java/org/apache/qpid/jms/engine/AmqpTextMessage.java Tue Nov 26 15:50:52 2013
@@ -18,9 +18,13 @@
*/
package org.apache.qpid.jms.engine;
+import java.nio.ByteBuffer;
+
+import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.messaging.AmqpValue;
import org.apache.qpid.proton.amqp.messaging.Data;
import org.apache.qpid.proton.amqp.messaging.Section;
+import org.apache.qpid.proton.codec.impl.DataImpl;
import org.apache.qpid.proton.engine.Delivery;
import org.apache.qpid.proton.message.Message;
@@ -53,9 +57,15 @@ public class AmqpTextMessage extends Amq
{
AmqpValue body = new AmqpValue(text);
getMessage().setBody(body);
+
+ //TODO: clear the content-type in the case where we had received
+ //a message containing Data+ContentType
}
- public String getText()
+ /**
+ * @throws IllegalStateException if the underlying message content can't be retrieved as a String or null
+ */
+ public String getText() throws IllegalStateException
{
Section body = getMessage().getBody();
@@ -65,8 +75,29 @@ public class AmqpTextMessage extends Amq
}
else if(body instanceof Data)
{
- //TODO
- return null;
+ Data data = (Data) body;
+ if(data.getValue() == null || data.getValue().getLength() == 0)
+ {
+ return null;
+ }
+ else
+ {
+ Binary b = data.getValue();
+
+ ByteBuffer buf = ByteBuffer.wrap(b.getArray(), b.getArrayOffset(), b.getLength());
+ org.apache.qpid.proton.codec.Data codecData = new DataImpl();
+ codecData.decode(buf);
+
+ if(codecData.isNull())
+ {
+ return null;
+ }
+ else
+ {
+ return codecData.getString();
+ }
+ }
+
}
else if(body instanceof AmqpValue)
{
@@ -78,12 +109,12 @@ public class AmqpTextMessage extends Amq
}
else
{
- throw new RuntimeException("Unexpected body content type: " + value.getClass().getSimpleName());
+ throw new IllegalStateException("Unexpected amqp-value body content type: " + value.getClass().getSimpleName());
}
}
else
{
- throw new RuntimeException("Unexpected message body type: " + body.getClass().getSimpleName());
+ throw new IllegalStateException("Unexpected message body type: " + body.getClass().getSimpleName());
}
}
}
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageFactoryTest.java?rev=1545692&r1=1545691&r2=1545692&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageFactoryTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageFactoryTest.java Tue Nov 26 15:50:52 2013
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.qpid.jms.QpidJmsTestCase;
import org.apache.qpid.jms.engine.AmqpMessage;
import org.apache.qpid.jms.engine.AmqpTextMessage;
import org.apache.qpid.proton.Proton;
@@ -39,15 +40,17 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
-public class AmqpMessageFactoryTest
+public class AmqpMessageFactoryTest extends QpidJmsTestCase
{
private AmqpConnection _mockAmqpConnection;
private Delivery _mockDelivery;
private AmqpMessageFactory _amqpMessageFactory;
@Before
+ @Override
public void setUp() throws Exception
{
+ super.setUp();
_mockAmqpConnection = Mockito.mock(AmqpConnection.class);
_mockDelivery = Mockito.mock(Delivery.class);
_amqpMessageFactory = new AmqpMessageFactory();
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageTest.java?rev=1545692&r1=1545691&r2=1545692&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpMessageTest.java Tue Nov 26 15:50:52 2013
@@ -26,6 +26,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import org.apache.qpid.jms.QpidJmsTestCase;
import org.apache.qpid.proton.Proton;
import org.apache.qpid.proton.amqp.messaging.ApplicationProperties;
import org.apache.qpid.proton.engine.Delivery;
@@ -34,7 +35,7 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
-public class AmqpMessageTest
+public class AmqpMessageTest extends QpidJmsTestCase
{
private static final String TEST_PROP_A = "TEST_PROP_A";
private static final String TEST_PROP_B = "TEST_PROP_B";
@@ -45,8 +46,10 @@ public class AmqpMessageTest
private Delivery _mockDelivery;
@Before
+ @Override
public void setUp() throws Exception
{
+ super.setUp();
_mockAmqpConnection = Mockito.mock(AmqpConnection.class);
_mockDelivery = Mockito.mock(Delivery.class);
}
Added: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpTextMessageTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpTextMessageTest.java?rev=1545692&view=auto
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpTextMessageTest.java (added)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/engine/AmqpTextMessageTest.java Tue Nov 26 15:50:52 2013
@@ -0,0 +1,260 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.jms.engine;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+
+import org.apache.qpid.jms.QpidJmsTestCase;
+import org.apache.qpid.jms.test.testpeer.describedtypes.sections.DataDescribedType;
+import org.apache.qpid.proton.Proton;
+import org.apache.qpid.proton.amqp.Binary;
+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.codec.impl.DataImpl;
+import org.apache.qpid.proton.engine.Delivery;
+import org.apache.qpid.proton.message.Message;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+public class AmqpTextMessageTest extends QpidJmsTestCase
+{
+ private AmqpConnection _mockAmqpConnection;
+ private Delivery _mockDelivery;
+
+ @Before
+ @Override
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ _mockAmqpConnection = Mockito.mock(AmqpConnection.class);
+ _mockDelivery = Mockito.mock(Delivery.class);
+ }
+
+ @Test
+ public void testGetTextWithNewMessageToSendReturnsNull() throws Exception
+ {
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage();
+
+ assertNull("expected null string", amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testNewMessageToSendContainsAmqpValueBodyWithNull() throws Exception
+ {
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage();
+ assertTrue(amqpTextMessage.getMessage().getBody() instanceof AmqpValue);
+ assertNull(((AmqpValue)amqpTextMessage.getMessage().getBody()).getValue());
+ }
+
+ @Test
+ public void testSetGetTextWithNewMessageToSend() throws Exception
+ {
+ String text = "myTestText";
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage();
+
+ amqpTextMessage.setText(text);
+ assertNotNull(amqpTextMessage.getMessage().getBody());
+ assertTrue(amqpTextMessage.getMessage().getBody() instanceof AmqpValue);
+ assertEquals(text, ((AmqpValue)amqpTextMessage.getMessage().getBody()).getValue());
+
+ assertEquals(text, amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextUsingReceivedMessageWithNoBodySectionReturnsNull() throws Exception
+ {
+ Message message = Proton.message();
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ assertNull("expected null string", amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextUsingReceivedMessageWithAmqpValueSectionContainingString() throws Exception
+ {
+ String text = "myString";
+
+ Message message = Proton.message();
+ message.setBody(new AmqpValue(text));
+
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ assertEquals(text, amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextUsingReceivedMessageWithAmqpValueSectionContainingNull() throws Exception
+ {
+ Message message = Proton.message();
+ message.setBody(new AmqpValue(null));
+
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ assertNull("expected null string", amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextUsingReceivedMessageWithDataSectionContainingNullReturnsNull() throws Exception
+ {
+ Message message = Proton.message();
+ message.setBody(new Data(null));
+
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ assertNull("expected null string", amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextUsingReceivedMessageWithDataSectionContainingBinaryEncodedNullReturnsNull() throws Exception
+ {
+ org.apache.qpid.proton.codec.Data nullData = new DataImpl();
+ nullData.putNull();
+ Binary stringBinary = nullData.encode();
+
+ org.apache.qpid.proton.codec.Data payloadData = new DataImpl();
+ payloadData.putDescribedType(new DataDescribedType(stringBinary));
+ Binary b = payloadData.encode();
+
+ System.out.println("Using encoded AMQP message payload: " + b);
+
+ Message message = Proton.message();
+ int decoded = message.decode(b.getArray(), b.getArrayOffset(), b.getLength());
+ assertEquals(decoded, b.getLength());
+
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ assertNull("expected null string", amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextUsingReceivedMessageWithDataSectionContainingZeroLengthBinaryReturnsNull() throws Exception
+ {
+ org.apache.qpid.proton.codec.Data payloadData = new DataImpl();
+ payloadData.putDescribedType(new DataDescribedType(new Binary(new byte[0])));
+ Binary b = payloadData.encode();
+
+ System.out.println("Using encoded AMQP message payload: " + b);
+
+ Message message = Proton.message();
+ int decoded = message.decode(b.getArray(), b.getArrayOffset(), b.getLength());
+ assertEquals(decoded, b.getLength());
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ assertNull("expected null string", amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextUsingReceivedMessageWithDataSectionContainingEncodedString() throws Exception
+ {
+ String encodedString = "myEncodedString";
+
+ org.apache.qpid.proton.codec.Data stringData = new DataImpl();
+ stringData.putString(encodedString);
+ Binary stringBinary = stringData.encode();
+
+ org.apache.qpid.proton.codec.Data payloadData = new DataImpl();
+ payloadData.putDescribedType(new DataDescribedType(stringBinary));
+ Binary b = payloadData.encode();
+
+ System.out.println("Using encoded AMQP message payload: " + b);
+
+ Message message = Proton.message();
+ int decoded = message.decode(b.getArray(), b.getArrayOffset(), b.getLength());
+ assertEquals(decoded, b.getLength());
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ assertEquals(encodedString, amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextWithNonAmqpValueOrDataSectionThrowsISE() throws Exception
+ {
+ Message message = Proton.message();
+ message.setBody(new AmqpSequence(new ArrayList<Object>()));
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ try
+ {
+ amqpTextMessage.getText();
+ fail("expected exception not thrown");
+ }
+ catch(IllegalStateException ise)
+ {
+ //expected
+ }
+ }
+
+ @Test
+ public void testGetTextWithAmqpValueContainingNonNullNonStringValueThrowsISE() throws Exception
+ {
+ Message message = Proton.message();
+ message.setBody(new AmqpValue(true));
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ try
+ {
+ amqpTextMessage.getText();
+ fail("expected exception not thrown");
+ }
+ catch(IllegalStateException ise)
+ {
+ //expected
+ }
+ }
+
+ @Test
+ public void testGetTextWithDataSectionContainingNonNullNonStringContentThrowsISE() throws Exception
+ {
+ org.apache.qpid.proton.codec.Data booleanData = new DataImpl();
+ booleanData.putBoolean(true);
+ Binary booleanBinary = booleanData.encode();
+
+ org.apache.qpid.proton.codec.Data payloadData = new DataImpl();
+ payloadData.putDescribedType(new DataDescribedType(booleanBinary));
+ Binary b = payloadData.encode();
+
+ System.out.println("Using encoded AMQP message payload: " + b);
+
+ Message message = Proton.message();
+ int decoded = message.decode(b.getArray(), b.getArrayOffset(), b.getLength());
+ assertEquals(decoded, b.getLength());
+
+ AmqpTextMessage amqpTextMessage = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+
+ try
+ {
+ amqpTextMessage.getText();
+ fail("expected exception not thrown");
+ }
+ catch(IllegalStateException ise)
+ {
+ //expected
+ }
+ }
+}
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageFactoryImplTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageFactoryImplTest.java?rev=1545692&r1=1545691&r2=1545692&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageFactoryImplTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageFactoryImplTest.java Tue Nov 26 15:50:52 2013
@@ -25,6 +25,7 @@ import static org.junit.Assert.*;
import javax.jms.JMSException;
import javax.jms.Message;
+import org.apache.qpid.jms.QpidJmsTestCase;
import org.apache.qpid.jms.engine.AmqpBytesMessage;
import org.apache.qpid.jms.engine.AmqpGenericMessage;
import org.apache.qpid.jms.engine.AmqpListMessage;
@@ -36,7 +37,7 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
-public class MessageFactoryImplTest
+public class MessageFactoryImplTest extends QpidJmsTestCase
{
private ConnectionImpl _mockConnection;
@@ -44,8 +45,10 @@ public class MessageFactoryImplTest
private MessageFactoryImpl _messageFactoryImpl;
@Before
+ @Override
public void setUp() throws Exception
{
+ super.setUp();
_mockConnection = Mockito.mock(ConnectionImpl.class);
_mockSession = Mockito.mock(SessionImpl.class);
_messageFactoryImpl = new MessageFactoryImpl();
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java?rev=1545692&r1=1545691&r2=1545692&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/MessageImplTest.java Tue Nov 26 15:50:52 2013
@@ -27,20 +27,23 @@ import java.util.Enumeration;
import javax.jms.JMSException;
import javax.jms.MessageFormatException;
+import org.apache.qpid.jms.QpidJmsTestCase;
import org.apache.qpid.jms.engine.TestAmqpMessage;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
-public class MessageImplTest
+public class MessageImplTest extends QpidJmsTestCase
{
private ConnectionImpl _mockConnectionImpl;
private SessionImpl _mockSessionImpl;
private TestMessageImpl _testMessage;
@Before
+ @Override
public void setUp() throws Exception
{
+ super.setUp();
_mockConnectionImpl = Mockito.mock(ConnectionImpl.class);
_mockSessionImpl = Mockito.mock(SessionImpl.class);
_testMessage = new TestMessageImpl(new TestAmqpMessage(), _mockSessionImpl, _mockConnectionImpl);
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/ReceiverImplTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/ReceiverImplTest.java?rev=1545692&r1=1545691&r2=1545692&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/ReceiverImplTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/ReceiverImplTest.java Tue Nov 26 15:50:52 2013
@@ -44,8 +44,10 @@ public class ReceiverImplTest extends Qp
private AmqpMessage _mockAmqpMessage;
@Before
+ @Override
public void setUp() throws Exception
{
+ super.setUp();
_mockConnection = Mockito.mock(ConnectionImpl.class);
_mockAmqpReceiver = Mockito.mock(AmqpReceiver.class);
_mockSession = Mockito.mock(SessionImpl.class);
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SenderImplTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SenderImplTest.java?rev=1545692&r1=1545691&r2=1545692&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SenderImplTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SenderImplTest.java Tue Nov 26 15:50:52 2013
@@ -41,8 +41,10 @@ public class SenderImplTest extends Qpid
private SessionImpl _mockSession;
@Before
+ @Override
public void setUp() throws Exception
{
+ super.setUp();
_mockConnection = Mockito.mock(ConnectionImpl.class);
_mockAmqpSender = Mockito.mock(AmqpSender.class);
_mockSession = Mockito.mock(SessionImpl.class);
Modified: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SimplePredicateTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SimplePredicateTest.java?rev=1545692&r1=1545691&r2=1545692&view=diff
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SimplePredicateTest.java (original)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/SimplePredicateTest.java Tue Nov 26 15:50:52 2013
@@ -22,9 +22,10 @@ import static org.hamcrest.Matchers.cont
import static org.hamcrest.Matchers.not;
import static org.junit.Assert.assertThat;
+import org.apache.qpid.jms.QpidJmsTestCase;
import org.junit.Test;
-public class SimplePredicateTest
+public class SimplePredicateTest extends QpidJmsTestCase
{
private static final String DESCRIPTION = "description1";
private static final String PREDICATED_OBJECT = "predicatedObject1";
Added: qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/TextMessageImplTest.java
URL: http://svn.apache.org/viewvc/qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/TextMessageImplTest.java?rev=1545692&view=auto
==============================================================================
--- qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/TextMessageImplTest.java (added)
+++ qpid/jms/trunk/src/test/java/org/apache/qpid/jms/impl/TextMessageImplTest.java Tue Nov 26 15:50:52 2013
@@ -0,0 +1,96 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.jms.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.apache.qpid.jms.QpidJmsTestCase;
+import org.apache.qpid.jms.engine.AmqpConnection;
+import org.apache.qpid.jms.engine.AmqpTextMessage;
+import org.apache.qpid.proton.Proton;
+import org.apache.qpid.proton.amqp.messaging.AmqpValue;
+import org.apache.qpid.proton.engine.Delivery;
+import org.apache.qpid.proton.message.Message;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+public class TextMessageImplTest extends QpidJmsTestCase
+{
+ private Delivery _mockDelivery;
+ private ConnectionImpl _mockConnectionImpl;
+ private SessionImpl _mockSessionImpl;
+ private AmqpConnection _mockAmqpConnection;
+
+ @Before
+ @Override
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ _mockAmqpConnection = Mockito.mock(AmqpConnection.class);
+ _mockConnectionImpl = Mockito.mock(ConnectionImpl.class);
+ _mockSessionImpl = Mockito.mock(SessionImpl.class);
+ }
+
+ @Test
+ public void testSetGetTextWithNewMessageToSend() throws Exception
+ {
+ String text = "myTestText";
+ TextMessageImpl textMessageImpl = new TextMessageImpl(_mockSessionImpl,_mockConnectionImpl);
+
+ textMessageImpl.setText(text);
+ assertEquals(text, textMessageImpl.getText());
+
+ AmqpTextMessage amqpTextMessage = textMessageImpl.getUnderlyingAmqpMessage(false);
+ assertEquals(text, amqpTextMessage.getText());
+ }
+
+ @Test
+ public void testGetTextDefaultWithNewMessageToSend() throws Exception
+ {
+ TextMessageImpl textMessageImpl = new TextMessageImpl(_mockSessionImpl,_mockConnectionImpl);
+
+ assertNull("expected null string", textMessageImpl.getText());
+ }
+
+ @Test
+ public void testGetTextWithReceivedMessageNoBodySectionReturnsNull() throws Exception
+ {
+ Message message = Proton.message();
+ AmqpTextMessage testAmqpMessage1 = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+ TextMessageImpl textMessageImpl = new TextMessageImpl(testAmqpMessage1, _mockSessionImpl,_mockConnectionImpl);
+
+ assertNull("expected null string", textMessageImpl.getText());
+ }
+
+ @Test
+ public void testGetTextWithReceivedMessageAmqpValueSectionReturnsString() throws Exception
+ {
+ Message message = Proton.message();
+ String value = "myAmqpValueString";
+ message.setBody(new AmqpValue(value));
+ AmqpTextMessage testAmqpMessage1 = new AmqpTextMessage(_mockDelivery, message, _mockAmqpConnection);
+ TextMessageImpl textMessageImpl = new TextMessageImpl(testAmqpMessage1, _mockSessionImpl,_mockConnectionImpl);
+
+ assertEquals(value, textMessageImpl.getText());
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org