From 1c32f297606b89d663d664b74951575ba9eb7e1b Mon Sep 17 00:00:00 2001 From: Wesley Wolfe Date: Sat, 5 Jan 2013 16:22:34 -0600 Subject: Clarify dye and wool color datas in DyeColor. Addresses BUKKIT-2786 DyeColor used the wool data for getData(), which is very misleading based on class name. The old method has been deprecated and replaced with getWoolData() and getDyeData() for the appropriate types of data values. The MaterialData classes Dye and Wool were updated appropriately, especially Dye innapropriately using a DyeColor data value compensation. Unit tests were added for the new methods, as well as the getColor on Dye and Wool. --- src/test/java/org/bukkit/DyeColorTest.java | 65 +++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 5 deletions(-) (limited to 'src/test') diff --git a/src/test/java/org/bukkit/DyeColorTest.java b/src/test/java/org/bukkit/DyeColorTest.java index 70049d7f..9e30fbfc 100644 --- a/src/test/java/org/bukkit/DyeColorTest.java +++ b/src/test/java/org/bukkit/DyeColorTest.java @@ -1,15 +1,70 @@ package org.bukkit; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.junit.Assert.*; +import static org.hamcrest.Matchers.*; +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.material.Colorable; +import org.bukkit.material.Dye; +import org.bukkit.material.Wool; 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; +@RunWith(Parameterized.class) public class DyeColorTest { + + @Parameters(name= "{index}: {0}") + public static List data() { + List list = new ArrayList(); + for (DyeColor dye : DyeColor.values()) { + list.add(new Object[] {dye}); + } + return list; + } + + @Parameter public DyeColor dye; + @Test + @SuppressWarnings("deprecation") public void getByData() { - for (DyeColor dyeColor : DyeColor.values()) { - assertThat(DyeColor.getByData(dyeColor.getData()), is(dyeColor)); - } + byte data = dye.getData(); + + DyeColor byData = DyeColor.getByData(data); + assertThat(byData, is(dye)); + } + + @Test + public void getByWoolData() { + byte data = dye.getWoolData(); + + DyeColor byData = DyeColor.getByWoolData(data); + assertThat(byData, is(dye)); + } + + @Test + public void getByDyeData() { + byte data = dye.getDyeData(); + + DyeColor byData = DyeColor.getByDyeData(data); + assertThat(byData, is(dye)); + } + + @Test + public void getDyeDyeColor() { + testColorable(new Dye(Material.INK_SACK, dye.getDyeData())); + } + + @Test + public void getWoolDyeColor() { + testColorable(new Wool(Material.WOOL, dye.getWoolData())); + } + + private void testColorable(final Colorable colorable) { + assertThat(colorable.getColor(), is(this.dye)); } } -- cgit v1.2.3