Add additional tests for CraftBlockData

This commit is contained in:
Senmori 2018-08-25 01:35:40 -04:00 committed by md_5
parent ce1af0c348
commit a677257885
3 changed files with 47 additions and 0 deletions

View File

@ -352,6 +352,7 @@ public class CraftBlockData implements BlockData {
private static final Map<Class<? extends Block>, Function<IBlockData, CraftBlockData>> MAP = new HashMap<>();
static {
//<editor-fold desc="CraftBlockData Registration" defaultstate="collapsed">
register(net.minecraft.server.BlockAnvil.class, org.bukkit.craftbukkit.block.impl.CraftAnvil::new);
register(net.minecraft.server.BlockBanner.class, org.bukkit.craftbukkit.block.impl.CraftBanner::new);
register(net.minecraft.server.BlockBannerWall.class, org.bukkit.craftbukkit.block.impl.CraftBannerWall::new);
@ -460,6 +461,7 @@ public class CraftBlockData implements BlockData {
register(net.minecraft.server.BlockWitherSkull.class, org.bukkit.craftbukkit.block.impl.CraftWitherSkull::new);
register(net.minecraft.server.BlockWitherSkullWall.class, org.bukkit.craftbukkit.block.impl.CraftWitherSkullWall::new);
register(net.minecraft.server.BlockWoodButton.class, org.bukkit.craftbukkit.block.impl.CraftWoodButton::new);
//</editor-fold>
}
private static void register(Class<? extends Block> nms, Function<IBlockData, CraftBlockData> bukkit) {

View File

@ -0,0 +1,38 @@
package org.bukkit;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.server.Block;
import net.minecraft.server.IBlockData;
import net.minecraft.server.IRegistry;
import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
/**
* This test class ensures that all Blocks (as registered in IRegistry.BLOCK)
* can be converted into their CraftBlockData equivalent.
*/
@RunWith(Parameterized.class)
public class BlockDataConversionTest extends AbstractTestingBase {
@Parameterized.Parameters(name = "{index}: {0}")
public static List<Object[]> args() {
List<Object[]> list = new ArrayList<>();
for (Block block : (Iterable<Block>) IRegistry.BLOCK) {
list.add(new Object[]{block.getBlockData()});
}
return list;
}
@Parameterized.Parameter(0) public IBlockData data;
@Test
public void testNotNull() {
Assert.assertNotNull(data);
Assert.assertNotNull(CraftBlockData.fromData(data));
}
}

View File

@ -229,4 +229,11 @@ public class PerMaterialTest extends AbstractTestingBase {
assertThat(material.getBlastResistance(), is(CraftMagicNumbers.getBlock(material).getDurability()));
}
}
@Test
public void testBlockDataCreation() {
if (material.isBlock()) {
assertNotNull(material.createBlockData());
}
}
}