package org.molgenis.util;
import org.testng.annotations.Test;
import java.util.Arrays;
import java.util.Collections;
import static org.testng.Assert.assertEquals;
public class ListEscapeUtilsTest
{
@Test
public void toListString()
{
assertEquals(ListEscapeUtils.toList("a"), Collections.singletonList("a"));
assertEquals(ListEscapeUtils.toList("a,b,c"), Arrays.asList("a", "b", "c"));
assertEquals(ListEscapeUtils.toList("\\,"), Collections.singletonList(","));
assertEquals(ListEscapeUtils.toList("a\\,b"), Collections.singletonList("a,b"));
assertEquals(ListEscapeUtils.toList("\\\\"), Collections.singletonList("\\"));
assertEquals(ListEscapeUtils.toList("a\\\\b"), Collections.singletonList("a\\b"));
assertEquals(ListEscapeUtils.toList("a,b,"), Arrays.asList("a", "b", ""));
assertEquals(ListEscapeUtils.toList("a,,c"), Arrays.asList("a", "", "c"));
assertEquals(ListEscapeUtils.toList(",b,c"), Arrays.asList("", "b", "c"));
assertEquals(ListEscapeUtils.toList(""), Collections.emptyList());
assertEquals(ListEscapeUtils.toList(null), null);
}
@Test
public void toListStringcharchar()
{
assertEquals(ListEscapeUtils.toString(Arrays.asList("a", "b", "c"), ',', '/'), "a,b,c");
assertEquals(ListEscapeUtils.toString(Collections.singletonList("a,b,c"), ',', '/'), "a/,b/,c");
assertEquals(ListEscapeUtils.toString(Collections.singletonList("/"), ',', '/'), "//");
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void toListStringcharchar_exception()
{
ListEscapeUtils.toList("", 'a', 'a');
}
@Test
public void toStringList()
{
assertEquals("a", ListEscapeUtils.toString(Collections.singletonList("a")));
assertEquals("a,b,c", ListEscapeUtils.toString(Arrays.asList("a", "b", "c")));
assertEquals("\\,", ListEscapeUtils.toString(Collections.singletonList(",")));
assertEquals("a\\,b", ListEscapeUtils.toString(Collections.singletonList("a,b")));
assertEquals("\\\\", ListEscapeUtils.toString(Collections.singletonList("\\")));
assertEquals("a\\\\b", ListEscapeUtils.toString(Collections.singletonList("a\\b")));
assertEquals("a,b,", ListEscapeUtils.toString(Arrays.asList("a", "b", "")));
assertEquals("a,,c", ListEscapeUtils.toString(Arrays.asList("a", "", "c")));
assertEquals(",b,c", ListEscapeUtils.toString(Arrays.asList("", "b", "c")));
assertEquals("a,b,", ListEscapeUtils.toString(Arrays.asList("a", "b", null)));
assertEquals("a,,c", ListEscapeUtils.toString(Arrays.asList("a", null, "c")));
assertEquals(",b,c", ListEscapeUtils.toString(Arrays.asList(null, "b", "c")));
assertEquals("", ListEscapeUtils.toString(Collections.emptyList()));
assertEquals(null, ListEscapeUtils.toString(null));
}
@Test
public void toStringListcharchar()
{
assertEquals("a,b,c", ListEscapeUtils.toString(Arrays.asList("a", "b", "c"), ',', '/'));
assertEquals("a/,b/,c", ListEscapeUtils.toString(Collections.singletonList("a,b,c"), ',', '/'));
assertEquals("//", ListEscapeUtils.toString(Collections.singletonList("/"), ',', '/'));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void toStringListcharchar_exception()
{
ListEscapeUtils.toString(Collections.emptyList(), 'a', 'a');
}
}