public void CookTest() { // Arrange BaseItem fleshItem = createTestItem(); FleshCategory fleshCategory = (FleshCategory)fleshItem.GetItemCategoryByClass(typeof(FleshCategory)); float expectedHealthEffect1 = fleshCategory.HealthEffect + 0.25f; float expectedHungerGain1 = fleshCategory.HungerGain * 1.25f; float expectedHealthEffect2 = expectedHealthEffect1 - 0.25f; float expectedHungerGain2 = expectedHungerGain1 * 0.5f; // Act fleshCategory.Cook(); // Check Assert.AreEqual(expectedHealthEffect1, fleshCategory.HealthEffect); Assert.AreEqual(expectedHungerGain1, fleshCategory.HungerGain); Assert.AreEqual("Cooked Sample Flesh", fleshItem.ItemName); Assert.True(fleshItem.Types.Contains(ItemTypes.Edible)); Assert.AreEqual(1, fleshItem.Types.Count); Assert.AreEqual("modifiedFlesh.png", fleshItem.InventorySprite); Assert.AreEqual("modifiedFleshModel.png", fleshItem.WorldModel); // Check the second time it cooks that it becomes burnt fleshCategory.Cook(); Assert.AreEqual(expectedHealthEffect2, fleshCategory.HealthEffect); Assert.AreEqual(expectedHungerGain2, fleshCategory.HungerGain); Assert.AreEqual("Burnt Sample Flesh", fleshItem.ItemName); Assert.True(fleshItem.Types.Contains(ItemTypes.Fuel)); Assert.AreEqual(1, fleshItem.Types.Count); }