summaryrefslogtreecommitdiffstats
path: root/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org/bukkit/StatisticsAndAchievementsTest.java')
-rw-r--r--src/test/java/org/bukkit/StatisticsAndAchievementsTest.java46
1 files changed, 35 insertions, 11 deletions
diff --git a/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java b/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java
index e05e7330..055bc426 100644
--- a/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java
+++ b/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java
@@ -3,10 +3,13 @@ package org.bukkit;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
-import java.util.List;
-
+import net.minecraft.server.Block;
+import net.minecraft.server.EntityTypes;
+import net.minecraft.server.Item;
import net.minecraft.server.StatisticList;
+import net.minecraft.server.StatisticWrapper;
+import org.bukkit.entity.EntityType;
import org.bukkit.craftbukkit.CraftStatistic;
import org.bukkit.support.AbstractTestingBase;
import org.junit.Test;
@@ -17,17 +20,38 @@ public class StatisticsAndAchievementsTest extends AbstractTestingBase {
@Test
@SuppressWarnings("unchecked")
+ public void verifyEntityMapping() throws Throwable {
+ for (Statistic statistic : Statistic.values()) {
+ if (statistic.getType() == Statistic.Type.ENTITY) {
+ for (EntityType entity : EntityType.values()) {
+ if (entity.getName() != null) {
+ assertNotNull(statistic + " missing for " + entity, CraftStatistic.getEntityStatistic(statistic, entity));
+ }
+ }
+ }
+ }
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
public void verifyStatisticMapping() throws Throwable {
HashMultiset<Statistic> statistics = HashMultiset.create();
- for (net.minecraft.server.Statistic statistic : (List<net.minecraft.server.Statistic>) StatisticList.stats) {
- String name = statistic.name;
-
- String message = String.format("org.bukkit.Statistic is missing: '%s'", name);
-
- Statistic subject = CraftStatistic.getBukkitStatistic(statistic);
- assertThat(message, subject, is(not(nullValue())));
-
- statistics.add(subject);
+ for (StatisticWrapper wrapper : (Iterable<StatisticWrapper<?>>) StatisticList.REGISTRY) { // Eclipse fail
+ for (Object child : wrapper.a()) {
+ net.minecraft.server.Statistic<?> statistic = wrapper.b(child);
+ String message = String.format("org.bukkit.Statistic is missing: '%s'", statistic);
+
+ Statistic subject = CraftStatistic.getBukkitStatistic(statistic);
+ assertThat(message, subject, is(not(nullValue())));
+
+ if (wrapper.a() == Block.REGISTRY || wrapper.a() == Item.REGISTRY) {
+ assertNotNull("Material type map missing for " + child, CraftStatistic.getMaterialFromStatistic(statistic));
+ } else if (wrapper.a() == EntityTypes.REGISTRY) {
+ assertNotNull("Entity type map missing for " + EntityTypes.getName((EntityTypes<?>) child), CraftStatistic.getEntityTypeFromStatistic((net.minecraft.server.Statistic<EntityTypes<?>>) statistic));
+ }
+
+ statistics.add(subject);
+ }
}
for (Statistic statistic : Statistic.values()) {