package ru.yandex.qatools.allure.config;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.assertEquals;
import static ru.yandex.qatools.allure.config.AllureNamingUtils.replaceBadXmlCharactersBySpace;
/**
* @author Dmitry Baev charlie@yandex-team.ru
* Date: 18.03.15
*/
@RunWith(Parameterized.class)
public class ReplaceBadXmlCharactersBySpaceTest {
@Parameterized.Parameter(0)
public String string;
@Parameterized.Parameter(1)
public int off;
@Parameterized.Parameter(2)
public int len;
@Parameterized.Parameter(3)
public String expected;
@Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(
new Object[]{"asdzxcADSZXC", 0, 12, "asdzxcADSZXC"},
new Object[]{"апрячсАПРЯЧС", 0, 12, "апрячсАПРЯЧС"},
new Object[]{"hi\nall", 0, 6, "hi\nall"},
new Object[]{"hi\u0019all", 0, 6, "hi all"},
new Object[]{"hi all\u0019", 0, 6, "hi all\u0019"},
new Object[]{"hi\u0019 all\u0019", 5, 2, "hi\u0019 all\u0019"},
new Object[]{"hi\u0019 all\u0019", 5, 3, "hi\u0019 all "}
);
}
@Test
public void shouldDetectBadCharacter() throws Exception {
char[] cbuf = string.toCharArray();
replaceBadXmlCharactersBySpace(cbuf, off, len);
String actual = String.copyValueOf(cbuf);
assertEquals(expected, actual);
}
}