/*
* 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.activemq.artemis.tests.unit.jms.client;
import javax.jms.MessageFormatException;
import org.apache.activemq.artemis.jms.client.ActiveMQMapMessage;
import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
import org.apache.activemq.artemis.utils.RandomUtil;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class ActiveMQMapMessageTest extends ActiveMQTestBase {
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String itemName;
@Override
@Before
public void setUp() throws Exception {
super.setUp();
itemName = RandomUtil.randomString();
}
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
@Test
public void testClearBody() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setBoolean(itemName, true);
Assert.assertTrue(message.itemExists(itemName));
message.clearBody();
Assert.assertFalse(message.itemExists(itemName));
}
@Test
public void testGetType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
Assert.assertEquals(ActiveMQMapMessage.TYPE, message.getType());
}
@Test
public void testCheckItemNameIsNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.setBoolean(null, true);
Assert.fail("item name can not be null");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testCheckItemNameIsEmpty() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.setBoolean("", true);
Assert.fail("item name can not be empty");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testGetBooleanFromBoolean() throws Exception {
boolean value = true;
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setBoolean(itemName, value);
Assert.assertEquals(value, message.getBoolean(itemName));
}
@Test
public void testGetBooleanFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
Assert.assertEquals(false, message.getBoolean(itemName));
}
@Test
public void testGetBooleanFromString() throws Exception {
boolean value = true;
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString(itemName, Boolean.toString(value));
Assert.assertEquals(value, message.getBoolean(itemName));
}
@Test
public void testGetBooleanFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, RandomUtil.randomFloat());
try {
message.getBoolean(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testGetByteFromByte() throws Exception {
byte value = RandomUtil.randomByte();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setByte(itemName, value);
Assert.assertEquals(value, message.getByte(itemName));
}
@Test
public void testGetByteFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.getByte(itemName);
Assert.fail("NumberFormatException");
} catch (NumberFormatException e) {
}
}
@Test
public void testGetByteFromString() throws Exception {
byte value = RandomUtil.randomByte();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString(itemName, Byte.toString(value));
Assert.assertEquals(value, message.getByte(itemName));
}
@Test
public void testGetByteFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, RandomUtil.randomFloat());
try {
message.getByte(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testGetShortFromByte() throws Exception {
byte value = RandomUtil.randomByte();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setByte(itemName, value);
Assert.assertEquals(value, message.getShort(itemName));
}
@Test
public void testGetShortFromShort() throws Exception {
short value = RandomUtil.randomShort();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setShort(itemName, value);
Assert.assertEquals(value, message.getShort(itemName));
}
@Test
public void testGetShortFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.getShort(itemName);
Assert.fail("NumberFormatException");
} catch (NumberFormatException e) {
}
}
@Test
public void testGetShortFromString() throws Exception {
short value = RandomUtil.randomShort();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString(itemName, Short.toString(value));
Assert.assertEquals(value, message.getShort(itemName));
}
@Test
public void testGetShortFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, RandomUtil.randomFloat());
try {
message.getShort(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testGetIntFromByte() throws Exception {
byte value = RandomUtil.randomByte();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setByte(itemName, value);
Assert.assertEquals(value, message.getInt(itemName));
}
@Test
public void testGetIntFromShort() throws Exception {
short value = RandomUtil.randomShort();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setShort(itemName, value);
Assert.assertEquals(value, message.getInt(itemName));
}
@Test
public void testGetIntFromInt() throws Exception {
int value = RandomUtil.randomInt();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setInt(itemName, value);
Assert.assertEquals(value, message.getInt(itemName));
}
@Test
public void testGetIntFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.getInt(itemName);
Assert.fail("NumberFormatException");
} catch (NumberFormatException e) {
}
}
@Test
public void testGetIntFromString() throws Exception {
int value = RandomUtil.randomInt();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString(itemName, Integer.toString(value));
Assert.assertEquals(value, message.getInt(itemName));
}
@Test
public void testGetIntFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, RandomUtil.randomFloat());
try {
message.getInt(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testGetCharFromChar() throws Exception {
char value = RandomUtil.randomChar();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setChar(itemName, value);
Assert.assertEquals(value, message.getChar(itemName));
}
@Test
public void testGetCharFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.getChar(itemName);
Assert.fail("NullPointerException");
} catch (NullPointerException e) {
}
}
@Test
public void testGetCharFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, RandomUtil.randomFloat());
try {
message.getChar(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testGetLongFromByte() throws Exception {
byte value = RandomUtil.randomByte();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setByte(itemName, value);
Assert.assertEquals(value, message.getLong(itemName));
}
@Test
public void testGetLongFromShort() throws Exception {
short value = RandomUtil.randomShort();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setShort(itemName, value);
Assert.assertEquals(value, message.getLong(itemName));
}
@Test
public void testGetLongFromInt() throws Exception {
int value = RandomUtil.randomInt();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setInt(itemName, value);
Assert.assertEquals(value, message.getLong(itemName));
}
@Test
public void testGetLongFromLong() throws Exception {
long value = RandomUtil.randomLong();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setLong(itemName, value);
Assert.assertEquals(value, message.getLong(itemName));
}
@Test
public void testGetLongFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.getLong(itemName);
Assert.fail("NumberFormatException");
} catch (NumberFormatException e) {
}
}
@Test
public void testGetLongFromString() throws Exception {
long value = RandomUtil.randomLong();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString(itemName, Long.toString(value));
Assert.assertEquals(value, message.getLong(itemName));
}
@Test
public void testGetLongFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, RandomUtil.randomFloat());
try {
message.getLong(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testGetFloatFromFloat() throws Exception {
float value = RandomUtil.randomFloat();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, value);
Assert.assertEquals(value, message.getFloat(itemName), 0.000001);
}
@Test
public void testGetFloatFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.getFloat(itemName);
Assert.fail("NullPointerException");
} catch (NullPointerException e) {
}
}
@Test
public void testGetFloatFromString() throws Exception {
float value = RandomUtil.randomFloat();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString(itemName, Float.toString(value));
Assert.assertEquals(value, message.getFloat(itemName), 0.000001);
}
@Test
public void testGetFloatFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setChar(itemName, RandomUtil.randomChar());
try {
message.getFloat(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testGetDoubleFromFloat() throws Exception {
float value = RandomUtil.randomFloat();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, value);
Assert.assertEquals(Float.valueOf(value).doubleValue(), message.getDouble(itemName), 0.000001);
}
@Test
public void testGetDoubleFromDouble() throws Exception {
double value = RandomUtil.randomDouble();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setDouble(itemName, value);
Assert.assertEquals(value, message.getDouble(itemName), 0.000001);
}
@Test
public void testGetDoubleFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
try {
message.getDouble(itemName);
Assert.fail("NullPointerException");
} catch (NullPointerException e) {
}
}
@Test
public void testGetDoubleFromString() throws Exception {
double value = RandomUtil.randomDouble();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString(itemName, Double.toString(value));
Assert.assertEquals(value, message.getDouble(itemName), 0.000001);
}
@Test
public void testGetDoubleFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setChar(itemName, RandomUtil.randomChar());
try {
message.getDouble(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testGetStringFromBoolean() throws Exception {
boolean value = RandomUtil.randomBoolean();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setBoolean(itemName, value);
Assert.assertEquals(Boolean.toString(value), message.getString(itemName));
}
@Test
public void testGetStringFromByte() throws Exception {
byte value = RandomUtil.randomByte();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setByte(itemName, value);
Assert.assertEquals(Byte.toString(value), message.getString(itemName));
}
@Test
public void testGetStringFromChar() throws Exception {
char value = RandomUtil.randomChar();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setChar(itemName, value);
Assert.assertEquals(Character.toString(value), message.getString(itemName));
}
@Test
public void testGetStringFromShort() throws Exception {
short value = RandomUtil.randomShort();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setShort(itemName, value);
Assert.assertEquals(Short.toString(value), message.getString(itemName));
}
@Test
public void testGetStringFromInt() throws Exception {
int value = RandomUtil.randomInt();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setInt(itemName, value);
Assert.assertEquals(Integer.toString(value), message.getString(itemName));
}
@Test
public void testGetStringFromLong() throws Exception {
long value = RandomUtil.randomLong();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setLong(itemName, value);
Assert.assertEquals(Long.toString(value), message.getString(itemName));
}
@Test
public void testGetStringFromFloat() throws Exception {
float value = RandomUtil.randomFloat();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setFloat(itemName, value);
Assert.assertEquals(Float.toString(value), message.getString(itemName));
}
@Test
public void testGetStringFromDouble() throws Exception {
double value = RandomUtil.randomByte();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setDouble(itemName, value);
Assert.assertEquals(Double.toString(value), message.getString(itemName));
}
@Test
public void testGetStringFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
Assert.assertNull(message.getString(itemName));
}
@Test
public void testGetStringFromString() throws Exception {
String value = RandomUtil.randomString();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setString(itemName, value);
Assert.assertEquals(value, message.getString(itemName));
}
@Test
public void testGetBytesFromBytes() throws Exception {
byte[] value = RandomUtil.randomBytes();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setBytes(itemName, value);
ActiveMQTestBase.assertEqualsByteArrays(value, message.getBytes(itemName));
}
@Test
public void testGetBytesFromNull() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
Assert.assertNull(message.getBytes(itemName));
}
@Test
public void testGetBytesFromInvalidType() throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setChar(itemName, RandomUtil.randomChar());
try {
message.getBytes(itemName);
Assert.fail("MessageFormatException");
} catch (MessageFormatException e) {
}
}
@Test
public void testSetObjectFromBoolean() throws Exception {
boolean value = RandomUtil.randomBoolean();
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setObject(itemName, value);
Assert.assertEquals(value, message.getObject(itemName));
}
@Test
public void testSetObjectFromByte() throws Exception {
doTestSetObject(RandomUtil.randomByte());
}
@Test
public void testSetObjectFromShort() throws Exception {
doTestSetObject(RandomUtil.randomShort());
}
@Test
public void testSetObjectFromChar() throws Exception {
doTestSetObject(RandomUtil.randomChar());
}
@Test
public void testSetObjectFromInt() throws Exception {
doTestSetObject(RandomUtil.randomInt());
}
@Test
public void testSetObjectFromLong() throws Exception {
doTestSetObject(RandomUtil.randomLong());
}
@Test
public void testSetObjectFromFloat() throws Exception {
doTestSetObject(RandomUtil.randomFloat());
}
@Test
public void testSetObjectFromDouble() throws Exception {
doTestSetObject(RandomUtil.randomDouble());
}
@Test
public void testSetObjectFromString() throws Exception {
doTestSetObject(RandomUtil.randomString());
}
@Test
public void testSetObjectFromBytes() throws Exception {
doTestSetObject(RandomUtil.randomBytes());
}
private void doTestSetObject(final Object value) throws Exception {
ActiveMQMapMessage message = new ActiveMQMapMessage();
message.setObject(itemName, value);
Assert.assertEquals(value, message.getObject(itemName));
}
}