/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.core.util;
import org.mule.tck.junit4.AbstractMuleTestCase;
import org.mule.tck.size.SmallTest;
import java.util.Arrays;
import java.util.regex.Pattern;
import org.junit.Test;
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;
@SmallTest
public class StringUtilsTestCase extends AbstractMuleTestCase {
@Test
public void testSplitAndTrim1() {
String[] result = StringUtils.splitAndTrim(null, ",,");
assertNull(result);
result = StringUtils.splitAndTrim("", ",");
assertNotNull(result);
assertTrue(Arrays.equals(ArrayUtils.EMPTY_STRING_ARRAY, result));
result = StringUtils.splitAndTrim(" ", ",");
assertNotNull(result);
assertTrue(Arrays.equals(ArrayUtils.EMPTY_STRING_ARRAY, result));
}
@Test
public void testSplitAndTrim2() {
String[] inputValues = new String[] {"foo", "bar", "baz", "kaboom"};
String inputString = new StringBuilder(40).append(inputValues[0]).append(" ,").append(", ").append(inputValues[1])
.append(" ,").append(inputValues[2]).append(" , ").append(inputValues[3]).append(" ").toString();
assertTrue(Arrays.equals(inputValues, StringUtils.splitAndTrim(inputString, ",")));
}
@Test
public void testSplitAndTrim3() {
String[] inputValues = new String[] {"foo", "bar", "baz", "kaboom"};
String inputString = "foo, bar,\nbaz, \nkaboom";
assertTrue(Arrays.equals(inputValues, StringUtils.splitAndTrim(inputString, ",")));
}
@Test
public void testHexStringToByteArray() {
assertNull(StringUtils.hexStringToByteArray(null));
try {
StringUtils.hexStringToByteArray("1");
fail();
} catch (IllegalArgumentException iex) {
// OK
}
assertTrue(Arrays.equals(new byte[] {}, StringUtils.hexStringToByteArray("")));
assertTrue(Arrays.equals(new byte[] {1}, StringUtils.hexStringToByteArray("01")));
assertTrue(Arrays.equals(new byte[] {1, 2}, StringUtils.hexStringToByteArray("0102")));
assertTrue(Arrays.equals(new byte[] {10, 14}, StringUtils.hexStringToByteArray("0A0E")));
assertTrue(Arrays.equals(new byte[] {10, 14}, StringUtils.hexStringToByteArray("0a0e")));
assertTrue(Arrays.equals(new byte[] {10, (byte) 0xff}, StringUtils.hexStringToByteArray("0AFF")));
assertTrue(Arrays.equals(new byte[] {10, (byte) 0xff}, StringUtils.hexStringToByteArray("0aff")));
}
@Test
public void testByteArrayToHexString() {
assertNull(StringUtils.toHexString(null));
assertEquals("", StringUtils.toHexString(new byte[] {}));
assertEquals("01", StringUtils.toHexString(new byte[] {1}));
assertEquals("0102", StringUtils.toHexString(new byte[] {1, 2}));
assertEquals("0a0e", StringUtils.toHexString(new byte[] {10, 14}));
assertEquals("0A0E", StringUtils.toHexString(new byte[] {10, 14}, true));
assertEquals("0aff", StringUtils.toHexString(new byte[] {10, (byte) 0xff}));
assertEquals("0AFF", StringUtils.toHexString(new byte[] {10, (byte) 0xff}, true));
}
@Test
public void testMatch() {
Pattern pattern = Pattern.compile("<<([\\w]*)>>");
String value = "<<target>>";
assertEquals(StringUtils.match(pattern, value, 1), "target");
try {
StringUtils.match(pattern, null, 1);
fail("was expecting IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
try {
StringUtils.match(null, value, 1);
fail("was expecting IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
assertNull(StringUtils.match(pattern, "hello world!", 1));
}
}