package net.glowstone.constants; import net.glowstone.testutils.ParameterUtils; import org.bukkit.Effect; import org.bukkit.Material; 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.assertArrayEquals; import static org.junit.Assert.assertEquals; /** * Tests for {@link GlowParticle}. */ @RunWith(Parameterized.class) public class ParticleTest { private static final MaterialData STONE = new MaterialData(Material.STONE, (byte) 1); private final Effect particle; public ParticleTest(Effect particle) { this.particle = particle; } @Parameterized.Parameters public static Collection<Object[]> data() { return ParameterUtils.enumCases(Effect.values()); } @Test public void testHasId() { //TODO assertTrue("Id missing for particle " + particle, GlowParticle.getId(particle) >= 0); } @Test public void testGetData() { if (particle.getType() != Effect.Type.PARTICLE) return; // this only tests particle effects switch (particle) { case ITEM_BREAK: assertEquals("Wrong data for " + particle, true, particle.getData() != null); assertArrayEquals("Wrong extra data for " + particle, new int[]{Material.STONE.getId(), 1}, GlowParticle.getExtData(particle, STONE)); break; case TILE_BREAK: assertEquals("Wrong data for " + particle, true, particle.getData() != null); assertArrayEquals("Wrong extra data for " + particle, new int[]{4097}, GlowParticle.getExtData(particle, STONE)); break; case TILE_DUST: assertEquals("Wrong data for " + particle, true, particle.getData() != null); assertArrayEquals("Wrong extra data for " + particle, new int[]{Material.STONE.getId()}, GlowParticle.getExtData(particle, STONE)); break; default: assertEquals("Wrong data for " + particle, false, particle.getData() != null); assertArrayEquals("Wrong extra data for " + particle, new int[0], GlowParticle.getExtData(particle, null)); } } }