def has_entry(*options)
case options.length
when 1
case options[0]
when Hash
case options[0].length
when 0
raise ArgumentError, 'Argument has no entries.'
when 1
key, value = options[0].first
else
raise ArgumentError, 'Argument has multiple entries. Use Mocha::ParameterMatchers#has_entries instead.'
end
else
raise ArgumentError, 'Argument is not a Hash.'
end
when 2
key, value = options
else
raise ArgumentError, 'Too many arguments; use either a single argument (must be a Hash) or two arguments (a key and a value).'
end
HasEntry.new(key, value)
end