package com.jcwhatever.nucleus.views.menu;
import static org.junit.Assert.assertEquals;
import com.jcwhatever.nucleus.NucleusTest;
import com.jcwhatever.nucleus.utils.MetaKey;
import org.bukkit.Material;
import org.junit.BeforeClass;
import org.junit.Test;
import java.util.List;
/**
* Tests {@link MenuItemBuilder}.
*/
public class MenuItemBuilderTest {
@BeforeClass
public static void init() {
NucleusTest.init();
}
/**
* Make sure the correct title is set.
*/
@Test
public void testTitle() {
MenuItem menuItem = new MenuItemBuilder(Material.STONE).title("test").build(0);
assertEquals("test", menuItem.getTitle());
}
/**
* Make sure the correct description is set.
*/
@Test
public void testDescription() {
MenuItem menuItem = new MenuItemBuilder(Material.STONE).description("test").build(0);
assertEquals("test", menuItem.getDescription());
}
/**
* Make sure the correct amount is set.
*/
@Test
public void testAmount() {
MenuItem menuItem = new MenuItemBuilder(Material.STONE).amount(10).build(0);
assertEquals(10, menuItem.getAmount());
}
/**
* Make sure the correct meta is set.
*/
@Test
public void testMeta() throws Exception {
MetaKey<String> metaKey = new MetaKey<String>(String.class);
MenuItem menuItem = new MenuItemBuilder(Material.STONE).meta(metaKey, "val").build(0);
assertEquals("val", menuItem.getMeta().get(metaKey));
}
/**
* Make sure the correct on click runnable is set.
*/
@Test
public void testOnClick() throws Exception {
Runnable runnable = new Runnable() {
@Override
public void run() {
}
};
MenuItem menuItem = new MenuItemBuilder(Material.STONE).onClick(runnable).build(0);
List<Runnable> onClicks = menuItem.getOnClick();
assertEquals(1, onClicks.size());
}
/**
* Make sure build sets the correct slot.
*/
@Test
public void testBuild() throws Exception {
MenuItem menuItem = new MenuItemBuilder(Material.STONE).build(2);
assertEquals(2, menuItem.getSlot());
}
}