/**
* The MIT License
*
* Copyright (C) 2007 Asterios Raptis
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package de.alpharogroup.string;
import lombok.experimental.ExtensionMethod;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
import de.alpharogroup.BaseTestCase;
/**
* Test class for the class StringUtils.
*
* @version 1.0
* @author Asterios Raptis
*/
@ExtensionMethod(StringExtensions.class)
public class StringUtilsTest extends BaseTestCase
{
/**
* {@inheritDoc}
*/
@Override
protected void setUp() throws Exception
{
super.setUp();
}
/**
* {@inheritDoc}
*/
@Override
protected void tearDown() throws Exception
{
super.tearDown();
}
@Test(enabled = true)
public void testConvertCharsToUnicodeChars()
{
String expected = "\\u00f6";
String actual = "ö".toUnicodeChars(true);
AssertJUnit.assertEquals(expected, actual);
expected = "\\u00F6";
actual = "ö".toUnicodeChars(false);
AssertJUnit.assertEquals(expected, actual);
expected = "\\u00F6, \\u00DF \\u00E4";
actual = "ö, ß ä".toUnicodeChars(false);
AssertJUnit.assertEquals(expected, actual);
}
@Test(enabled = false)
public void testConvertToBytearray()
{
throw new RuntimeException("Test not implemented");
}
/**
* Test method for {@link de.alpharogroup.string.StringUtils#getAttributName(java.lang.String)}.
*/
@Test
public void testGetAttributName()
{
final String expected = "indio";
final String testString = "indio[5][1]";
final String compare = StringUtils.getAttributName(testString);
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for {@link de.alpharogroup.string.StringUtils#getIndex(java.lang.String)}.
*/
@Test
public void testGetIndex()
{
final String expected = "5";
final String testString = "indio[5][1]";
final String compare = StringUtils.getIndex(testString);
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for {@link de.alpharogroup.string.StringUtils#getItemNumber(java.lang.String)}.
*/
@Test
public void testGetItemNumber()
{
final String expected = "1";
final String testString = "indio[5][1]";
final String compare = StringUtils.getItemNumber(testString);
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for
* {@link de.alpharogroup.string.StringUtils#getStringAfterUnderscore(java.lang.String)}.
*/
@Test
public void testGetStringAfterUnderscore()
{
final String expected = "value";
final String element = "foobar_value";
final String compare = StringUtils.getStringAfterUnderscore(element);
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for
* {@link de.alpharogroup.string.StringUtils#getStringBeforeUnderscore(java.lang.String)}.
*/
@Test
public void testGetStringBeforeUnderscore()
{
final String expected = "foobar";
final String element = "foobar_value";
final String compare = StringUtils.getStringBeforeUnderscore(element);
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for {@link de.alpharogroup.string.StringUtils#isNullOrEmpty(java.lang.String)}.
*/
@Test
public void testIsNullOrEmpty()
{
final String isNull = null;
final String isEmpty = "";
final String isNotNullOrEmpty = "foobar";
result = isNull.isNullOrEmpty();
AssertJUnit.assertTrue("", result);
result = isEmpty.isNullOrEmpty();
AssertJUnit.assertTrue("", result);
result = isNotNullOrEmpty.isNullOrEmpty();
AssertJUnit.assertFalse("", result);
}
/**
* Test method for {@link de.alpharogroup.string.StringUtils#isNumber(java.lang.String)}.
*/
@Test
public void testIsNumber()
{
final String five = "5";
result = five.isNumber();
AssertJUnit.assertTrue("", result);
final String notANumber = "foo";
result = notANumber.isNumber();
AssertJUnit.assertFalse("", result);
}
/**
* Test method for
* {@link de.alpharogroup.string.StringUtils#putQuotesToString(java.lang.String)}.
*/
@Test
public void testPutQuotesToString()
{
final String expected = "\"Leonidas\"";
final String withoutQuotes = "Leonidas";
final String compare = withoutQuotes.addDoubleQuotationMarks();
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for {@link de.alpharogroup.string.StringUtils#readLine(java.lang.String)}.
*/
@Test
public void testReadLine()
{
final String original = "This is a test: Aha :\n and than foo bar:";
final String expected = "This is a test: Aha :";
final String compare = StringUtils.readLine(original);
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for {@link de.alpharogroup.string.StringExtensions#removeQuotationMarks(String)}.
*/
@Test
public void testRemoveQuotesFromString()
{
final String expected = "Leonidas";
final String withQuotes = "\"Leonidas\"";
final String compare = withQuotes.removeQuotationMarks();
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for
* {@link de.alpharogroup.string.StringUtils#replaceAll(java.lang.String, java.lang.String, java.lang.String)}
* .
*/
@Test
public void testReplaceAll()
{
final String original = "This is a test: Aha : and than foo bar:";
final String expected = "This is a test; Aha ; and than foo bar;";
final String compare = StringUtils.replaceAll(original, ":", ";");
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
/**
* Test method for
* {@link de.alpharogroup.string.StringUtils#replaceAll(java.lang.String, java.lang.String, java.lang.String)}
* .
*/
@Test
public void testReplaceAllStringArray()
{
final String original = "(0049) 173/1234-50";
final String expected = "0049173123450";
final String[] array = { "(", ")", "-", "/", " " };
final String compare = StringUtils.replaceAll(original, array, "");
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
@Test(enabled = true)
public void testReplaceEach()
{
final String search = "\"com.foo.bar\"";
final String replace = "\"bla.fasel\"";
final String input = "Hickory Dickory Dock \"com.foo.bar\" mouse ran up the clock The \"com.foo.bar\" struck one The \"com.foo.bar\" ran down";
final String expected = "Hickory Dickory Dock \"bla.fasel\" mouse ran up the clock The \"bla.fasel\" struck one The \"bla.fasel\" ran down";
final String result = StringUtils.replaceEach(input, search, replace);
AssertJUnit.assertTrue(expected.equals(result));
}
/**
* Test method for
* {@link de.alpharogroup.string.StringExtensions#replaceLast(java.lang.String, java.lang.String, java.lang.String)}
* .
*/
@Test
public void testReplaceLast()
{
final String original = "This is a test: Aha : and than foo bar:";
final String expected = "This is a test: Aha : and than foo bar;";
final String actual = original.replaceLast(":", ";");
AssertJUnit.assertEquals(expected, actual);
}
/**
* Test method for
* {@link de.alpharogroup.string.StringUtils#setFirstCharacterToUpperCase(java.lang.String)} .
*/
@Test
public void testSetFirstCharacterToUpperCase()
{
final String fieldName = "name";
final String expected = "Name";
final String compare = fieldName.firstCharacterToUpperCase();
result = expected.equals(compare);
AssertJUnit.assertTrue("", result);
}
@Test(enabled = true)
public void testToUnicode()
{
String expected = "\\u00f6";
String actual = "ö".toUnicode(true);
AssertJUnit.assertEquals(expected, actual);
expected = "\\u00F6";
actual = "ö".toUnicode(false);
AssertJUnit.assertEquals(expected, actual);
expected = "\\u00F6\\u002C\\u0020\\u00DF\\u0020\\u00E4";
actual = "ö, ß ä".toUnicode(false);
AssertJUnit.assertEquals(expected, actual);
}
}