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(); }
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); }
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); }