mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-13 10:21:13 +01:00
SPIGOT-5900: Add test for the order of Material enum entries
This commit is contained in:
parent
8297676c20
commit
551e770f5f
1 changed files with 29 additions and 0 deletions
|
@ -3,9 +3,14 @@ package org.bukkit;
|
|||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
import com.google.common.collect.Maps;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.StreamSupport;
|
||||
import net.minecraft.server.IRegistry;
|
||||
import net.minecraft.server.Item;
|
||||
import net.minecraft.server.MinecraftKey;
|
||||
|
@ -43,4 +48,28 @@ public class MaterialTest extends AbstractTestingBase {
|
|||
|
||||
assertThat(materials, is(Collections.EMPTY_MAP));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void verifyMaterialOrder() {
|
||||
List<Material> expectedOrder = new ArrayList<>(Material.values().length);
|
||||
|
||||
// Start with items in the same order as IRegistry.ITEM
|
||||
StreamSupport.stream(IRegistry.ITEM.spliterator(), false)
|
||||
.map(CraftMagicNumbers::getMaterial)
|
||||
.forEach(expectedOrder::add);
|
||||
|
||||
// Then non-item blocks in the same order as IRegistry.BLOCK
|
||||
StreamSupport.stream(IRegistry.BLOCK.spliterator(), false)
|
||||
.map(CraftMagicNumbers::getMaterial)
|
||||
.filter(block -> !block.isItem())
|
||||
.forEach(expectedOrder::add);
|
||||
|
||||
// Then legacy materials in order of ID
|
||||
Arrays.stream(Material.values())
|
||||
.filter(Material::isLegacy)
|
||||
.sorted(Comparator.comparingInt(Material::getId))
|
||||
.forEach(expectedOrder::add);
|
||||
|
||||
assertArrayEquals(Material.values(), expectedOrder.toArray());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue