diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 839d647..55a9c77 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,5 +1,6 @@ eclipse.preferences.version=1 encoding//src/main/java=UTF-8 encoding//src/main/resources=UTF-8 +encoding//src/main/resources/locales=UTF-8 encoding//src/test/java=UTF-8 encoding/=UTF-8 diff --git a/src/main/java/world/bentobox/greenhouses/data/adapters/BiomeRecipeAdapter.java b/src/main/java/world/bentobox/greenhouses/data/adapters/BiomeRecipeAdapter.java index 78a8aba..461292d 100644 --- a/src/main/java/world/bentobox/greenhouses/data/adapters/BiomeRecipeAdapter.java +++ b/src/main/java/world/bentobox/greenhouses/data/adapters/BiomeRecipeAdapter.java @@ -12,11 +12,17 @@ public class BiomeRecipeAdapter implements AdapterInterface @Override public BiomeRecipe deserialize(Object object) { + if (object instanceof String && ((String)object).equals("null")) { + return null; + } return RecipeManager.getBiomeRecipies((String)object).orElse(null); } @Override public String serialize(Object object) { + if (object == null) { + return "null"; + } return ((BiomeRecipe)object).getName(); } diff --git a/src/main/java/world/bentobox/greenhouses/data/adapters/RectangleAdapter.java b/src/main/java/world/bentobox/greenhouses/data/adapters/RectangleAdapter.java index 7fa42c3..24cfac0 100644 --- a/src/main/java/world/bentobox/greenhouses/data/adapters/RectangleAdapter.java +++ b/src/main/java/world/bentobox/greenhouses/data/adapters/RectangleAdapter.java @@ -13,9 +13,11 @@ public class RectangleAdapter implements AdapterInterface { @Override public Rectangle deserialize(Object object) { if (object instanceof String) { - String[] s = ((String)object).split(","); - if (s.length == 4) { - return new Rectangle(Integer.valueOf(s[0]), Integer.valueOf(s[1]), Integer.valueOf(s[2]), Integer.valueOf(s[3])); + if (!((String)object).equals("null")) { + String[] s = ((String)object).split(","); + if (s.length == 4) { + return new Rectangle(Integer.valueOf(s[0]), Integer.valueOf(s[1]), Integer.valueOf(s[2]), Integer.valueOf(s[3])); + } } } return null; @@ -24,7 +26,7 @@ public class RectangleAdapter implements AdapterInterface { @Override public String serialize(Object object) { Rectangle r = (Rectangle)object; - return r == null ? "" : r.x + ","+ r.y + "," + r.width + "," + r.height; + return r == null ? "null" : r.x + ","+ r.y + "," + r.width + "," + r.height; } } diff --git a/src/test/java/world/bentobox/greenhouses/data/adapters/BiomeRecipeAdapterTest.java b/src/test/java/world/bentobox/greenhouses/data/adapters/BiomeRecipeAdapterTest.java new file mode 100644 index 0000000..5f57f9b --- /dev/null +++ b/src/test/java/world/bentobox/greenhouses/data/adapters/BiomeRecipeAdapterTest.java @@ -0,0 +1,91 @@ +/** + * + */ +package world.bentobox.greenhouses.data.adapters; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.Optional; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import world.bentobox.greenhouses.greenhouse.BiomeRecipe; +import world.bentobox.greenhouses.managers.RecipeManager; + +/** + * @author tastybento + * + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest( {RecipeManager.class} ) +public class BiomeRecipeAdapterTest { + + private BiomeRecipeAdapter bra; + private BiomeRecipe recipe; + + /** + * @throws java.lang.Exception + */ + @Before + public void setUp() throws Exception { + bra = new BiomeRecipeAdapter(); + + PowerMockito.mockStatic(RecipeManager.class); + recipe = mock(BiomeRecipe.class); + Optional optionalRecipe = Optional.of(recipe); + when(RecipeManager.getBiomeRecipies(Mockito.eq("recipe_name"))).thenReturn(optionalRecipe); + when(RecipeManager.getBiomeRecipies(Mockito.eq("nothing"))).thenReturn(Optional.empty()); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.BiomeRecipeAdapter#deserialize(java.lang.Object)}. + */ + @Test + public void testDeserialize() { + assertEquals(recipe, bra.deserialize("recipe_name")); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.BiomeRecipeAdapter#deserialize(java.lang.Object)}. + */ + @Test + public void testDeserializeNoRecipe() { + assertNull(bra.deserialize("nothing")); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.BiomeRecipeAdapter#deserialize(java.lang.Object)}. + */ + @Test + public void testDeserializeNull() { + assertNull(bra.deserialize("null")); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.BiomeRecipeAdapter#serialize(java.lang.Object)}. + */ + @Test + public void testSerialize() { + BiomeRecipe br = mock(BiomeRecipe.class); + when(br.getName()).thenReturn("recipe_name"); + assertEquals("recipe_name", bra.serialize(br)); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.BiomeRecipeAdapter#serialize(java.lang.Object)}. + */ + @Test + public void testSerializeNull() { + assertEquals("null", bra.serialize(null)); + } + +} diff --git a/src/test/java/world/bentobox/greenhouses/data/adapters/RectangleAdapterTest.java b/src/test/java/world/bentobox/greenhouses/data/adapters/RectangleAdapterTest.java new file mode 100644 index 0000000..e9b8ccf --- /dev/null +++ b/src/test/java/world/bentobox/greenhouses/data/adapters/RectangleAdapterTest.java @@ -0,0 +1,62 @@ +/** + * + */ +package world.bentobox.greenhouses.data.adapters; + +import static org.junit.Assert.*; + +import java.awt.Rectangle; + +import org.junit.Before; +import org.junit.Test; + +/** + * @author tastybento + * + */ +public class RectangleAdapterTest { + + private RectangleAdapter ra; + + /** + * @throws java.lang.Exception + */ + @Before + public void setUp() throws Exception { + ra = new RectangleAdapter(); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.RectangleAdapter#Serialize(java.lang.Object)}. + */ + @Test + public void testSerialize() { + Rectangle rectangle = new Rectangle(10,20,30,40);; + assertEquals("10,20,30,40", ra.serialize(rectangle)); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.RectangleAdapter#serialize(java.lang.Object)}. + */ + @Test + public void testSerializeNull() { + assertEquals("null", ra.serialize(null)); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.RectangleAdapter#serialize(java.lang.Object)}. + */ + @Test + public void testDeserialize() { + Rectangle rectangle = new Rectangle(10,20,30,40);; + assertEquals(rectangle, ra.deserialize("10,20,30,40")); + } + + /** + * Test method for {@link world.bentobox.greenhouses.data.adapters.RectangleAdapter#deserialize(java.lang.Object)}. + */ + @Test + public void testDeserializeNull() { + assertNull(ra.deserialize("null")); + } +}