aboutsummaryrefslogtreecommitdiff
path: root/MundusTests/ServiceTests/Tiles/Crafting/CraftingControllerTests.cs
blob: 1594f0363036047f1928764ed84c7701d68ee27e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
namespace MundusTests.ServiceTests.Tiles.Crafting 
{
    using System.Linq;
    using Gtk;
    using Mundus.Data;
    using Mundus.Data.Tiles.Mobs;
    using Mundus.Data.Tiles.Presets;
    using Mundus.Data.Windows;
    using Mundus.Service.Tiles.Crafting;
    using NUnit.Framework;

    [TestFixture]
    public static class CraftingControllerTests 
    {
        [OneTimeSetUp]
        public static void SetUp() 
        {
            Application.Init();
            DataBaseContexts.CreateInstances();
            WI.CreateInstances();
            WI.WNewGame.OnBtnGenerateClicked(null, null);
        }

        [OneTimeTearDown]
        public static void TearDown() 
        {
            Application.Quit();
        }

        [Test]
        public static void PlayerSuccessfullyCrafts() 
        {
            var recipe = DataBaseContexts.CTContext.CraftingRecipes.First(x => x.ResultItem == "wooden_shovel");

            for(int i = 0; i < recipe.Count1; i++) 
            {
                MI.Player.Inventory.AppendToItems(MaterialPresets.GetALandStick());
            }
            CraftingController.CraftItemPlayer(recipe);

            Assert.Contains(recipe.ResultItem, MI.Player.Inventory.Items.Where(x => x != null).Select(x => x.stock_id).ToArray(), "Result item isn't added to player's inventory");
            Assert.AreEqual(1, MI.Player.Inventory.Items.Where(x => x != null).Count(), "Not all required items are removed from player's inventory");
        }
    }
}