package com.comphenix.xp.lookup;
import static org.junit.Assert.*;
import org.bukkit.entity.EntityType;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.junit.Test;
import com.comphenix.xp.parser.ParsingException;
import com.comphenix.xp.parser.text.MobMatcher;
import com.comphenix.xp.parser.text.MobParser;
public class MobParserTest {
@Test
public void testParser() throws ParsingException {
MobQuery universal = MobQuery.fromAny();
MobQuery allZombies = MobQuery.fromAny(EntityType.ZOMBIE);
MobQuery fallingZombies = MobQuery.fromAny(EntityType.ZOMBIE, DamageCause.FALL);
MobQuery spawnedMobs = MobQuery.fromAny((EntityType) null, null, SpawnReason.SPAWNER, null, null, null, null);
MobQuery smallSlimes = MobQuery.fromAny(EntityType.SLIME, null, 1, null, null, null, null, null);
MobParser parser = new MobParser(new MobMatcher());
assertEquals(universal, parser.parse("?"));
assertEquals(allZombies, parser.parse("zombie"));
assertEquals(fallingZombies, parser.parse("zombie|fall"));
assertEquals(fallingZombies, parser.parse("zombie|fall|spawner,!spawner"));
assertEquals(smallSlimes, parser.parse("slime|?|tiny"));
assertEquals(spawnedMobs, parser.parse("?|?|spawner"));
assertNotSame(universal, parser.parse("?|?|spawner"));
}
}