/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.kernel.util;
import org.junit.Assert;
import org.junit.Test;
/**
* @author Shuyang Zhou
* @author Cleydyr de Albuquerque
* @author Tibor Lipusz
*/
public class GetterUtilTest {
@Test
public void testGetBoolean() {
Assert.assertFalse(GetterUtil.getBoolean("false"));
Assert.assertTrue(GetterUtil.getBoolean("true"));
Assert.assertFalse(GetterUtil.getBoolean(Boolean.FALSE));
Assert.assertTrue(GetterUtil.getBoolean(Boolean.TRUE));
Assert.assertFalse(GetterUtil.getBoolean(null, false));
Assert.assertTrue(GetterUtil.getBoolean(null, true));
Assert.assertFalse(GetterUtil.getBoolean(StringPool.BLANK));
Assert.assertFalse(GetterUtil.getBoolean(StringPool.BLANK, false));
Assert.assertFalse(GetterUtil.getBoolean(StringPool.BLANK, true));
for (String s : GetterUtil.BOOLEANS) {
Assert.assertTrue(GetterUtil.getBoolean(s));
Assert.assertTrue(GetterUtil.getBoolean(s, true));
Assert.assertTrue(GetterUtil.getBoolean(s, false));
}
}
@Test
public void testGetDouble() {
// Wrong first char
Assert.assertEquals(
GetterUtil.DEFAULT_DOUBLE, GetterUtil.getDouble("e12.3"),
GetterUtil.DEFAULT_DOUBLE);
// Wrong middle char
Assert.assertEquals(
GetterUtil.DEFAULT_DOUBLE, GetterUtil.getDouble("12e.3"),
GetterUtil.DEFAULT_DOUBLE);
// Start with '+'
Assert.assertEquals(
12.3, GetterUtil.getDouble("+12.3"), GetterUtil.DEFAULT_DOUBLE);
// Start with '-'
Assert.assertEquals(
-12.3, GetterUtil.getDouble("-12.3"), GetterUtil.DEFAULT_DOUBLE);
// Maximum double
Assert.assertEquals(
Double.MAX_VALUE,
GetterUtil.getDouble(Double.toString(Double.MAX_VALUE)),
GetterUtil.DEFAULT_DOUBLE);
// Minimum double
Assert.assertEquals(
Double.MIN_VALUE,
GetterUtil.getDouble(Double.toString(Double.MIN_VALUE)),
GetterUtil.DEFAULT_DOUBLE);
// Locale aware
Assert.assertEquals(
4.7, GetterUtil.getDouble("4,7", LocaleUtil.PORTUGAL),
GetterUtil.DEFAULT_DOUBLE);
Assert.assertEquals(
4.7, GetterUtil.getDouble("4.7", LocaleUtil.US),
GetterUtil.DEFAULT_DOUBLE);
// Locale aware respecting the whole input
Assert.assertEquals(
GetterUtil.DEFAULT_DOUBLE,
GetterUtil.getDouble("4.7", LocaleUtil.HUNGARY),
GetterUtil.DEFAULT_DOUBLE);
}
@Test
public void testGetInteger() {
// Wrong first char
int result = GetterUtil.get("e123", -1);
Assert.assertEquals(-1, result);
// Wrong middle char
result = GetterUtil.get("12e3", -1);
Assert.assertEquals(-1, result);
// Start with '+'
result = GetterUtil.get("+123", -1);
Assert.assertEquals(123, result);
// Start with '-'
result = GetterUtil.get("-123", -1);
Assert.assertEquals(-123, result);
// Maximum int
result = GetterUtil.get(Integer.toString(Integer.MAX_VALUE), -1);
Assert.assertEquals(Integer.MAX_VALUE, result);
// Minimum int
result = GetterUtil.get(Integer.toString(Integer.MIN_VALUE), -1);
Assert.assertEquals(Integer.MIN_VALUE, result);
// Larger than maximum int
result = GetterUtil.get(Integer.toString(Integer.MAX_VALUE) + "0", -1);
Assert.assertEquals(-1, result);
// Smaller than minimum int
result = GetterUtil.get(Integer.toString(Integer.MIN_VALUE) + "0", -1);
Assert.assertEquals(-1, result);
}
@Test
public void testGetLong() {
// Wrong first char
long result = GetterUtil.get("e123", -1L);
Assert.assertEquals(-1L, result);
// Wrong middle char
result = GetterUtil.get("12e3", -1L);
Assert.assertEquals(-1L, result);
// Start with '+'
result = GetterUtil.get("+123", -1L);
Assert.assertEquals(123L, result);
// Start with '-'
result = GetterUtil.get("-123", -1L);
Assert.assertEquals(-123L, result);
// Maximum long
result = GetterUtil.get(Long.toString(Long.MAX_VALUE), -1L);
Assert.assertEquals(Long.MAX_VALUE, result);
// Minimum long
result = GetterUtil.get(Long.toString(Long.MIN_VALUE), -1L);
Assert.assertEquals(Long.MIN_VALUE, result);
// Larger than maximum long
result = GetterUtil.get(Long.toString(Long.MAX_VALUE) + "0", -1L);
Assert.assertEquals(-1L, result);
// Smaller than minimum long
result = GetterUtil.get(Long.toString(Long.MIN_VALUE) + "0", -1L);
Assert.assertEquals(-1L, result);
}
@Test
public void testGetShort() {
// Wrong first char
short result = GetterUtil.get("e123", (short)-1);
Assert.assertEquals((short)-1, result);
// Wrong middle char
result = GetterUtil.get("12e3", (short)-1);
Assert.assertEquals((short)-1, result);
// Start with '+'
result = GetterUtil.get("+123", (short)-1);
Assert.assertEquals((short)123, result);
// Start with '-'
result = GetterUtil.get("-123", (short)-1);
Assert.assertEquals((short)-123, result);
// Maximum short
result = GetterUtil.get(Short.toString(Short.MAX_VALUE), (short)-1);
Assert.assertEquals(Short.MAX_VALUE, result);
// Minimum short
result = GetterUtil.get(Short.toString(Short.MIN_VALUE), (short)-1);
Assert.assertEquals(Short.MIN_VALUE, result);
// Larger than maximum short
result = GetterUtil.get(
Short.toString(Short.MAX_VALUE) + "0", (short)-1);
Assert.assertEquals((short)-1, result);
// Smaller than minimum short
result = GetterUtil.get(
Short.toString(Short.MIN_VALUE) + "0", (short)-1);
Assert.assertEquals((short)-1, result);
}
@Test
public void testGetString() {
Assert.assertEquals(
StringPool.BLANK,
GetterUtil.getString(StringPool.BLANK, "default"));
Assert.assertEquals(
GetterUtil.DEFAULT_STRING, GetterUtil.getString(null));
Assert.assertEquals("default", GetterUtil.getString(null, "default"));
Assert.assertEquals(
"default", GetterUtil.getString(new Object(), "default"));
Assert.assertEquals("test", GetterUtil.getString("test"));
}
}