package com.jcwhatever.nucleus.providers.bankitems;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import com.jcwhatever.v1_8_R3.BukkitTester;
import com.jcwhatever.nucleus.NucleusTest;
import org.bukkit.entity.Player;
import org.junit.BeforeClass;
import org.junit.Test;
import java.util.UUID;
/**
* Abstract test for {@link IBankItemsProvider} implementations.
*/
public abstract class IBankItemsProviderTest {
private Player _player = BukkitTester.login("dummy");
protected abstract IBankItemsProvider getProvider();
/**
* Make sure Nucleus and Bukkit are initialized.
*/
@BeforeClass
public static void init() {
NucleusTest.init();
}
/**
* Make sure {@link #getAccount} works correctly.
*/
@Test
public void testGetAccount() {
IBankItemsProvider provider = getProvider();
IBankItemsAccount account = provider.getAccount(_player.getUniqueId());
// global account should be auto-created if not exists
assertTrue(account != null);
}
/**
* Make sure {@link #createBank} works correctly.
*/
@Test
public void testCreateBank() {
IBankItemsProvider provider = getProvider();
IBankItemsBank bank = provider.createBank("bank");
assertTrue(bank != null);
assertEquals("bank", bank.getName());
assertEquals(null, bank.getOwnerId());
UUID ownerId = UUID.randomUUID();
bank = provider.createBank("bank2", ownerId);
assertTrue(bank != null);
assertEquals("bank2", bank.getName());
assertEquals(ownerId, bank.getOwnerId());
}
/**
* Make sure {@link #hasBank} works correctly.
*/
@Test
public void testHasBank() {
IBankItemsProvider provider = getProvider();
assertEquals(false, provider.hasBank("bank"));
provider.createBank("bank");
assertEquals(true, provider.hasBank("bank"));
}
/**
* Make sure {@link #getBank} works correctly.
*/
@Test
public void testGetBank() {
IBankItemsProvider provider = getProvider();
IBankItemsBank bank = provider.getBank("bank");
assertTrue(bank == null);
provider.createBank("bank");
bank = provider.getBank("bank");
assertTrue(bank != null);
}
@Test
public void testDeleteBank() throws Exception {
IBankItemsProvider provider = getProvider();
assertEquals(false, provider.deleteBank("bank"));
provider.createBank("bank");
IBankItemsBank bank = provider.getBank("bank");
assertTrue(bank != null);
assertEquals(true, provider.deleteBank("bank"));
bank = provider.getBank("bank");
assertEquals(null, bank);
}
}