public void Deserialize_AliasRecipe_FullDetails(string itemName, string displayName, string tooltip, string ingredient, string linkedItems) { string serialized = "AliasRecipe:" + "\r\n" + "(" + "\r\n" + $" ItemID:{itemName};" + "\r\n" + $" DisplayName:\"{displayName}\";" + "\r\n" + $" Tooltip:\"{tooltip}\";" + "\r\n" + " AmountCrafted:0;" + "\r\n" + " Ingredients:" + "\r\n" + " (" + "\r\n" + $" ItemID:{ingredient};" + "\r\n" + " Required:2;" + "\r\n" + " )," + "\r\n" + " (" + "\r\n" + " ItemID:Copper;" + "\r\n" + " Required:3;" + "\r\n" + " );" + "\r\n" + $" LinkedItemIDs:{linkedItems};" + "\r\n" + " Path:Fabricator/Resources/BasicMaterials;" + "\r\n" + ");" + "\r\n"; var recipe = new AliasRecipe(); recipe.FromString(serialized); Assert.AreEqual(itemName, recipe.ItemID); Assert.AreEqual(0, recipe.AmountCrafted); Assert.AreEqual(2, recipe.IngredientsCount); EmIngredient item0 = recipe.GetIngredient(0); Assert.AreEqual(TechType.Titanium.ToString(), item0.ItemID); Assert.AreEqual(2, item0.amount); EmIngredient item1 = recipe.GetIngredient(1); Assert.AreEqual(TechType.Copper.ToString(), item1.ItemID); Assert.AreEqual(3, item1.amount); Assert.AreEqual(2, recipe.LinkedItemsCount); Assert.AreEqual(TechType.Silver.ToString(), recipe.GetLinkedItem(0)); Assert.AreEqual(TechType.Gold.ToString(), recipe.GetLinkedItem(1)); Assert.AreEqual("Custom display name", recipe.DisplayName); Assert.AreEqual("Custom tooltip", recipe.Tooltip); Assert.AreEqual("Fabricator/Resources/BasicMaterials", recipe.Path); }
public void Deserialize_AliasRecipe_NoAmounts_DefaultTo1() { const string serialized = "AliasRecipe:" + "\r\n" + "(" + "\r\n" + " ItemID:AliasAerogel4;" + "\r\n" + " DisplayName:\"Craft Aerogel\";" + "\r\n" + " Tooltip:\"Custom aerogel tooltip\";" + "\r\n" + " Ingredients:" + "\r\n" + " (" + "\r\n" + " ItemID:Titanium;" + "\r\n" + " )," + "\r\n" + " (" + "\r\n" + " ItemID:Copper;" + "\r\n" + " );" + "\r\n" + " LinkedItemIDs:Silver,Gold;" + "\r\n" + " ForceUnlockAtStart: YES;" + "\r\n" + " Path:Fabricator/Resources/BasicMaterials;" + "\r\n" + ");" + "\r\n"; var recipe = new AliasRecipe(); recipe.FromString(serialized); Assert.AreEqual("AliasAerogel4", recipe.ItemID); Assert.AreEqual(false, recipe.AmountCrafted.HasValue); Assert.AreEqual(2, recipe.IngredientsCount); var item0 = recipe.GetIngredient(0); Assert.AreEqual(TechType.Titanium.ToString(), item0.ItemID); Assert.AreEqual(1, item0.Required); var item1 = recipe.GetIngredient(1); Assert.AreEqual(TechType.Copper.ToString(), item1.ItemID); Assert.AreEqual(1, item1.Required); Assert.AreEqual(2, recipe.LinkedItemsCount); Assert.AreEqual(TechType.Silver.ToString(), recipe.GetLinkedItem(0)); Assert.AreEqual(TechType.Gold.ToString(), recipe.GetLinkedItem(1)); Assert.AreEqual("Craft Aerogel", recipe.DisplayName); Assert.AreEqual("Custom aerogel tooltip", recipe.Tooltip); Assert.AreEqual(true, recipe.ForceUnlockAtStart); Assert.AreEqual("Fabricator/Resources/BasicMaterials", recipe.Path); }