From 81d3f6367e0f7fc76fc6f7e3625c1d12819a7807 Mon Sep 17 00:00:00 2001 From: Wesley Wolfe Date: Sat, 4 Jan 2014 12:43:49 -0600 Subject: Add unit tests for org.bukkit.util.StringUtil --- .../org/bukkit/util/StringUtilStartsWithTest.java | 86 ++++++++++++++++++++++ src/test/java/org/bukkit/util/StringUtilTest.java | 61 +++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 src/test/java/org/bukkit/util/StringUtilStartsWithTest.java create mode 100644 src/test/java/org/bukkit/util/StringUtilTest.java (limited to 'src/test/java/org') diff --git a/src/test/java/org/bukkit/util/StringUtilStartsWithTest.java b/src/test/java/org/bukkit/util/StringUtilStartsWithTest.java new file mode 100644 index 00000000..b85a2b21 --- /dev/null +++ b/src/test/java/org/bukkit/util/StringUtilStartsWithTest.java @@ -0,0 +1,86 @@ +package org.bukkit.util; + +import static org.hamcrest.Matchers.*; +import static org.junit.Assert.*; + +import java.util.List; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameter; +import org.junit.runners.Parameterized.Parameters; + +import com.google.common.collect.ImmutableList; + +@RunWith(Parameterized.class) +public class StringUtilStartsWithTest { + + @Parameters(name= "{index}: {0} startsWith {1} == {2}") + public static List data() { + return ImmutableList.of( + new Object[] { + "Apple", + "Apples", + false + }, + new Object[] { + "Apples", + "Apple", + true + }, + new Object[] { + "Apple", + "Apple", + true + }, + new Object[] { + "Apple", + "apples", + false + }, + new Object[] { + "apple", + "Apples", + false + }, + new Object[] { + "apple", + "apples", + false + }, + new Object[] { + "Apples", + "apPL", + true + }, + new Object[] { + "123456789", + "1234567", + true + }, + new Object[] { + "", + "", + true + }, + new Object[] { + "string", + "", + true + } + ); + } + + @Parameter(0) + public String base; + @Parameter(1) + public String prefix; + @Parameter(2) + public boolean result; + + @Test + public void testFor() { + assertThat(base + " starts with " + prefix + ": " + result, StringUtil.startsWithIgnoreCase(base, prefix), is(result)); + } +} diff --git a/src/test/java/org/bukkit/util/StringUtilTest.java b/src/test/java/org/bukkit/util/StringUtilTest.java new file mode 100644 index 00000000..9c8444c1 --- /dev/null +++ b/src/test/java/org/bukkit/util/StringUtilTest.java @@ -0,0 +1,61 @@ +package org.bukkit.util; + +import static org.hamcrest.Matchers.*; +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.junit.Test; + +import com.google.common.collect.ImmutableList; + +public class StringUtilTest { + + @Test(expected=NullPointerException.class) + public void nullPrefixTest() { + StringUtil.startsWithIgnoreCase("String", null); + } + + @Test(expected=IllegalArgumentException.class) + public void nullStringTest() { + StringUtil.startsWithIgnoreCase(null, "String"); + } + + @Test(expected=IllegalArgumentException.class) + public void nullCollectionTest() { + StringUtil.copyPartialMatches("Token", ImmutableList.of(), null); + } + + @Test(expected=IllegalArgumentException.class) + public void nullIterableTest() { + StringUtil.copyPartialMatches("Token", null, new ArrayList()); + } + + @Test(expected=IllegalArgumentException.class) + public void nullTokenTest() { + StringUtil.copyPartialMatches(null, ImmutableList.of(), new ArrayList()); + } + + @Test + public void copyTokenTest() { + String token = "ab"; + Iterable original = ImmutableList.of("ab12", "aC561", "AB5195", "Ab76", "", "a"); + List expected = ImmutableList.of("ab12", "AB5195", "Ab76" ); + List list = new ArrayList(); + assertThat(StringUtil.copyPartialMatches(token, original, list), is(expected)); + assertThat(StringUtil.copyPartialMatches(token, original, list), is(sameInstance(list))); + assertThat(list.size(), is(expected.size() * 2)); + } + + @Test(expected=UnsupportedOperationException.class) + public void copyUnsupportedTest() { + StringUtil.copyPartialMatches("token", ImmutableList.of("token1", "token2"), ImmutableList.of()); + } + + @Test(expected=IllegalArgumentException.class) + public void copyNullTest() { + StringUtil.copyPartialMatches("token", Arrays.asList("token1", "token2", null), new ArrayList()); + } +} -- cgit v1.2.3