Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using NUnit.Framework;
- namespace Inventory.Tests
- {
- [TestFixture]
- public class TestClass
- {
- private HeroInventory target;
- [SetUp]
- public void TestInitialization()
- {
- target = new HeroInventory();
- }
- [Test]
- public void CommonItemAdded()
- {
- IItem item = new CommonItem("Test sword", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- Type clazz = typeof(HeroInventory);
- var field =
- clazz.GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
- .FirstOrDefault(x => x.GetCustomAttributes(typeof(ItemAttribute)) != null);
- var reflectionItems = (Dictionary<string, IItem>)field.GetValue(this.target);
- Assert.AreEqual(1, reflectionItems.Count);
- }
- [Test]
- public void CommonItemsAdded()
- {
- IItem item = new CommonItem("Test sword", 10, 20, 30, 40, 50);
- IItem item2 = new CommonItem("Test axe", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- this.target.AddCommonItem(item2);
- Type clazz = typeof(HeroInventory);
- var field =
- clazz.GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
- .FirstOrDefault(x => x.GetCustomAttributes(typeof(ItemAttribute)) != null);
- var reflectionItems = (Dictionary<string, IItem>)field.GetValue(this.target);
- Assert.AreEqual(2, reflectionItems.Count);
- }
- [Test]
- public void RecipeItemAdded()
- {
- IRecipe recipe = new RecipeItem("Recipe", 10, 20, 30, 40, 50, new List<string>() { "Sword", "Axe" });
- this.target.AddRecipeItem(recipe);
- Type clazz = typeof(HeroInventory);
- var field =
- clazz.GetField("recipeItems", BindingFlags.NonPublic | BindingFlags.Instance);
- var reflectionItems = (Dictionary<string, IRecipe>)field.GetValue(this.target);
- Assert.AreEqual(1, reflectionItems.Count);
- }
- [Test]
- public void RecipeItemsAdded()
- {
- IRecipe recipe = new RecipeItem("Recipe", 10, 20, 30, 40, 50, new List<string>() { "Sword", "Axe" });
- IRecipe recipe2 = new RecipeItem("Recipe2", 10, 20, 30, 40, 50, new List<string>() { "Sword", "Axe" });
- this.target.AddRecipeItem(recipe);
- this.target.AddRecipeItem(recipe2);
- Type clazz = typeof(HeroInventory);
- var field =
- clazz.GetField("recipeItems", BindingFlags.NonPublic | BindingFlags.Instance);
- var reflectionItems = (Dictionary<string, IRecipe>)field.GetValue(this.target);
- Assert.AreEqual(2, reflectionItems.Count);
- }
- [Test]
- public void RecipeWithItemsAndRecipeRemains()
- {
- IItem item = new CommonItem("Sword", 10, 20, 30, 40, 50);
- IItem item2 = new CommonItem("Axe", 10, 20, 30, 40, 50);
- IRecipe recipe = new RecipeItem("Recipe", 10, 20, 30, 40, 50, new List<string>() { "Sword", "Axe" });
- this.target.AddRecipeItem(recipe);
- this.target.AddCommonItem(item);
- this.target.AddCommonItem(item2);
- Type clazz = typeof(HeroInventory);
- var recipeItems = clazz.GetField("recipeItems", BindingFlags.NonPublic | BindingFlags.Instance);
- var recipeItemsReflection = (Dictionary<string, IRecipe>)recipeItems.GetValue(this.target);
- var commonItems = clazz.GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
- .FirstOrDefault(x => x.GetCustomAttributes(typeof(ItemAttribute)) != null);
- var commonItemsReflection = (Dictionary<string, IItem>)commonItems.GetValue(this.target);
- Assert.AreEqual(1, commonItemsReflection.Count);
- Assert.AreEqual(1, recipeItemsReflection.Count);
- }
- [Test]
- public void RecipeWithAllNeededItems()
- {
- IItem item = new CommonItem("Sword", 10, 20, 30, 40, 50);
- IItem item2 = new CommonItem("Axe", 10, 20, 30, 40, 50);
- IRecipe recipe = new RecipeItem("Recipe", 10, 20, 30, 40, 50, new List<string>() { "Sword", "Axe" });
- IItem item3 = new CommonItem("Axe", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- this.target.AddCommonItem(item2);
- this.target.AddRecipeItem(recipe);
- this.target.AddCommonItem(item3);
- Type clazz = typeof(HeroInventory);
- var recipeItems = clazz.GetField("recipeItems", BindingFlags.NonPublic | BindingFlags.Instance);
- var recipeItemsReflection = (Dictionary<string, IRecipe>)recipeItems.GetValue(this.target);
- var commonItems = clazz.GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
- .FirstOrDefault(x => x.GetCustomAttributes(typeof(ItemAttribute)) != null);
- var commonItemsReflection = (Dictionary<string, IItem>)commonItems.GetValue(this.target);
- Assert.AreEqual(2, commonItemsReflection.Count);
- Assert.AreEqual(1, recipeItemsReflection.Count);
- }
- [Test]
- public void StrengthBonusGatheretFromItems()
- {
- IItem item = new CommonItem("Test sword", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- Assert.AreEqual(10, item.StrengthBonus);
- }
- [Test]
- public void AgilityBonusGatheretFromItems()
- {
- IItem item = new CommonItem("Test sword", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- Assert.AreEqual(20, item.AgilityBonus);
- }
- [Test]
- public void IntelligenceBonusGatheretFromItems()
- {
- IItem item = new CommonItem("Test sword", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- Assert.AreEqual(30, item.IntelligenceBonus);
- }
- [Test]
- public void HitPointsBonusGatheretFromItems()
- {
- IItem item = new CommonItem("Test sword", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- Assert.AreEqual(40, item.HitPointsBonus);
- }
- [Test]
- public void DamageBonusPointsBonusGatheretFromItems()
- {
- IItem item = new CommonItem("Test sword", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- Assert.AreEqual(50, item.DamageBonus);
- }
- [Test]
- public void NameGatheretFromItems()
- {
- IItem item = new CommonItem("Test sword", 10, 20, 30, 40, 50);
- this.target.AddCommonItem(item);
- Assert.AreEqual("Test sword", item.Name);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement