From 48a81099319462869568bb19474fc9c0bfdf6e80 Mon Sep 17 00:00:00 2001 From: DOHA Date: Sat, 18 Oct 2014 22:28:28 +0200 Subject: [PATCH] Add class GuavaStringTest --- .../org/baeldung/guava/GuavaStringTest.java | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 guava/src/test/java/org/baeldung/guava/GuavaStringTest.java diff --git a/guava/src/test/java/org/baeldung/guava/GuavaStringTest.java b/guava/src/test/java/org/baeldung/guava/GuavaStringTest.java new file mode 100644 index 0000000000..05e6f48d95 --- /dev/null +++ b/guava/src/test/java/org/baeldung/guava/GuavaStringTest.java @@ -0,0 +1,176 @@ +package org.baeldung.guava; + +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.containsString; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import org.junit.Test; + +import com.google.common.base.CharMatcher; +import com.google.common.base.Function; +import com.google.common.base.Joiner; +import com.google.common.base.Splitter; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + +public class GuavaStringTest { + + @Test + public void whenConvertListToString_thenConverted() { + final List names = Lists.newArrayList("John", "Jane", "Adam", "Tom"); + final String result = Joiner.on(",").join(names); + + assertThat(Arrays.asList(result.split(",")), containsInAnyOrder("John", "Jane", "Adam", "Tom")); + } + + @Test + public void whenConvertListToStringAndSkipNull_thenConverted() { + final List names = Lists.newArrayList("John", null, "Jane", "Adam", "Tom"); + final String result = Joiner.on(",").skipNulls().join(names); + + assertThat(Arrays.asList(result.split(",")), containsInAnyOrder("John", "Jane", "Adam", "Tom")); + } + + @Test + public void whenConvertMapToString_thenConverted() { + final Map salary = Maps.newHashMap(); + salary.put("John", 1000); + salary.put("Jane", 1500); + + final String result = Joiner.on(" , ").withKeyValueSeparator(" = ").join(salary); + + assertThat(result, containsString("John = 1000")); + assertThat(result, containsString("Jane = 1500")); + } + + @Test + public void whenJoinNestedCollections_thenJoined() { + final List> nested = Lists.newArrayList(Lists.newArrayList("apple", "banana", "orange"), Lists.newArrayList("cat", "dog", "bird"), Lists.newArrayList("John", "Jane", "Adam")); + final String result = Joiner.on(";").join(Iterables.transform(nested, new Function, String>() { + @Override + public final String apply(final List input) { + return Joiner.on("-").join(input); + } + })); + + assertThat(result, containsString("apple-banana-orange")); + assertThat(result, containsString("cat-dog-bird")); + assertThat(result, containsString("apple-banana-orange")); + } + + @Test + public void whenCreateListFromString_thenCreated() { + final String input = "apple - banana - orange"; + final List result = Splitter.on("-").trimResults().splitToList(input); + + assertThat(result, contains("apple", "banana", "orange")); + } + + @Test + public void whenCreateMapFromString_thenCreated() { + final String input = "John=first,Adam=second"; + final Map result = Splitter.on(",").withKeyValueSeparator("=").split(input); + + assertEquals("first", result.get("John")); + assertEquals("second", result.get("Adam")); + } + + @Test + public void whenSplitStringOnMultipleSeparator_thenSplit() { + final String input = "apple.banana,,orange,,."; + final List result = Splitter.onPattern("[.|,]").omitEmptyStrings().splitToList(input); + + assertThat(result, contains("apple", "banana", "orange")); + } + + @Test + public void whenSplitStringOnSpecificLength_thenSplit() { + final String input = "Hello world"; + final List result = Splitter.fixedLength(3).splitToList(input); + + assertThat(result, contains("Hel", "lo ", "wor", "ld")); + } + + @Test + public void whenRemoveSpecialCharacters_thenRemoved(){ + final String input = "H*el.lo,}12"; + final CharMatcher matcher = CharMatcher.JAVA_LETTER_OR_DIGIT; + final String result = matcher.retainFrom(input); + + assertEquals("Hello12", result); + } + + @Test + public void whenRemoveNonASCIIChars_thenRemoved() { + final String input = "あhello₤"; + + String result = CharMatcher.ASCII.retainFrom(input); + assertEquals("hello", result); + + result = CharMatcher.inRange('0', 'z').retainFrom(input); + assertEquals("hello", result); + } + + @Test + public void whenValidateString_thenValid() { + final String input = "hello"; + + boolean result = CharMatcher.JAVA_LOWER_CASE.matchesAllOf(input); + assertTrue(result); + + result = CharMatcher.is('e').matchesAnyOf(input); + assertTrue(result); + + result = CharMatcher.JAVA_DIGIT.matchesNoneOf(input); + assertTrue(result); + } + + @Test + public void whenTrimString_thenTrimmed() { + final String input = "---hello,,,"; + + String result = CharMatcher.is('-').trimLeadingFrom(input); + assertEquals("hello,,,", result); + + result = CharMatcher.is(',').trimTrailingFrom(input); + assertEquals("---hello", result); + + result = CharMatcher.anyOf("-,").trimFrom(input); + assertEquals("hello", result); + } + + + @Test + public void whenCollapseFromString_thenCollapsed() { + final String input = " hel lo "; + + String result = CharMatcher.is(' ').collapseFrom(input, '-'); + assertEquals("-hel-lo-", result); + + result = CharMatcher.is(' ').trimAndCollapseFrom(input, '-'); + assertEquals("hel-lo", result); + } + + @Test + public void whenCountCharInString_thenCorrect() { + final String input = "a, c, z, 1, 2"; + + int result = CharMatcher.is(',').countIn(input); + assertEquals(4, result); + + result = CharMatcher.inRange('a', 'h').countIn(input); + assertEquals(2, result); + } + + +} +