class Sus::RespondTo::WithParameters

def call(assertions, subject)

def call(assertions, subject)
	parameters = @parameters.dup
	
	assertions.nested(self) do |assertions|
		expected_name = parameters.shift
		
		subject.each do |type, name|
			case type
			when :req
				assertions.assert(name == expected_name, "parameter #{expected_name} is required, but was #{name}")
			when :opt
				break if expected_name.nil?
				assertions.assert(name == expected_name, "parameter #{expected_name} is specified, but was #{name}")
			else
				break
			end
		end
	end
end

def initialize(parameters)

@parameter [Array(Symbol)] List of method parameters in the expected order, must include at least all required parameters but can also list optional parameters.
def initialize(parameters)
	@parameters = parameters
end