package org.test4j.hamcrest.matcher.string;
import org.test4j.testng.Test4J;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@Test(groups = { "test4j", "assertion" })
public class StringModeTest extends Test4J {
@Test(dataProvider = "data_IgnoreCase")
public void testProcess_IgnoreCase(String input, String output) {
StringMode mode = StringMode.IgnoreCase;
String result = mode.process(input);
want.string(result).isEqualTo(output);
}
@DataProvider
public Object[][] data_IgnoreCase() {
return new Object[][] { { null, null }, // <br>
{ "ab\tc", "ab\tc" }, // <br>
{ "Ab C", "ab c" } };
}
@Test(dataProvider = "data_IgnoreSpace")
public void testProcess_IgnoreSpace(String input, String output) {
StringMode mode = StringMode.IgnoreSpace;
String result = mode.process(input);
want.string(result).isEqualTo(output);
}
@DataProvider
public Object[][] data_IgnoreSpace() {
return new Object[][] { { null, null }, // <br>
{ " ab\tc\n", "abc" }, // <br>
{ "Abc", "Abc" } };
}
@Test(dataProvider = "data_IgnoreQuato")
public void testProcess_IgnoreQuato(String input, String output) {
StringMode mode = StringMode.IgnoreQuato;
String result = mode.process(input);
want.string(result).isEqualTo(output);
}
@DataProvider
public Object[][] data_IgnoreQuato() {
return new Object[][] { { null, null }, // <br>
{ "\"abc\"", "abc" }, // <br>
{ "'abc'", "abc" } };
}
@Test(dataProvider = "data_SameAsSpace")
public void testProcess_SameAsSpace(String input, String output) {
StringMode mode = StringMode.SameAsSpace;
String result = mode.process(input);
want.string(result).isEqualTo(output);
}
@DataProvider
public Object[][] data_SameAsSpace() {
return new Object[][] { { null, null }, // <br>
{ "\n\ra b\tc ", " a b c " }, // <br>
{ "abc", "abc" } };
}
@Test(dataProvider = "data_SameAsQuato")
public void testProcess_SameAsQuato(String input, String output) {
StringMode mode = StringMode.SameAsQuato;
String result = mode.process(input);
want.string(result).isEqualTo(output);
}
@DataProvider
public Object[][] data_SameAsQuato() {
return new Object[][] { { null, null }, // <br>
{ "\"abc\"", "'abc'" }, // <br>
{ "'abc'", "'abc'" } };
}
@Test
public void testGetStringByMode() {
String input = "abc \t 'abc'\n\r\"ABC\" ";
String actual = StringMode.getStringByMode(input, StringMode.IgnoreQuato, StringMode.SameAsSpace,
StringMode.IgnoreCase);
want.string(actual).isEqualTo("abc abc abc ");
}
public void testGetStringByMode_StringIsNull() {
String result = StringMode.getStringByMode(null, StringMode.IgnoreQuato);
want.string(result).isNull();
}
@Test
public void testGetStringByMode_NoStringMode() {
String input = "abc \t 'abc'\n\r\"ABC\" ";
String actual = StringMode.getStringByMode(input);
want.string(actual).isEqualTo(input);
}
@Test
public void testSameAsSlash() {
String actual = "d:/abc\\e/1.txt";
want.string(actual).eq("d:/abc/e/1.txt", StringMode.SameAsSlash);
}
}