public void Should_add_items_to_Stack_up_to_Capacity() { //arrange var items = new[] {1, 2, 3, 4, 5}; var stack = new ConcurrentFixedSizeStack<int>(5); //act Assert.Equal(0, stack.Count); Assert.Equal(items.Length, stack.Capacity); foreach (var item in items) { stack.Push(item); Assert.Equal(item, stack.Peek()); } //assert Assert.Equal(stack.Capacity, stack.Count); var length = stack.Capacity - 1; for (var i = 0; i < stack.Capacity; i++, length--) { var stackItem = stack.Pop(); Assert.Equal(items[length], stackItem); } }
public void Should_get_array_of_all_items_when_Stack_is_at_Capacity() { //arrange var items = new[] { 1, 2, 3, 4, 5 }; var stack = new ConcurrentFixedSizeStack<int>(5); //act Assert.AreEqual(0, stack.Count); Assert.AreEqual(items.Length, stack.Capacity); foreach (var item in items) { stack.Push(item); Assert.AreEqual(item, stack.Peek()); } var array = stack.ToArray(); //assert Assert.AreEqual(stack.Capacity, stack.Count, "Stack should STILL be full to capacity"); Assert.AreEqual(array.Length, stack.Count, "Resultant array and original Stack should be of same size"); var arrCount = items.Length - 1; foreach (var i in array) { Assert.AreEqual(items[arrCount], i); arrCount--; } }
public void Should_add_items_to_Stack_is_over_Capacity() { //arrange var items = new[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; var stack = new ConcurrentFixedSizeStack<int>(5); //act Assert.Equal(0, stack.Count); foreach (var item in items) { stack.Push(item); Assert.Equal(item, stack.Peek()); } //assert Assert.Equal(stack.Capacity, stack.Count); // "Stack should be full to capacity" var length = items.Length - 1; for (var i = 0; i < stack.Capacity; i++, length--) { var stackItem = stack.Pop(); Assert.Equal(items[length], stackItem); } Assert.True(length == items.Length/2 - 1); }