### Question:
ShapelessRecipe extends Recipe { public ShapelessRecipe(RecipeBuilder builder) { super(builder.result, builder.plugin, builder.includeData); this.ingredients = builder.ingredients; } ShapelessRecipe(RecipeBuilder builder); @Override List<Material> getIngredients(); @Override Recipe clone(); @Override RecipeBuilder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void testShapelessRecipe() { ItemStack solid = new ItemStack(BlockMaterial.SOLID_BLUE, 1); RecipeBuilder builder = new RecipeBuilder().setResult(solid).addIngredient(BlockMaterial.UNBREAKABLE); ShapelessRecipe recipe = builder.buildShapelessRecipe(); List<Material> single = Arrays.asList((Material) BlockMaterial.UNBREAKABLE); List<Material> multiple = Arrays.asList(BlockMaterial.UNBREAKABLE, (Material) BlockMaterial.UNBREAKABLE); SimpleRecipeManager manager = new SimpleRecipeManager(); manager.register(recipe); assertNotNull(manager.matchShapelessRecipe(single)); assertNull(manager.matchShapelessRecipe(multiple)); }