Skip to content

Commit 5562c5a

Browse files
committed
1 parent ec0677b commit 5562c5a

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

src/main/java/com/amazon/sqs/javamessaging/SQSMessagingClientConstants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ public class SQSMessagingClientConstants {
3636
*/
3737
public static final String STRING = "String";
3838

39+
public static final String NUMBER = "Number";
40+
3941
public static final String INT = "Number.int";
4042

4143
public static final String BOOLEAN = "Number.Boolean";

src/main/java/com/amazon/sqs/javamessaging/message/SQSMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1191,7 +1191,7 @@ private static String getType(Object value) throws JMSException {
11911191
}
11921192

11931193
private static Object getObjectValue(String value, String type) throws JMSException {
1194-
if (STRING.equals(type)) {
1194+
if (STRING.equals(type) || NUMBER.equals(type)) {
11951195
return value;
11961196
} else if (INT.equals(type)) {
11971197
return Integer.valueOf(value);

src/test/java/com/amazon/sqs/javamessaging/message/SQSMessageTest.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class SQSMessageTest {
5353
final String myShort = "myShort";
5454
final String myByte = "myByte";
5555
final String myString = "myString";
56+
final String myNumber = "myNumber";
5657

5758
@Before
5859
public void setup() {
@@ -76,6 +77,7 @@ public void testProperty() throws JMSException {
7677
message.setShortProperty("myShort", (short) 123);
7778
message.setByteProperty("myByteProperty", (byte) 'a');
7879
message.setStringProperty("myString", "StringValue");
80+
message.setStringProperty("myNumber", "500");
7981

8082
Assert.assertTrue(message.propertyExists("myTrueBoolean"));
8183
Assert.assertEquals(message.getObjectProperty("myTrueBoolean"), true);
@@ -113,6 +115,15 @@ public void testProperty() throws JMSException {
113115
Assert.assertEquals(message.getObjectProperty("myString"), "StringValue");
114116
Assert.assertEquals(message.getStringProperty("myString"), "StringValue");
115117

118+
Assert.assertTrue(message.propertyExists("myNumber"));
119+
Assert.assertEquals(message.getObjectProperty("myNumber"), "500");
120+
Assert.assertEquals(message.getStringProperty("myNumber"), "500");
121+
Assert.assertEquals(message.getLongProperty("myNumber"), 500L);
122+
Assert.assertEquals(message.getFloatProperty("myNumber"), 500f);
123+
Assert.assertEquals(message.getShortProperty("myNumber"), (short) 500);
124+
Assert.assertEquals(message.getDoubleProperty("myNumber"), 500d);
125+
Assert.assertEquals(message.getIntProperty("myNumber"), 500);
126+
116127
// Validate property names
117128
Set<String> propertyNamesSet = new HashSet<String>(Arrays.asList(
118129
"myTrueBoolean",
@@ -123,6 +134,7 @@ public void testProperty() throws JMSException {
123134
"myLong",
124135
"myShort",
125136
"myByteProperty",
137+
"myNumber",
126138
"myString"));
127139

128140
Enumeration<String > propertyNames = message.getPropertyNames();
@@ -142,6 +154,7 @@ public void testProperty() throws JMSException {
142154
Assert.assertFalse(message.propertyExists("myShort"));
143155
Assert.assertFalse(message.propertyExists("myByteProperty"));
144156
Assert.assertFalse(message.propertyExists("myString"));
157+
Assert.assertFalse(message.propertyExists("myNumber"));
145158

146159
propertyNames = message.getPropertyNames();
147160
assertFalse(propertyNames.hasMoreElements());
@@ -313,6 +326,10 @@ public void testSQSMessageAttributeToProperty() throws JMSException {
313326
.withDataType(SQSMessagingClientConstants.STRING)
314327
.withStringValue("StringValue"));
315328

329+
messageAttributes.put(myNumber, new MessageAttributeValue()
330+
.withDataType(SQSMessagingClientConstants.NUMBER)
331+
.withStringValue("500"));
332+
316333
com.amazonaws.services.sqs.model.Message sqsMessage = new com.amazonaws.services.sqs.model.Message()
317334
.withMessageAttributes(messageAttributes)
318335
.withAttributes(systemAttributes)
@@ -357,6 +374,15 @@ public void testSQSMessageAttributeToProperty() throws JMSException {
357374
Assert.assertEquals(message.getObjectProperty(myString), "StringValue");
358375
Assert.assertEquals(message.getStringProperty(myString), "StringValue");
359376

377+
Assert.assertTrue(message.propertyExists(myNumber));
378+
Assert.assertEquals(message.getObjectProperty(myNumber), "500");
379+
Assert.assertEquals(message.getStringProperty(myNumber), "500");
380+
Assert.assertEquals(message.getIntProperty(myNumber), 500);
381+
Assert.assertEquals(message.getShortProperty(myNumber), (short) 500);
382+
Assert.assertEquals(message.getLongProperty(myNumber), 500l);
383+
Assert.assertEquals(message.getFloatProperty(myNumber), 500f);
384+
Assert.assertEquals(message.getDoubleProperty(myNumber), 500d);
385+
360386

361387
// Validate property names
362388
Set<String> propertyNamesSet = new HashSet<String>(Arrays.asList(
@@ -369,6 +395,7 @@ public void testSQSMessageAttributeToProperty() throws JMSException {
369395
myShort,
370396
myByte,
371397
myString,
398+
myNumber,
372399
JMSX_DELIVERY_COUNT));
373400

374401
Enumeration<String > propertyNames = message.getPropertyNames();
@@ -388,8 +415,9 @@ public void testSQSMessageAttributeToProperty() throws JMSException {
388415
Assert.assertFalse(message.propertyExists("myShort"));
389416
Assert.assertFalse(message.propertyExists("myByteProperty"));
390417
Assert.assertFalse(message.propertyExists("myString"));
418+
Assert.assertFalse(message.propertyExists("myNumber"));
391419

392420
propertyNames = message.getPropertyNames();
393421
assertFalse(propertyNames.hasMoreElements());
394422
}
395-
}
423+
}

0 commit comments

Comments
 (0)