public void IndexOutOfRangeIsCheckedCorrectly() { // arrange var itemDummy = PriorityItemHelper.CreatePriorityMock(1); var higherPriorityDummy = PriorityItemHelper.CreatePriorityMock(0); var arr = new IPriorityItem[1]; var sut = new PriorityCollection <IPriorityItem>(); sut.TryAdd(itemDummy.Object); sut.TryAdd(higherPriorityDummy.Object); var act = new Action(() => sut.CopyTo(arr, -1)); // act // assert act.Should().Throw <ArgumentOutOfRangeException>(); }
public void ArraySizeIsCheckedCorrectlyForCopying() { // arrange var itemDummy = PriorityItemHelper.CreatePriorityMock(1); var higherPriorityDummy = PriorityItemHelper.CreatePriorityMock(0); var arr = new IPriorityItem[1]; var sut = new PriorityCollection <IPriorityItem>(); sut.TryAdd(itemDummy.Object); sut.TryAdd(higherPriorityDummy.Object); var act = new Action(() => sut.CopyTo(arr, 0)); // act // assert act.Should().Throw <ArgumentException>("Target array is too small to copy items"); }
public void CopyingToArrayWorksCorrectly(int startIndex) { // arrange var itemDummy = PriorityItemHelper.CreatePriorityMock(1); var higherPriorityDummy = PriorityItemHelper.CreatePriorityMock(0); var arr = new IPriorityItem[3]; var sut = new PriorityCollection <IPriorityItem>(); sut.TryAdd(itemDummy.Object); sut.TryAdd(higherPriorityDummy.Object); // act sut.CopyTo(arr, startIndex); // assert for (var r = 0; r < startIndex; r++) { arr[r].Should().BeNull(); } arr[startIndex].Should().Be(higherPriorityDummy.Object); arr[startIndex + 1].Should().Be(itemDummy.Object); }