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

class MethodSignature
  
  constructor: (method_name) ->

    @_throw_returns_must_be_after_expects_or_args() unless @_state_in("expects", "args")
    @_throw_returns_usage() unless value?
      
  # TODO: rename to _check_if_duplicate_signature
  _check_for_duplicate_signature: (method_name, args...) ->
    @_throw_duplicate_expectation("#{method_name}(#{args})") if @_find_signature(method_name, args...)
        
