public void ConditionedItem_Use_LockedAfter()
        {
            var item    = new CItemTest("teste", 10, 2, null, null);
            var effects = item.Use();

            Assert.True(item.IsLocked());
        }
        public void ConditionedItem_Constructor()
        {
            var item = new CItemTest("test", 10, 2, null, null);

            Assert.False(item.IsLocked());
            Assert.True(item.Id == "test");
            Assert.AreEqual(0, item.Requirements.Count);
        }
        public void ConditionedItem_Use_GetEffects()
        {
            var reqs         = Condition.Group("test1", "test2");
            var post         = Condition.Group("test1", "!test2");
            var item         = new CItemTest("teste", 10, 2, null, post);
            var afterEffects = item.Use();

            Assert.False(Condition.CheckRequirements(reqs, afterEffects));
        }
        public void ConditionedItem_Ticks()
        {
            var item = new CItemTest("teste", 10, 2, null, null);

            item.Use();
            item.Tick();
            Assert.True(item.IsLocked());
            item.Tick();
            Assert.False(item.IsLocked());
        }
        public void SmartBag_Constructor()
        {
            // Empty constructor
            var sb = new SmartBag <CItemTest>();

            Assert.True(sb.Items.Count == 0);
            Assert.True(sb.State.Count == 0);
            // Sample data constructor
            var state    = Condition.Group("test1", "!test2");
            var item     = new CItemTest("test", 10, 2, null, null);
            var allItems = new List <CItemTest>();

            allItems.Add(item);
            sb = new SmartBag <CItemTest>(allItems, state);
            Assert.AreEqual(sb.Items.Count, 1);
            Assert.AreEqual(sb.State.Count, 2);
        }
        public void SmartBag_GetAndSetCondition()
        {
            // Sample data
            var post     = Condition.Group("test1", "!test2");
            var item     = new CItemTest("test", 10, 2, null, post);
            var allItems = new List <CItemTest>();

            allItems.Add(item);
            var sb = new SmartBag <CItemTest>(allItems, post);

            // new condition through set
            sb.SetCondition(new Condition("test4"));
            Assert.True(sb.State[2].Status);
            // update condition
            sb.SetCondition(new Condition("!test1"));
            Assert.False(sb.State[0].Status);
            // get existing condition
            var res = sb.GetCondition("test2");

            Assert.False(res.Status);
            // attempt to get non-existing condition
            res = sb.GetCondition("test5");
            Assert.IsNull(res);
        }