     @returns = undefined
     @called = false
     
+  # TODO: add description
   matches: (method_name, args...) ->
     (@method_name == method_name) and
       ( @args.length == args.length ) and




class Mock

  constructor: ->
    @method_calls = []
    @current_signature = undefined
    @state = undefined
  
  expects: (method_name) ->
    @_check_expects_usage(method_name)
    @current_signature = new MethodSignature(method_name)


    

# TODO: add description
mock = (fn) ->
  mocks = ( new Mock() for i in [1..5] )
  fn.apply(undefined, mocks)
  # TODO: wrap in try/catch: we want to capture all errors for all mocks.
  mock.check() for mock in mocks


