Add Vault and WorldGuard hook messages to console.
This commit is contained in:
parent
232d8150e6
commit
9e02848e17
@ -144,9 +144,6 @@ public final class ItemCaseCore extends JavaPlugin {
|
|||||||
this.getServer().getPluginManager().registerEvents(
|
this.getServer().getPluginManager().registerEvents(
|
||||||
new ItemcaseListener(), this);
|
new ItemcaseListener(), this);
|
||||||
|
|
||||||
// Log.
|
|
||||||
this.consoleLogger.info("console.info.listener-registered");
|
|
||||||
|
|
||||||
// Load itemcases for already loaded worlds.
|
// Load itemcases for already loaded worlds.
|
||||||
this.itemcaseManager.initialize();
|
this.itemcaseManager.initialize();
|
||||||
|
|
||||||
@ -204,6 +201,9 @@ public final class ItemCaseCore extends JavaPlugin {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Log.
|
||||||
|
this.consoleLogger.info("console.info.vault-hooked");
|
||||||
|
|
||||||
// Set economy provider.
|
// Set economy provider.
|
||||||
this.economyProvider = rsp.getProvider();
|
this.economyProvider = rsp.getProvider();
|
||||||
|
|
||||||
@ -211,6 +211,9 @@ public final class ItemCaseCore extends JavaPlugin {
|
|||||||
this.hasVault = true;
|
this.hasVault = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attempt to load WorldGuard.
|
||||||
|
*/
|
||||||
private void loadWorldGuard() {
|
private void loadWorldGuard() {
|
||||||
|
|
||||||
// Get plugin.
|
// Get plugin.
|
||||||
@ -226,6 +229,9 @@ public final class ItemCaseCore extends JavaPlugin {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Log.
|
||||||
|
this.consoleLogger.info("console.info.worldguard-hooked");
|
||||||
|
|
||||||
// Set true.
|
// Set true.
|
||||||
this.hasWorldGuard = true;
|
this.hasWorldGuard = true;
|
||||||
|
|
||||||
|
@ -15,10 +15,11 @@ console:
|
|||||||
# %WORLD_NAME% = The name of the world.
|
# %WORLD_NAME% = The name of the world.
|
||||||
locale: "Using locale: %LANGUAGE%"
|
locale: "Using locale: %LANGUAGE%"
|
||||||
config-loaded: "Successfully loaded main configuration file."
|
config-loaded: "Successfully loaded main configuration file."
|
||||||
listener-registered: "Main event listener registered."
|
|
||||||
enabled: "ItemCase v%VERSION% enabled."
|
enabled: "ItemCase v%VERSION% enabled."
|
||||||
unloaded: "Itemcases unloaded successfully."
|
unloaded: "Itemcases unloaded successfully."
|
||||||
loaded: "Loaded itemcases for world: %WORLD_NAME%"
|
loaded: "Loaded itemcases for world: %WORLD_NAME%"
|
||||||
|
vault-hooked: "Vault successfully hooked."
|
||||||
|
worldguard-hooked: "WorldGuard successfully hooked."
|
||||||
|
|
||||||
# Messages shown when using commands.
|
# Messages shown when using commands.
|
||||||
command:
|
command:
|
||||||
|
@ -2,7 +2,7 @@ name: ItemCase
|
|||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
description: ItemCase is a Bukkit plugin allowing you to showcase items on slabs, that can also be used as shops.
|
description: ItemCase is a Bukkit plugin allowing you to showcase items on slabs, that can also be used as shops.
|
||||||
load: POSTWORLD
|
load: POSTWORLD
|
||||||
softdepend: [Vault]
|
softdepend: [WorldGuard, Vault]
|
||||||
author: BleedObsidian
|
author: BleedObsidian
|
||||||
website: http://dev.bukkit.org/bukkit-plugins/itemcase/
|
website: http://dev.bukkit.org/bukkit-plugins/itemcase/
|
||||||
database: false
|
database: false
|
||||||
|
245
src/test/java/com/gmail/bleedobsidian/itemcase/ItemcaseTest.java
Normal file
245
src/test/java/com/gmail/bleedobsidian/itemcase/ItemcaseTest.java
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
/*
|
||||||
|
* ItemCase is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/gpl.html>.
|
||||||
|
*/
|
||||||
|
package com.gmail.bleedobsidian.itemcase;
|
||||||
|
|
||||||
|
import com.gmail.bleedobsidian.itemcase.Itemcase.ItemcaseTask;
|
||||||
|
import com.gmail.bleedobsidian.itemcase.Itemcase.Type;
|
||||||
|
import org.bukkit.Chunk;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import static org.mockito.Matchers.any;
|
||||||
|
import static org.mockito.Matchers.anyInt;
|
||||||
|
import static org.mockito.Matchers.anyString;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
import org.powermock.api.mockito.PowerMockito;
|
||||||
|
import static org.powermock.api.mockito.PowerMockito.whenNew;
|
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||||
|
import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unit test for {@link com.gmail.bleedobsidian.itemcase.Itemcase}
|
||||||
|
*
|
||||||
|
* @author Jesse Prescott (BleedObsidian).
|
||||||
|
*/
|
||||||
|
|
||||||
|
@RunWith(PowerMockRunner.class)
|
||||||
|
@PrepareForTest(Itemcase.class)
|
||||||
|
public class ItemcaseTest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The material of the itemcase
|
||||||
|
*/
|
||||||
|
private Material itemcaseMaterial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a valid itemcase.
|
||||||
|
*
|
||||||
|
* @return Itemcase.
|
||||||
|
*/
|
||||||
|
private Itemcase createValidItemcase() throws Exception {
|
||||||
|
|
||||||
|
// Itemcase type.
|
||||||
|
Type type = Type.SHOP_MULTI;
|
||||||
|
|
||||||
|
// Mock ItemMeta.
|
||||||
|
ItemMeta meta = PowerMockito.mock(ItemMeta.class);
|
||||||
|
|
||||||
|
// Mock itemstack.
|
||||||
|
ItemStack itemstack = PowerMockito.mock(ItemStack.class);
|
||||||
|
|
||||||
|
// When clone method is called, return mock itemstack.
|
||||||
|
when(itemstack.clone()).thenReturn(itemstack);
|
||||||
|
|
||||||
|
// Return mock item meta.
|
||||||
|
when(itemstack.getItemMeta()).thenReturn(meta);
|
||||||
|
|
||||||
|
// Mock world.
|
||||||
|
World world = PowerMockito.mock(World.class);
|
||||||
|
|
||||||
|
// Mock block.
|
||||||
|
Block block = PowerMockito.mock(Block.class);
|
||||||
|
|
||||||
|
// Return material.
|
||||||
|
when(block.getType()).thenReturn(this.itemcaseMaterial);
|
||||||
|
|
||||||
|
// Mock location.
|
||||||
|
Location location = PowerMockito.mock(Location.class);
|
||||||
|
|
||||||
|
// Return mock world when asked for.
|
||||||
|
when(location.getWorld()).thenReturn(world);
|
||||||
|
|
||||||
|
// Return mock block.
|
||||||
|
when(location.getBlock()).thenReturn(block);
|
||||||
|
|
||||||
|
// Mock chunk.
|
||||||
|
Chunk chunk = PowerMockito.mock(Chunk.class);
|
||||||
|
|
||||||
|
// When asking for the chunk from location, return mock.
|
||||||
|
when(location.getChunk()).thenReturn(chunk);
|
||||||
|
|
||||||
|
// Mock player.
|
||||||
|
OfflinePlayer player = PowerMockito.mock(OfflinePlayer.class);
|
||||||
|
|
||||||
|
// Create new itemcase to test.
|
||||||
|
Itemcase itemcase = new Itemcase(type, itemstack, location, player);
|
||||||
|
|
||||||
|
// Test type is correct.
|
||||||
|
assertEquals(itemcase.getType(), type);
|
||||||
|
|
||||||
|
// Test itemstack is correct.
|
||||||
|
assertEquals(itemcase.getItemStack(), itemstack);
|
||||||
|
|
||||||
|
// Verify itemstack amount was set to 1.
|
||||||
|
verify(itemstack).setAmount(1);
|
||||||
|
|
||||||
|
// Test owner is correct.
|
||||||
|
assertEquals(itemcase.getOwner(), player);
|
||||||
|
|
||||||
|
// Return itemcase.
|
||||||
|
return itemcase;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void constructor_valid_pass() throws Exception {
|
||||||
|
|
||||||
|
// Create itemcase.
|
||||||
|
Itemcase itemcase = this.createValidItemcase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void constructor_nullType_exception() {
|
||||||
|
|
||||||
|
// Mock itemstack.
|
||||||
|
ItemStack itemstack = PowerMockito.mock(ItemStack.class);
|
||||||
|
|
||||||
|
// When clone method is called, return mock itemstack.
|
||||||
|
when(itemstack.clone()).thenReturn(itemstack);
|
||||||
|
|
||||||
|
// Mock location.
|
||||||
|
Location location = PowerMockito.mock(Location.class);
|
||||||
|
|
||||||
|
// Mock chunk.
|
||||||
|
Chunk chunk = PowerMockito.mock(Chunk.class);
|
||||||
|
|
||||||
|
// When asking for the chunk from location, return mock.
|
||||||
|
when(location.getChunk()).thenReturn(chunk);
|
||||||
|
|
||||||
|
// Mock player.
|
||||||
|
OfflinePlayer player = PowerMockito.mock(OfflinePlayer.class);
|
||||||
|
|
||||||
|
// Create object.
|
||||||
|
new Itemcase(null, itemstack, location, player);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void constructor_nullItemStack_exception() {
|
||||||
|
|
||||||
|
// Itemcase type.
|
||||||
|
Type type = Type.SHOP_MULTI;
|
||||||
|
|
||||||
|
// Mock location.
|
||||||
|
Location location = PowerMockito.mock(Location.class);
|
||||||
|
|
||||||
|
// Mock chunk.
|
||||||
|
Chunk chunk = PowerMockito.mock(Chunk.class);
|
||||||
|
|
||||||
|
// When asking for the chunk from location, return mock.
|
||||||
|
when(location.getChunk()).thenReturn(chunk);
|
||||||
|
|
||||||
|
// Mock player.
|
||||||
|
OfflinePlayer player = PowerMockito.mock(OfflinePlayer.class);
|
||||||
|
|
||||||
|
// Create itemcase.
|
||||||
|
new Itemcase(type, null, location, player);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void constructor_nullLocation_exception() {
|
||||||
|
|
||||||
|
// Itemcase type.
|
||||||
|
Type type = Type.SHOP_MULTI;
|
||||||
|
|
||||||
|
// Mock itemstack.
|
||||||
|
ItemStack itemstack = PowerMockito.mock(ItemStack.class);
|
||||||
|
|
||||||
|
// When clone method is called, return mock itemstack.
|
||||||
|
when(itemstack.clone()).thenReturn(itemstack);
|
||||||
|
|
||||||
|
// Mock player.
|
||||||
|
OfflinePlayer player = PowerMockito.mock(OfflinePlayer.class);
|
||||||
|
|
||||||
|
// Create itemcase.
|
||||||
|
new Itemcase(type, itemstack, null, player);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void constructor_nullOwner_exception() {
|
||||||
|
|
||||||
|
// Itemcase type.
|
||||||
|
Type type = Type.SHOP_MULTI;
|
||||||
|
|
||||||
|
// Mock itemstack.
|
||||||
|
ItemStack itemstack = PowerMockito.mock(ItemStack.class);
|
||||||
|
|
||||||
|
// When clone method is called, return mock itemstack.
|
||||||
|
when(itemstack.clone()).thenReturn(itemstack);
|
||||||
|
|
||||||
|
// Mock location.
|
||||||
|
Location location = PowerMockito.mock(Location.class);
|
||||||
|
|
||||||
|
// Mock chunk.
|
||||||
|
Chunk chunk = PowerMockito.mock(Chunk.class);
|
||||||
|
|
||||||
|
// When asking for the chunk from location, return mock.
|
||||||
|
when(location.getChunk()).thenReturn(chunk);
|
||||||
|
|
||||||
|
// Create itemcase.
|
||||||
|
new Itemcase(type, itemstack, location, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void spawnItem_taskStarted_pass() throws Exception {
|
||||||
|
|
||||||
|
// Create valid itemcase.
|
||||||
|
Itemcase itemcase = this.createValidItemcase();
|
||||||
|
|
||||||
|
// Create mock bukkit runnable.
|
||||||
|
ItemcaseTask runnable = PowerMockito.mock(ItemcaseTask.class);
|
||||||
|
|
||||||
|
// When creating a new bukkit runnable (as done so inside of spawnItem
|
||||||
|
// return a mock.
|
||||||
|
whenNew(ItemcaseTask.class).withAnyArguments().thenReturn(runnable);
|
||||||
|
|
||||||
|
// Pretend chunk is loaded.
|
||||||
|
when(itemcase.getLocation().getWorld().isChunkLoaded(
|
||||||
|
any(Chunk.class))).thenReturn(true);
|
||||||
|
|
||||||
|
// Spawn item.
|
||||||
|
itemcase.spawnItem();
|
||||||
|
|
||||||
|
// verify task was started.
|
||||||
|
verify(runnable)
|
||||||
|
.runTaskTimer(any(JavaPlugin.class), anyInt(), anyInt());
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user