package kornell; import static kornell.core.util.StringUtils.mkurl; import static kornell.core.util.StringUtils.trimSlashes; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import java.util.HashMap; import java.util.Map; import org.junit.Test; import kornell.core.util.StringUtils; public class TestStringUtils { @Test public void testTrimSlashes(){ assertEquals("um/dois/tres",trimSlashes("/um/dois/tres/")); assertEquals("um/dois/tres",trimSlashes("um/dois/tres/")); assertEquals("um/dois/tres",trimSlashes("/um/dois/tres")); assertEquals("um/dois/tres",trimSlashes("um/dois/tres")); assertEquals("um/dois/tres",trimSlashes("//um/dois/tres///")); assertEquals("",trimSlashes("/")); assertEquals("",trimSlashes("///")); assertEquals("",trimSlashes("////")); } @Test public void testComposeURL() { assertEquals("http://correct/path1",mkurl("http://correct","/path1") ); assertEquals("http://correct/path2",mkurl("http://correct","path2") ); assertEquals("http://correct/path3",mkurl("http://correct/","path3") ); assertEquals("http://no/slashes/is/ok",mkurl("http://no","slashes","is","ok") ); assertEquals("http://double/slash/happens",mkurl("http://double/","/slash/","/happens") ); assertEquals("http://empty/segments/too",mkurl("http://empty","/segments","","/too") ); assertEquals("/absolute/path/welcome",mkurl("/absolute","/path","/welcome") ); assertEquals("relative/path/welcome",mkurl("relative","/path","/welcome") ); assertEquals("/composite/segments/too",mkurl("/composite/segments","/too") ); assertEquals("/does/not/start/with/double/slash",mkurl("/","/does/not/start/with/double/slash") ); assertEquals("http://slash/segments/also",mkurl("http://slash","/segments","/","/also") ); } @Test public void testOptionalString(){ assertEquals(StringUtils.opt("uala").getOrNull(),"uala"); assertNull(StringUtils.opt(null).getOrNull()); assertEquals(StringUtils.opt("").orElse("uala").getOrNull(),"uala"); assertNull(StringUtils.opt(null).orElse("").getOrNull()); } @SuppressWarnings("serial") @Test public void testComposeProperties(){ Map<String, String> props = new HashMap<String, String>(){{ put("a", "0"); put("b", "1"); put("c", "2"); }}; String composed = StringUtils.composeProperties(props); Map<String,String> parsed = StringUtils.parseProperties(composed); assertEquals(props, parsed); } }