package net.glowstone.constants; import net.glowstone.testutils.ParameterUtils; import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.material.MaterialData; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.util.Collection; import static org.junit.Assert.*; /** * Tests for {@link GlowParticle}. */ @RunWith(Parameterized.class) public class ParticleTest { private static final MaterialData STONE = new MaterialData(Material.STONE, (byte) 1); private final Particle particle; public ParticleTest(Particle particle) { this.particle = particle; } @Parameterized.Parameters public static Collection<Object[]> data() { return ParameterUtils.enumCases(Particle.values()); } @Test public void testHasId() { assertTrue("Id missing for particle " + particle, GlowParticle.getId(particle) >= 0); } @Test public void testGetData() { switch (particle) { case ITEM_BREAK: assertEquals("Wrong usesMaterial for " + particle, true, particle.usesMaterial()); assertArrayEquals("Wrong extData for " + particle, new int[]{Material.STONE.getId(), 1}, GlowParticle.getData(particle, STONE)); break; case BLOCK_BREAK: case BLOCK_DUST: assertEquals("Wrong usesMaterial for " + particle, true, particle.usesMaterial()); assertArrayEquals("Wrong extData for " + particle, new int[]{Material.STONE.getId()}, GlowParticle.getData(particle, STONE)); break; default: assertEquals("Wrong usesMaterial for " + particle, false, particle.usesMaterial()); assertArrayEquals("Wrong extData for " + particle, new int[0], GlowParticle.getData(particle, null)); } } }