// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.dataquality.converters;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
/**
* Test for class {@link StringTrimmer}.
*
* @author msjian
* @version 2017.02.08
*/
public class StringTrimmerTest {
private static final String expected = "abc"; //$NON-NLS-1$
@Test
public void testRemoveTrailingAndLeading() {
/** Don't remove these commented lines after discussion with Jian */
// assertEquals(expected, " abc ".trim()); //$NON-NLS-1$
// assertEquals(" ", '\u0020' + "");
// assertEquals('\t', '\u0009');
// assertEquals("\t", '\u0009' + "");
// assertEquals("a" + "\t", "a" + '\u0009');
// assertNotEquals("\t", '\u0009');
// assertNotEquals("\t", "\\u0009");
StringTrimmer stringTrimmer = new StringTrimmer();
// test for default character (whitespace)
assertEquals(expected, stringTrimmer.removeTrailingAndLeading(expected));
assertEquals(expected, stringTrimmer.removeTrailingAndLeading(" abc")); //$NON-NLS-1$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading(" abc ")); //$NON-NLS-1$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading(" abc ")); //$NON-NLS-1$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading(" abc ")); //$NON-NLS-1$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading(" abc ")); //$NON-NLS-1$
assertEquals("ab c", stringTrimmer.removeTrailingAndLeading(" ab c")); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals("a b c", stringTrimmer.removeTrailingAndLeading(" a b c ")); //$NON-NLS-1$ //$NON-NLS-2$
// test for other characters
assertEquals(expected, stringTrimmer.removeTrailingAndLeading("\t" + expected, "\t")); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading(expected + "\t", "\t")); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading('\u0009' + expected, "\t")); //$NON-NLS-1$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading('\u0009' + expected, '\u0009' + "")); //$NON-NLS-1$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading('\u0009' + expected + '\u0009' + '\u0009', "\t")); //$NON-NLS-1$
assertEquals("abc ", stringTrimmer.removeTrailingAndLeading("\t" + "abc ", "\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
assertEquals("a" + "\t" + "bc", stringTrimmer.removeTrailingAndLeading("\t" + "a" + "\t" + "bc", "\t")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
assertEquals("\t" + expected, stringTrimmer.removeTrailingAndLeading("\t" + "abc ")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(expected, ("\t" + "abc ").trim()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3
assertEquals(expected, stringTrimmer.removeTrailingAndLeading("\n" + expected, "\n")); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals("abc ", stringTrimmer.removeTrailingAndLeading("\n" + "abc ", "\n")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading(expected, "\r")); //$NON-NLS-1$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading("\r" + expected, "\r")); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(expected, stringTrimmer.removeTrailingAndLeading("\r" + expected + "\r", "\r")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("abc ", stringTrimmer.removeTrailingAndLeading("\r" + "abc ", "\r")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
assertEquals("abc ", stringTrimmer.removeTrailingAndLeading("\r" + "abc " + "\r", "\r")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
assertEquals("bc", stringTrimmer.removeTrailingAndLeading(" abc", " a")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(" a", stringTrimmer.removeTrailingAndLeading(" abc", "bc")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals("ab", stringTrimmer.removeTrailingAndLeading("cabc", "c")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
@Test
public void testRemoveTrailingAndLeadingWhitespaces() {
StringTrimmer stringTrimmer = new StringTrimmer();
String inputData = " " + expected; //$NON-NLS-1$
for (String removechar : stringTrimmer.WHITESPACE_CHARS) {
inputData = inputData + removechar;
}
assertEquals(expected, stringTrimmer.removeTrailingAndLeadingWhitespaces(inputData));
}
}