/*******************************************************************************
* 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.opentides.util;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
/**
* @author allanctan
*
*/
public class StringUtilTest {
@Test
public final void testIsEmpty() {
Assert.assertTrue("space only", StringUtil.isEmpty(" "));
Assert.assertTrue("empty", StringUtil.isEmpty(""));
Assert.assertTrue(null, StringUtil.isEmpty(null));
Assert.assertFalse("a", StringUtil.isEmpty("a"));
Assert.assertFalse("a with spaces", StringUtil.isEmpty(" a "));
}
@Test
public final void testReplace() {
Assert.assertEquals(null, StringUtil.replace(null, "*", "*"));
Assert.assertEquals("", StringUtil.replace("", "*", "*"));
Assert.assertEquals("any", StringUtil.replace("any", "*", null));
Assert.assertEquals("any", StringUtil.replace("any", null, "*"));
Assert.assertEquals("any", StringUtil.replace("any", "", "*"));
Assert.assertEquals("aba", StringUtil.replace("aba", "a", null));
Assert.assertEquals("b", StringUtil.replace("aba", "a", ""));
Assert.assertEquals("zbz", StringUtil.replace("aba", "a", "z"));
Assert.assertEquals("any", StringUtil.replace("any", "*", "*", 0));
Assert.assertEquals("abaa", StringUtil.replace("abaa", "a", null, -1));
Assert.assertEquals("b", StringUtil.replace("abaa", "a", "", -1));
Assert.assertEquals("abaa", StringUtil.replace("abaa", "a", "z", 0));
Assert.assertEquals("zbaa", StringUtil.replace("abaa", "a", "z", 1));
Assert.assertEquals("zbza", StringUtil.replace("abaa", "a", "z", 2));
Assert.assertEquals("zbzz", StringUtil.replace("abaa", "a", "z", -1));
}
@Test
public final void testEscapeSql() {
Assert.assertEquals(null, StringUtil.escapeSql(null, true));
Assert.assertEquals("", StringUtil.escapeSql("", true));
Assert.assertEquals("90\\%", StringUtil.escapeSql("90%", true));
Assert.assertEquals("Phil''s", StringUtil.escapeSql("Phil's", true));
Assert.assertEquals("Phil''s\\\\\\\\Jay", StringUtil.escapeSql("Phil's\\Jay", true));
Assert.assertEquals("Phil''s\\\\Jay", StringUtil.escapeSql("Phil's\\Jay", false));
Assert.assertEquals("Phil\\_Jay", StringUtil.escapeSql("Phil_Jay", true));
Assert.assertEquals("Phil_Jay", StringUtil.escapeSql("Phil_Jay", false));
}
@Test
public final void testToFixedString() {
Assert.assertEquals("123", StringUtil.toFixedString(123, 2));
Assert.assertEquals("123", StringUtil.toFixedString(123, 3));
Assert.assertEquals("000123", StringUtil.toFixedString(123, 6));
Assert.assertEquals("00004560", StringUtil.toFixedString(4560, 8));
}
@Test
public final void testRemoveHTMLTags() {
final String expected = " This is non html . ";
final String html = "<html> This is <b>non html</b>.</html>";
Assert.assertEquals(expected, StringUtil.removeHTMLTags(html));
}
@Test
public final void testConvertToInt() {
Assert.assertEquals(321, StringUtil.convertToInt("321", 0));
Assert.assertEquals(-1, StringUtil.convertToInt("abc", -1));
Assert.assertEquals(0, StringUtil.convertToInt("0", -1));
Assert.assertEquals(321, StringUtil.convertToInt("0321", -1));
}
@Test
public final void testConvertToLong() {
Assert.assertEquals(321l, StringUtil.convertToLong("321", 0));
Assert.assertEquals(-1l, StringUtil.convertToLong("abc", -1));
Assert.assertEquals(0l, StringUtil.convertToLong("0", -1));
Assert.assertEquals(321l, StringUtil.convertToLong("0321", -1));
}
@Test
public final void testConvertToDouble() {
Assert.assertEquals(3.21d, StringUtil.convertToDouble("3.21", 0),0);
Assert.assertEquals(-1.2d, StringUtil.convertToDouble("abc", -1.2),0);
Assert.assertEquals(0.0d, StringUtil.convertToDouble("0", -1),0);
Assert.assertEquals(32.1d, StringUtil.convertToDouble("032.1", -1),0);
}
@Test
public final void testGenerateRandomString() {
Assert.assertEquals("", StringUtil.generateRandomString(0));
Assert.assertEquals("", StringUtil.generateRandomString(-1));
Assert.assertEquals(7, StringUtil.generateRandomString(7).length());
Assert.assertFalse(StringUtil.isEmpty(StringUtil.generateRandomString(3)));
}
@Test
public final void testEncryptDecrypt() throws Exception {
String cipher = StringUtil.encrypt("allan7@test.com");
Assert.assertEquals("allan7@test.com",StringUtil.decrypt(cipher));
cipher = StringUtil.encrypt("wqwer12345admin@ideyatech.com");
Assert.assertEquals("wqwer12345admin@ideyatech.com",StringUtil.decrypt(cipher));
Assert.assertNull(StringUtil.decrypt(""));
Assert.assertNull(StringUtil.decrypt("abc"));
}
@Test
public final void testGetEncryptedPassword() throws NoSuchAlgorithmException {
Assert.assertEquals("+JWAOqbF4Q2BpAxzpG9AaZd/psc7eWiEVVbpjZDyj/Y=", StringUtil.getEncryptedPassword("ideyatech"));
Assert.assertEquals("GYxzUrSNqswso7ddHvxj+kG8wy8YAfQ4dFi7Y4GTSwQ=", StringUtil.getEncryptedPassword("sample_password"));
Assert.assertEquals("", StringUtil.getEncryptedPassword(null));
Assert.assertEquals("", StringUtil.getEncryptedPassword(""));
}
@Test
public final void testParseCsvLine() {
final String line1 = "1,\"Lion's Lair\",September,";
final String line2 = "2,Test Word,\"September 15, 1990\",End";
final String line3 = "";
final List<String> str1 = StringUtil.parseCsvLine(line1);
final List<String> str2 = StringUtil.parseCsvLine(line2);
final List<String> str3 = StringUtil.parseCsvLine(line3);
Assert.assertEquals("1", str1.get(0));
Assert.assertEquals("Lion's Lair", str1.get(1));
Assert.assertEquals("September", str1.get(2));
Assert.assertEquals("", str1.get(3));
Assert.assertEquals("2", str2.get(0));
Assert.assertEquals("Test Word", str2.get(1));
Assert.assertEquals("September 15, 1990", str2.get(2));
Assert.assertEquals("End", str2.get(3));
Assert.assertEquals("", str3.get(0));
}
@Test
public final void testExplode() {
Assert.assertNull(StringUtil.explode(',', null));
Assert.assertEquals("a,b,c", StringUtil.explode(',', new String[] {"a","b","c"}));
}
}