示例#1
0
        public void QueueOfQueueEquipmentMustNotMove()
        {
            var testee = new QueueEquipment();

            testee.Initialize(0, _module);
            _module.AddEquipment(testee);

            _module.AddItem(new SimulatedItem());
            _module.Takt();

            testee.ItemPassedCount.Should().Be(1);
            _module.GetItemByPosition(0).Should().NotBeNull();
            _module.GetItemByPosition(1).Should().BeNull();
        }
示例#2
0
        public void GivenNotActive_QueueMustNotRelease()
        {
            var testee = new QueueEquipment();

            testee.Initialize(0, _module);
            _module.AddEquipment(testee);

            _module.AddItem(new SimulatedItem());
            _module.Takt();

            testee.IsActive = false;

            testee.ReleaseItem();

            testee.QueueList.Items.Should().HaveCount(1);
        }
示例#3
0
        public void QueueEquipmentTests()
        {
            var testee = new QueueEquipment();

            testee.Initialize(0, _module);
            testee.Capacity = 5;
            _module.AddEquipment(testee);
            var item1 = new SimulatedItem {
                ItemId = 1
            };
            var item2 = new SimulatedItem {
                ItemId = 2
            };
            var item3 = new SimulatedItem {
                ItemId = 3
            };

            // add 3 items to slot 0
            _module.AddItem(item1);
            _module.AddItem(item2);
            _module.AddItem(item3);

            testee.ItemPassedCount.Should().Be(3);
            testee.QueueList.Items.Should().HaveCount(3);
            _module.GetItemByPosition(0).Should().BeOfType(typeof(SimulatedItemList));

            // release 1 item (move to slot 1)
            testee.ReleaseItem();

            testee.QueueList.Items.Should().HaveCount(2);
            _module.GetItemByPosition(1).Should().Be(item1, "item1 was added to the queue first and now released");

            // relase all other items (slot 0 is empty now)
            testee.ReleaseItem();
            testee.ReleaseItem();

            testee.QueueList.Items.Should().HaveCount(0);
            _module.GetItemByPosition(0).Should().BeNull("there is not item in the queue anymore");

            // further release must do nothing
            var action = new Action(testee.ReleaseItem);

            action.ShouldNotThrow("there is no more item to release");
        }