コード例 #1
0
        public void TryingToTakeAnItemWhenTheCollectionIsEmptyReturnsFalse()
        {
            // arrange
            var           sut = new PriorityCollection <IPriorityItem>();
            IPriorityItem retrievedItem;

            // act
            var result = sut.TryTake(out retrievedItem);

            // assert
            result.Should().BeFalse();
            retrievedItem.Should().BeNull();
        }
コード例 #2
0
        public void TakingAnItemFromTheCollectionCorrectlyDetachesItsEvent()
        {
            // arrange
            var itemDummy = PriorityItemHelper.CreatePriorityMock(1);

            var sut = new PriorityCollection <IPriorityItem>();

            sut.TryAdd(itemDummy.Object);

            IPriorityItem item;

            sut.TryTake(out item);

            // act
            itemDummy.Raise(t => t.PriorityChanged += null, new EventArgs());

            // assert
            sut.Count.Should().Be(0);
        }
コード例 #3
0
        public void TakingAnItemFromTheCollectionAlwaysReturnsTheItemWithTheHighestPriority()
        {
            // arrange
            var itemDummy           = PriorityItemHelper.CreatePriorityMock(1);
            var higherPriorityDummy = PriorityItemHelper.CreatePriorityMock(0);

            var sut = new PriorityCollection <IPriorityItem>();

            sut.TryAdd(itemDummy.Object);
            sut.TryAdd(higherPriorityDummy.Object);

            IPriorityItem retrievedItem;

            // act
            var result = sut.TryTake(out retrievedItem);

            // assert
            result.Should().BeTrue();
            retrievedItem.Should().Be(higherPriorityDummy.Object);
        }