public void Deserialize_AliasRecipesList_AllLowerCaseIDs() { const string serialized = "AliasRecipes:" + "\r\n" + "(" + "\r\n" + " ItemID:AliasAerogel7;" + "\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" + " ForceUnlockAtStart:NO;" + "\r\n" + " LinkedItemIDs:Silver,Gold;" + "\r\n" + " Path:Fabricator/Resources/BasicMaterials;" + ")," + "\r\n" + "(" + "\r\n" + " ItemID:DummyDisinfectedWater;" + "\r\n" + " DisplayName:\"Disinfected water\";" + "\r\n" + " Tooltip:\"Craft disinfected water from filtered water\";" + "\r\n" + " AmountCrafted:0;" + "\r\n" + " Ingredients:" + "\r\n" + " (" + "\r\n" + " ItemID:FilteredWater;" + "\r\n" + " Required:2;" + "\r\n" + " );" + "\r\n" + " LinkedItemIDs:DisinfectedWater;" + "\r\n" + " Path:Fabricator/Survival/Water;" + ")," + "\r\n" + "(" + "\r\n" + " ItemID:DummyDisinfectedWater2;" + "\r\n" + " DisplayName:\"Disinfected water\";" + "\r\n" + " Tooltip:\"Craft disinfected water from big filtered water\";" + "\r\n" + " AmountCrafted:0;" + "\r\n" + " Ingredients:" + "\r\n" + " (" + "\r\n" + " ItemID:BigFilteredWater;" + "\r\n" + " );" + "\r\n" + " LinkedItemIDs:DisinfectedWater,DisinfectedWater;" + "\r\n" + " Path:Fabricator/Survival/Water;" + ");" + "\r\n"; var recipeList = new CustomCraft2SML.Serialization.AliasRecipeList(); bool success = recipeList.FromString(serialized); Assert.IsTrue(success); Assert.AreEqual(3, recipeList.Count); }
public void Deserialize_AliasRecipesList_FullDetails() { const string serialized = "AliasRecipes:" + "\r\n" + "(" + "\r\n" + " ItemID:AliasAerogel2;" + "\r\n" + " DisplayName:\"Craft Aerogel\";" + "\r\n" + " Tooltip:\"Custom aerogel tooltip\";" + "\r\n" + " AmountCrafted:0;" + "\r\n" + " Ingredients:" + "\r\n" + " (" + "\r\n" + " ItemID:Titanium;" + "\r\n" + " Required:2;" + "\r\n" + " )," + "\r\n" + " (" + "\r\n" + " ItemID:Copper;" + "\r\n" + " Required:3;" + "\r\n" + " );" + "\r\n" + " LinkedItemIDs:Silver,Gold;" + "\r\n" + " Path:Fabricator/Resources/BasicMaterials;" + ")," + "\r\n" + "(" + "\r\n" + " ItemID:AliasAerogel3;" + "\r\n" + " DisplayName:\"Craft Aerogel\";" + "\r\n" + " Tooltip:\"Custom aerogel tooltip\";" + "\r\n" + " AmountCrafted:0;" + "\r\n" + " Ingredients:" + "\r\n" + " (" + "\r\n" + " ItemID:Titanium;" + "\r\n" + " Required:2;" + "\r\n" + " )," + "\r\n" + " (" + "\r\n" + " ItemID:Copper;" + "\r\n" + " Required:3;" + "\r\n" + " );" + "\r\n" + " LinkedItemIDs:Silver,Gold;" + "\r\n" + " Path:Fabricator/Resources/BasicMaterials;" + ");" + "\r\n"; var recipe = new CustomCraft2SML.Serialization.AliasRecipeList(); recipe.FromString(serialized); Assert.AreEqual("AliasAerogel2", recipe[0].ItemID); Assert.AreEqual("AliasAerogel3", recipe[1].ItemID); foreach (var r in recipe) { Assert.AreEqual(0, r.AmountCrafted); Assert.AreEqual(2, r.IngredientsCount); EmIngredient item0 = r.GetIngredient(0); Assert.AreEqual(TechType.Titanium.ToString(), item0.ItemID); Assert.AreEqual(2, item0.Required); EmIngredient item1 = r.GetIngredient(1); Assert.AreEqual(TechType.Copper.ToString(), item1.ItemID); Assert.AreEqual(3, item1.Required); Assert.AreEqual(2, r.LinkedItemsCount); Assert.AreEqual(TechType.Silver.ToString(), r.GetLinkedItem(0)); Assert.AreEqual(TechType.Gold.ToString(), r.GetLinkedItem(1)); Assert.AreEqual("Craft Aerogel", r.DisplayName); Assert.AreEqual("Custom aerogel tooltip", r.Tooltip); Assert.AreEqual("Fabricator/Resources/BasicMaterials", r.Path); } }