public void ReducerCopiesArray() { var initialArray = new ImageBox[] { new ImageBox.Empty() }; var newArray = DeleteImageSlotReducer.Reduce(initialArray, new DeleteImageSlotAction(0)); Assert.That(!ReferenceEquals(initialArray, newArray), "Reducer did not produce new array object"); }
public void ReducerDeletesCorrectElementEndOfArray() { var initialArray = new ImageBox[] { new ImageBox.Empty(), new ImageBox.Empty(), new ImageBox.Empty(), new ImageBox.Empty(), new ImageBox.Empty() }; var newArray = DeleteImageSlotReducer.Reduce(initialArray, new DeleteImageSlotAction(4)); CheckElements(initialArray, newArray, 0, 0); CheckElements(initialArray, newArray, 1, 1); CheckElements(initialArray, newArray, 2, 2); CheckElements(initialArray, newArray, 3, 3); }
public void EmptyInitialArrayThrows() { var initialArray = new ImageBox[0]; Assert.Throws <ArgumentException>(() => DeleteImageSlotReducer.Reduce(initialArray, new DeleteImageSlotAction(0)), "Reducer did not throw when attempting to delete slot from empty array"); }
public void InvalidIndexThrows() { var initialArray = new ImageBox[] { new ImageBox.Empty() }; Assert.Throws <IndexOutOfRangeException>(() => DeleteImageSlotReducer.Reduce(initialArray, new DeleteImageSlotAction(2)), "Reducer did not throw when index was out of range"); }