Skip to content

Commit

Permalink
Add unit tests for org.bukkit.util.StringUtil
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolvereness committed Jan 4, 2014
1 parent 3fcbcaf commit 45ed9a3
Show file tree
Hide file tree
Showing 2 changed files with 147 additions and 0 deletions.
86 changes: 86 additions & 0 deletions src/test/java/org/bukkit/util/StringUtilStartsWithTest.java
Original file line number Diff line number Diff line change
@@ -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<Object[]> data() {
return ImmutableList.<Object[]>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));
}
}
61 changes: 61 additions & 0 deletions src/test/java/org/bukkit/util/StringUtilTest.java
Original file line number Diff line number Diff line change
@@ -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.<String>of(), null);
}

@Test(expected=IllegalArgumentException.class)
public void nullIterableTest() {
StringUtil.copyPartialMatches("Token", null, new ArrayList<String>());
}

@Test(expected=IllegalArgumentException.class)
public void nullTokenTest() {
StringUtil.copyPartialMatches(null, ImmutableList.<String>of(), new ArrayList<String>());
}

@Test
public void copyTokenTest() {
String token = "ab";
Iterable<String> original = ImmutableList.of("ab12", "aC561", "AB5195", "Ab76", "", "a");
List<String> expected = ImmutableList.of("ab12", "AB5195", "Ab76" );
List<String> list = new ArrayList<String>();
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<String>());
}
}

0 comments on commit 45ed9a3

Please sign in to comment.