refactoring UndoRedoStack, creating methods to make more readable the code
making 'redoWithNoPreviousUndoThrowException' test pass
refactoring UndoRedoStack
unit test for redo method 'redoLastCommandUndone', test fails
making the 'redoLastCommandUndone' test pass
unit test for redo method 'twoUndoOneRedoShouldReturnSecondCommandUndone', test pass
adding comments on 'twoUndoOneRedoShouldReturnSecondCommandUndone' test
unit test for redo method 'twoUndoTwoRedoShouldReturnFirstCommandUndone', test fails
making 'twoUndoTwoRedoShouldReturnFirstCommandUndone' test pass
refactoring UndoRedoStack
unit test for canUndoCommand method 'canUndoCommandShouldReturnFalseWhenNoCommands', test fails
unit test for canUndoCommand method 'canUndoCommandShouldReturnFalseWhenNoCommands', test fails
refactoring 'canUndoCommandShouldReturnFalseWhenNoCommands' after test passed
unit test for canUndoCommand method 'canUndoCommandShouldReturnTrueWhenCommandsBeenUsed', test pass
unit test for canRedoCommand method 'canRedoCommandShouldReturnFalseWhenNoCommandsBeenUndone', test fails
making 'canRedoCommandShouldReturnFalseWhenNoCommandsBeenUndone' test pass
refacoring 'canRedoCommandShouldReturnFalseWhenNoCommandsBeenUndone'