#- Copyright (c) 2008-2020 James Grenning --- All rights reserved
#- For exclusive use by participants in 
#- Wingman Software training courses.
#- Cannot be used by attendees to train others without 
#- written permission.
#- www.wingman-sw.com james@wingman-sw.com


Objectives
----------
Use a dynamic spy to check printed output.

General Instructions
--------------------
DO NOT WRITE CODE UNLESS THERE IS A FAILING TEST CASE 
REQUIRING THAT CODE.

You know the drill.

Requirements
------------
Teach the CircularBuffer to print itself. Printing is 
non-destructive; the contents of the buffer are not 
changed by printing.

Our test strategy
-----------------
In the code base you will find our own printf function 
(called FormatOutput).  It is accessible through a 
pointer so we can override it and capture output.  
Use the provided FormatOutputSpy to capture printed output. 

Exercise Instructions
---------------------
Review how FormatOutput works by looking at its tests.
    see mocks/FormatOutputSpyTest.cpp

Look at CircularBufferPrintTest.cpp.  The rest of the 
exercise instructions are there.  You have to write the 
test bodies.

Test List
---------
Print under various conditions:
    * empty
    * full, but not yet wrapped
    * wrapped
    * test that the buffer is not modified by printing


