-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
232 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
79 changes: 79 additions & 0 deletions
79
src/test/java/xyz/alexcrea/cuanvil/api/AnvilRecipeBuilderTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
package xyz.alexcrea.cuanvil.api; | ||
|
||
|
||
import org.bukkit.Material; | ||
import org.bukkit.inventory.ItemStack; | ||
import org.junit.jupiter.api.BeforeEach; | ||
import org.junit.jupiter.api.Test; | ||
import xyz.alexcrea.cuanvil.tests.SharedOnlyMockBukkit; | ||
|
||
import static org.junit.jupiter.api.Assertions.*; | ||
|
||
public class AnvilRecipeBuilderTest extends SharedOnlyMockBukkit { | ||
|
||
private AnvilRecipeBuilder builder; | ||
|
||
@BeforeEach | ||
public void setup() { | ||
builder = new AnvilRecipeBuilder("test"); | ||
assertEquals("test", builder.getName()); | ||
} | ||
|
||
@Test | ||
void createBuilder_NoLeftItem(){ | ||
builder.setResultItem(new ItemStack(Material.STICK)); | ||
|
||
assertNull(builder.build()); | ||
} | ||
|
||
@Test | ||
void createBuilder_NoResultItem(){ | ||
builder.setLeftItem(new ItemStack(Material.STICK)); | ||
|
||
assertNull(builder.build()); | ||
} | ||
|
||
@Test | ||
void createBuilder_minimalist(){ | ||
builder.setLeftItem(new ItemStack(Material.STICK)) | ||
.setResultItem(new ItemStack(Material.STICK)); | ||
|
||
assertNotNull(builder.build()); | ||
} | ||
|
||
@Test | ||
void setLeftItem(){ | ||
assertNull(builder.getLeftItem()); | ||
builder.setLeftItem(new ItemStack(Material.STICK)); | ||
assertNotNull(builder.getLeftItem()); | ||
} | ||
|
||
@Test | ||
void setRightItem(){ | ||
assertNull(builder.getRightItem()); | ||
builder.setRightItem(new ItemStack(Material.STICK)); | ||
assertNotNull(builder.getRightItem()); | ||
} | ||
|
||
@Test | ||
void setResultItem(){ | ||
assertNull(builder.getResultItem()); | ||
builder.setResultItem(new ItemStack(Material.STICK)); | ||
assertNotNull(builder.getResultItem()); | ||
} | ||
|
||
@Test | ||
void setXpCostPerCraft(){ | ||
assertEquals(1, builder.getXpCostPerCraft()); | ||
builder.setXpCostPerCraft(2); | ||
assertEquals(2, builder.getXpCostPerCraft()); | ||
} | ||
|
||
@Test | ||
void setExactCount(){ | ||
assertTrue(builder.isExactCount()); | ||
builder.setExactCount(false); | ||
assertFalse(builder.isExactCount()); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
107 changes: 107 additions & 0 deletions
107
src/test/java/xyz/alexcrea/cuanvil/api/CustomAnvilRecipeApiTests.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
package xyz.alexcrea.cuanvil.api; | ||
|
||
import org.bukkit.Material; | ||
import org.bukkit.event.inventory.InventoryType; | ||
import org.bukkit.inventory.AnvilInventory; | ||
import org.bukkit.inventory.Inventory; | ||
import org.bukkit.inventory.ItemStack; | ||
import org.jetbrains.annotations.Nullable; | ||
import org.junit.jupiter.api.BeforeEach; | ||
import org.junit.jupiter.api.Test; | ||
import org.mockbukkit.mockbukkit.entity.PlayerMock; | ||
import org.mockbukkit.mockbukkit.inventory.ItemStackMock; | ||
import xyz.alexcrea.cuanvil.config.ConfigHolder; | ||
import xyz.alexcrea.cuanvil.recipe.AnvilCustomRecipe; | ||
import xyz.alexcrea.cuanvil.tests.ConfigResetCustomAnvilTest; | ||
import xyz.alexcrea.cuanvil.util.AnvilFuseTestData; | ||
import xyz.alexcrea.cuanvil.util.AnvilFuseTestUtil; | ||
|
||
import static org.junit.jupiter.api.Assertions.*; | ||
|
||
public class CustomAnvilRecipeApiTests extends ConfigResetCustomAnvilTest { | ||
|
||
private AnvilInventory anvil; | ||
private PlayerMock player; | ||
|
||
@Override | ||
@BeforeEach | ||
public void setUp() { | ||
super.setUp(); | ||
// Mock used player & open anvil | ||
player = server.addPlayer(); | ||
|
||
Inventory anvil = server.createInventory(player, InventoryType.ANVIL); | ||
|
||
this.anvil = (AnvilInventory) anvil; | ||
player.openInventory(anvil); | ||
|
||
ConfigHolder.DEFAULT_CONFIG.getConfig().set("debug_log", true); | ||
ConfigHolder.DEFAULT_CONFIG.getConfig().set("debug_log_verbose", true); | ||
} | ||
|
||
@Test | ||
public void testBasicRecipe() { | ||
String recipeName = "stick_recipe"; | ||
ItemStack stick = new ItemStackMock(Material.STICK); | ||
|
||
AnvilFuseTestData nullResultData = new AnvilFuseTestData( | ||
stick, stick, | ||
null | ||
); | ||
|
||
AnvilFuseTestData legalResultData = new AnvilFuseTestData( | ||
stick, stick, | ||
null, stick, null, | ||
// TODO add expected price | ||
null, | ||
null, null | ||
); | ||
|
||
// Testing default conflict (no recipe exist) | ||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData); | ||
|
||
AnvilRecipeBuilder builder = new AnvilRecipeBuilder(recipeName); | ||
builder.setExactCount(true).setLeftItem(stick).setResultItem(stick).setXpCostPerCraft(2); | ||
|
||
// Add and test recipe | ||
assertTrue(builder.registerIfAbsent()); | ||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData); | ||
|
||
AnvilCustomRecipe recipe = getByName(recipeName); | ||
assertNotNull(recipe); | ||
|
||
// Remove recipe | ||
assertTrue(CustomAnvilRecipeApi.removeRecipe(recipe)); | ||
assertFalse(CustomAnvilRecipeApi.removeRecipe(recipe)); | ||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData); | ||
|
||
recipe = getByName(recipeName); | ||
assertNull(recipe); | ||
|
||
// Try to add deleted recipe with no override (should not add) | ||
assertFalse(CustomAnvilRecipeApi.addRecipe(builder, false)); | ||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData); | ||
|
||
recipe = getByName(recipeName); | ||
assertNull(recipe); | ||
|
||
// Try to add deleted recipe with override (should add) | ||
assertTrue(CustomAnvilRecipeApi.addRecipe(builder, true)); | ||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData); | ||
|
||
recipe = getByName(recipeName); | ||
assertNotNull(recipe); | ||
} | ||
|
||
@Nullable | ||
public static AnvilCustomRecipe getByName(String name){ | ||
for (AnvilCustomRecipe registeredRecipe : CustomAnvilRecipeApi.getRegisteredRecipes()) { | ||
if(registeredRecipe.getName().contentEquals(name)){ | ||
return registeredRecipe; | ||
} | ||
} | ||
|
||
return null; | ||
} | ||
|
||
} |
24 changes: 24 additions & 0 deletions
24
src/test/java/xyz/alexcrea/cuanvil/tests/SharedOnlyMockBukkit.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package xyz.alexcrea.cuanvil.tests; | ||
|
||
import org.junit.jupiter.api.AfterAll; | ||
import org.junit.jupiter.api.BeforeAll; | ||
import org.mockbukkit.mockbukkit.MockBukkit; | ||
import org.mockbukkit.mockbukkit.ServerMock; | ||
|
||
public class SharedOnlyMockBukkit { | ||
|
||
protected static ServerMock server; | ||
|
||
@BeforeAll | ||
public static void setUp() { | ||
// Start the mock server | ||
server = MockBukkit.mock(); | ||
} | ||
|
||
@AfterAll | ||
public static void tearDown() { | ||
// Stop the mock server | ||
MockBukkit.unmock(); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters