Iteration 1: Red

- added a test to check that after creation and with no parameter the
stack is empty and has a default capacity
Iteration 1: Green

- created class StackOfNonNegativeIntegers
- added getSize() and getCapacity() methods
- added DEFAULT_CAPACITY constant
Iteration 2: Red

- added a test to chack that after creation with a capacity as
parameter, the stack has the given capacity and is empty
Iteration 2: Green

- added a capacity field
- added a default constructor that initializes the capacity field to
DEFAULT_CAPACITY
- added a constructor with parameter that initilaize the capacity field
with a given capacity
- updated getCapacity method so it returns the value stored in capacity
field
Iteration 3: Red

- added a test to check that calling pop on an empty stack raises
EmptyStackException
Iteration 3: Green

- added a pop method that raises EmptyStackException
- created EmptyStackException exception class
Iteration 4: Red

- added a test to check that calling push with a negative integer on a
non full stack raises
NegativeIntegerException
Iteration 4: Green

- added a push method that raises NegativeIntegerException
- created NegativeIntegerException exception class
Iteration 5: Red

- added a test to check that calling push with a non negative integer on
a non full stack increases stack size
Iteration 5: Green

- added a size field
- updated push so it increases the value stored in size field when
parameter is not negative
- updated getSize so it returns the value stored in size field
Iteration 5: Refactor

- extracted method from push
Iteration 6: Red

Iteration 3: Red

- added a test to check that calling view on an empty stack raises
EmptyStackException
Iteration 6: Green

- added a view method that raises EmptyStackException
Iteration 7: Red

- added a test to check that calling push with a non negative integer
element on non full stack and then calling pop let stack size unchanged
and return the element
Iteration 7: Green

- added a topOfStack field
- updated push and pop methods to take top of stack into account
Iteration 8: Red

- added a test to check that calling push with a non negative integer
element on non full stack and then calling view increases stack size 
and returns the element
Iteration 8: Green

- updated view method to take top of stack into account
Iteration 8: Refactor

- extracted method from pop and view methods
Iteration 9: Red

- added a test to check that calling pop several times return pushed
elements in reverse order
Iteration 9: Green

- replaced the topOfStack field by a elements field to store all
elements and not only the top of stack
- updated constructors to properly initialize elements field
- updated push/pop/view methods to take elements field into account