Best Webmock_ruby code snippet using WebMock.Matchers.initialize
webmock.rbi
Source:webmock.rbi  
...45class WebMock::Deprecation46  def self.warning(message); end47end48class WebMock::NetConnectNotAllowedError < Exception49  def initialize(request_signature); end50end51module WebMock::Util52end53class WebMock::Util::QueryMapper54  def self.collect_query_hash(query_array, empty_accumulator, options); end55  def self.collect_query_parts(query); end56  def self.dehash(hash); end57  def self.fill_accumulator_for_dot(accumulator, key, value); end58  def self.fill_accumulator_for_flat(accumulator, key, value); end59  def self.fill_accumulator_for_flat_array(accumulator, key, value); end60  def self.fill_accumulator_for_subscript(accumulator, key, value); end61  def self.normalize_query_hash(query_hash, empty_accumulator, options); end62  def self.query_to_values(query, options = nil); end63  def self.to_query(parent, value, options = nil); end64  def self.values_to_query(new_query_values, options = nil); end65end66class WebMock::Util::URI67  def self.encode_unsafe_chars_in_userinfo(userinfo); end68  def self.heuristic_parse(uri); end69  def self.is_uri_localhost?(uri); end70  def self.normalize_uri(uri); end71  def self.sort_query_values(query_values); end72  def self.strip_default_port_from_uri_string(uri_string); end73  def self.uris_encoded_and_unencoded(uris); end74  def self.uris_with_inferred_port_and_without(uris); end75  def self.uris_with_scheme_and_without(uris); end76  def self.uris_with_trailing_slash_and_without(uris); end77  def self.variations_of_uri_as_strings(uri_object, only_with_scheme: nil); end78end79module WebMock::Util::URI::CharacterClasses80end81class WebMock::Util::Headers82  def self.basic_auth_header(*credentials); end83  def self.decode_userinfo_from_header(header); end84  def self.normalize_headers(headers); end85  def self.pp_headers_string(headers); end86  def self.sorted_headers_string(headers); end87end88class WebMock::Util::HashCounter89  def each(&block); end90  def get(key); end91  def hash; end92  def hash=(arg0); end93  def initialize; end94  def put(key, num = nil); end95  def select(&block); end96end97class WebMock::Util::HashKeysStringifier98  def self.stringify_keys!(arg, options = nil); end99end100class WebMock::Util::ValuesStringifier101  def self.stringify_values(value); end102end103class WebMock::Util::JSON104  def self.convert_json_to_yaml(json); end105  def self.parse(json); end106  def self.unescape(str); end107end108class WebMock::Util::JSON::ParseError < StandardError109end110class WebMock::VersionChecker111  def check_version!; end112  def colorize(text, color_code); end113  def compare_version; end114  def initialize(library_name, library_version, min_patch_level, max_minor_version = nil, unsupported_versions = nil); end115  def parse_version(version); end116  def too_high?; end117  def too_low?; end118  def unsupported_version?; end119  def version_requirement; end120  def warn_about_too_high; end121  def warn_about_too_low; end122  def warn_about_unsupported_version; end123  def warn_in_red(text); end124end125class WebMock::HashValidator126  def initialize(hash); end127  def validate_keys(*valid_keys); end128end129module WebMock::Matchers130  def have_been_made; end131  def have_been_requested; end132  def have_not_been_made; end133  def have_not_requested(method, uri); end134  def have_requested(method, uri); end135end136class WebMock::Matchers::HashArgumentMatcher137  def ==(_actual, &block); end138  def initialize(expected); end139  def self.from_rspec_matcher(matcher); end140end141class WebMock::Matchers::HashExcludingMatcher < WebMock::Matchers::HashArgumentMatcher142  def ==(actual); end143  def inspect; end144end145class WebMock::Matchers::HashIncludingMatcher < WebMock::Matchers::HashArgumentMatcher146  def ==(actual); end147  def inspect; end148end149class WebMock::Matchers::AnyArgMatcher150  def ==(other); end151  def initialize(ignore); end152end153module WebMock::RSpecMatcherDetector154  def rSpecHashExcludingMatcher?(matcher); end155  def rSpecHashIncludingMatcher?(matcher); end156end157class WebMock::RequestPattern158  def assign_options(options); end159  def body_pattern; end160  def create_uri_pattern(uri); end161  def headers_pattern; end162  def initialize(method, uri, options = nil); end163  def matches?(request_signature); end164  def method_pattern; end165  def set_basic_auth_as_headers!(options); end166  def to_s; end167  def uri_pattern; end168  def validate_basic_auth!(basic_auth); end169  def with(options = nil, &block); end170end171class WebMock::MethodPattern172  def initialize(pattern); end173  def matches?(method); end174  def to_s; end175end176class WebMock::URIPattern177  def add_query_params(query_params); end178  def initialize(pattern); end179  def matches?(uri); end180  def pattern_inspect; end181  def query_params_matches?(uri); end182  def to_s; end183  include WebMock::RSpecMatcherDetector184end185class WebMock::URICallablePattern < WebMock::URIPattern186  def pattern_matches?(uri); end187end188class WebMock::URIRegexpPattern < WebMock::URIPattern189  def pattern_matches?(uri); end190end191class WebMock::URIAddressablePattern < WebMock::URIPattern192  def add_query_params(query_params); end193  def matches_with_variations?(uri); end194  def pattern_inspect; end195  def pattern_matches?(uri); end196  def template_matches_uri?(template, uri); end197end198class WebMock::URIStringPattern < WebMock::URIPattern199  def add_query_params(query_params); end200  def pattern_inspect; end201  def pattern_matches?(uri); end202end203class WebMock::BodyPattern204  def assert_non_multipart_body(content_type); end205  def body_as_hash(body, content_type); end206  def body_format(content_type); end207  def empty_string?(string); end208  def initialize(pattern); end209  def matches?(body, content_type = nil); end210  def matching_body_hashes?(query_parameters, pattern, content_type); end211  def normalize_hash(hash); end212  def pattern; end213  def to_s; end214  def url_encoded_body?(content_type); end215  include WebMock::RSpecMatcherDetector216end217class WebMock::HeadersPattern218  def empty_headers?(headers); end219  def initialize(pattern); end220  def matches?(headers); end221  def pp_to_s; end222  def to_s; end223end224class WebMock::RequestSignature225  def ==(other); end226  def assign_options(options); end227  def body; end228  def body=(arg0); end229  def eql?(other); end230  def hash; end231  def headers; end232  def headers=(headers); end233  def initialize(method, uri, options = nil); end234  def json_headers?; end235  def method; end236  def method=(arg0); end237  def to_s; end238  def uri; end239  def uri=(arg0); end240  def url_encoded?; end241end242class WebMock::ResponsesSequence243  def end?; end244  def increase_position; end245  def initialize(responses); end246  def next_response; end247  def times_to_repeat; end248  def times_to_repeat=(arg0); end249end250class WebMock::RequestStub251  def and_raise(*exceptions); end252  def and_return(*response_hashes, &block); end253  def and_timeout; end254  def has_responses?; end255  def initialize(method, uri); end256  def matches?(request_signature); end257  def request_pattern; end258  def request_pattern=(arg0); end259  def response; end260  def self.from_request_signature(signature); end261  def then; end262  def times(number); end263  def to_rack(app, options = nil); end264  def to_raise(*exceptions); end265  def to_return(*response_hashes, &block); end266  def to_s; end267  def to_timeout; end268  def with(params = nil, &block); end269end270class WebMock::ResponseFactory271  def self.response_for(options); end272end273class WebMock::Response274  def ==(other); end275  def assert_valid_body!; end276  def body; end277  def body=(body); end278  def evaluate(request_signature); end279  def exception; end280  def exception=(exception); end281  def headers; end282  def headers=(headers); end283  def initialize(options = nil); end284  def options=(options); end285  def raise_error_if_any; end286  def read_raw_response(raw_response); end287  def should_timeout; end288  def status; end289  def status=(status); end290  def stringify_body!; end291end292class WebMock::Response::InvalidBody < StandardError293end294class WebMock::DynamicResponse < WebMock::Response295  def evaluate(request_signature); end296  def initialize(responder); end297  def responder; end298  def responder=(arg0); end299end300class WebMock::RackResponse < WebMock::Response301  def body_from_rack_response(response); end302  def build_rack_env(request); end303  def evaluate(request); end304  def initialize(app); end305  def session; end306  def session_options; end307end308class WebMock::StubRequestSnippet309  def body_pattern; end310  def initialize(request_stub); end311  def to_s(with_response = nil); end312end313class WebMock::RequestSignatureSnippet314  def add_body_diff(stub, text); end315  def initialize(request_signature); end316  def pretty_print_to_string(string_to_print); end317  def request_params; end318  def request_signature; end319  def request_stub; end320  def request_stubs; end321  def signature_stub_body_diff(stub); end322  def stubbing_instructions; end323end324class WebMock::RequestBodyDiff325  def body_diff; end326  def initialize(request_signature, request_stub); end327  def parseable_json?(body_pattern); end328  def request_signature; end329  def request_signature_body_hash; end330  def request_signature_diffable?; end331  def request_signature_parseable_json?; end332  def request_stub; end333  def request_stub_body; end334  def request_stub_body_hash; end335  def request_stub_diffable?; end336  def request_stub_parseable_json?; end337end338class WebMock::AssertionFailure339  def self.error_class; end340  def self.error_class=(arg0); end341  def self.failure(message); end342end343class WebMock::RequestExecutionVerifier344  def at_least_times_executed; end345  def at_least_times_executed=(arg0); end346  def at_most_times_executed; end347  def at_most_times_executed=(arg0); end348  def description; end349  def does_not_match?; end350  def expected_times_executed; end351  def expected_times_executed=(arg0); end352  def failure_message; end353  def failure_message_phrase(is_negated = nil); end354  def failure_message_when_negated; end355  def initialize(request_pattern = nil, expected_times_executed = nil, at_least_times_executed = nil, at_most_times_executed = nil); end356  def matches?; end357  def quantity_phrase(is_negated = nil); end358  def request_pattern; end359  def request_pattern=(arg0); end360  def self.executed_requests_message; end361  def times(times); end362  def times_executed; end363  def times_executed=(arg0); end364end365class WebMock::Config366  def allow; end367  def allow=(arg0); end368  def allow_localhost; end369  def allow_localhost=(arg0); end370  def allow_net_connect; end371  def allow_net_connect=(arg0); end372  def initialize; end373  def net_http_connect_on_start; end374  def net_http_connect_on_start=(arg0); end375  def query_values_notation; end376  def query_values_notation=(arg0); end377  def self.allocate; end378  def self.new(*arg0); end379  def show_body_diff; end380  def show_body_diff=(arg0); end381  def show_stubbing_instructions; end382  def show_stubbing_instructions=(arg0); end383  extend Singleton::SingletonClassMethods384  include Singleton385end386class WebMock::CallbackRegistry387  def self.add_callback(options, block); end388  def self.any_callbacks?; end389  def self.callbacks; end390  def self.invoke_callbacks(options, request_signature, response); end391  def self.reset; end392end393class WebMock::RequestRegistry394  def initialize; end395  def requested_signatures; end396  def requested_signatures=(arg0); end397  def reset!; end398  def self.allocate; end399  def self.new(*arg0); end400  def times_executed(request_pattern); end401  def to_s; end402  extend Singleton::SingletonClassMethods403  include Singleton404end405class WebMock::StubRegistry406  def evaluate_response_for_request(response, request_signature); end407  def global_stubs; end408  def initialize; end409  def register_global_stub(order = nil, &block); end410  def register_request_stub(stub); end411  def registered_request?(request_signature); end412  def remove_request_stub(stub); end413  def request_stub_for(request_signature); end414  def request_stubs; end415  def request_stubs=(arg0); end416  def reset!; end417  def response_for_request(request_signature); end418  def self.allocate; end419  def self.new(*arg0); end420  extend Singleton::SingletonClassMethods421  include Singleton422end423module WebMock::API424  def a_request(method, uri); end425  def anythingize_lonely_keys(*args); end426  def assert_not_requested(*args, &block); end427  def assert_request_not_requested(request, options = nil); end428  def assert_request_requested(request, options = nil); end429  def assert_requested(*args, &block); end430  def convert_uri_method_and_options_to_request_and_options(method, uri, options, &block); end431  def hash_excluding(*args); end432  def hash_including(*args); end433  def refute_requested(*args, &block); end434  def remove_request_stub(stub); end435  def reset_executed_requests!; end436  def self.request(method, uri); end437  def stub_http_request(method, uri); end438  def stub_request(*args); end439  extend WebMock::API440end441class WebMock::HttpLibAdapterRegistry442  def each_adapter(&block); end443  def http_lib_adapters; end444  def http_lib_adapters=(arg0); end445  def initialize; end446  def register(lib, adapter); end447  def self.allocate; end448  def self.new(*arg0); end449  extend Singleton::SingletonClassMethods450  include Singleton451end452class WebMock::HttpLibAdapter453  def self.adapter_for(lib); end454end455module Net456end457module Net::WebMockHTTPResponse458  def read_body(dest = nil, &block); end459end460module WebMock::HttpLibAdapters461end462class WebMock::HttpLibAdapters::NetHttpAdapter < WebMock::HttpLibAdapter463  def self.disable!; end464  def self.enable!; end465end466class PatchedStringIO < StringIO467  def orig_read_nonblock(*arg0); end468  def read_nonblock(size, *args, **kwargs); end469end470class StubSocket471  def close; end472  def closed?; end473  def continue_timeout; end474  def continue_timeout=(arg0); end475  def initialize(*args); end476  def io; end477  def read_timeout; end478  def read_timeout=(arg0); end479  def readuntil(*args); end480  def write_timeout; end481  def write_timeout=(arg0); end482end483class StubSocket::StubIO484  def setsockopt(*args); end485end486class Net::WebMockNetBufferedIO < Net::BufferedIO487  def initialize(io, *args, **kwargs); end488  def rbuf_fill; end489end490module WebMock::NetHTTPUtility491  def self.check_right_http_connection; end492  def self.get_uri(net_http, path); end493  def self.puts_warning_for_right_http_if_needed; end494  def self.request_signature_from_request(net_http, request, body = nil); end495  def self.validate_headers(headers); end496end497class WebMock::RequestPatternMatcher498  def at_least_once; end499  def at_least_times(times); end500  def at_least_twice; end501  def at_most_once; end502  def at_most_times(times); end503  def at_most_twice; end504  def description; end505  def does_not_match?(request_pattern); end506  def failure_message; end507  def failure_message_when_negated; end508  def initialize; end509  def matches?(request_pattern); end510  def negative_failure_message; end511  def once; end512  def times(times); end513  def twice; end514end515class WebMock::WebMockMatcher516  def at_least_once; end517  def at_least_times(times); end518  def at_least_twice; end519  def description; end520  def does_not_match?(webmock); end521  def failure_message; end522  def failure_message_when_negated; end523  def initialize(method, uri); end524  def matches?(webmock); end525  def negative_failure_message; end526  def once; end527  def times(times); end528  def twice; end529  def with(options = nil, &block); end530end531class RSpec::ExampleGroups::WorkOSAuditTrail < RSpec::Core::ExampleGroup532  include WebMock::API533  include WebMock::Matchers534end535class RSpec::ExampleGroups::WorkOSBase < RSpec::Core::ExampleGroup536  include WebMock::API537  include WebMock::Matchers...request_pattern.rb
Source:request_pattern.rb  
...8    end9  end10  class RequestPattern11    attr_reader :method_pattern, :uri_pattern, :body_pattern, :headers_pattern12    def initialize(method, uri, options = {})13      @method_pattern  = MethodPattern.new(method)14      @uri_pattern     = create_uri_pattern(uri)15      @body_pattern    = nil16      @headers_pattern = nil17      @with_block      = nil18      assign_options(options)19    end20    def with(options = {}, &block)21      raise ArgumentError.new('#with method invoked with no arguments. Either options hash or block must be specified.') if options.empty? && !block_given?22      assign_options(options)23      @with_block = block24      self25    end26    def matches?(request_signature)27      content_type = request_signature.headers['Content-Type'] if request_signature.headers28      content_type = content_type.split(';').first if content_type29      @method_pattern.matches?(request_signature.method) &&30        @uri_pattern.matches?(request_signature.uri) &&31        (@body_pattern.nil? || @body_pattern.matches?(request_signature.body, content_type || "")) &&32        (@headers_pattern.nil? || @headers_pattern.matches?(request_signature.headers)) &&33        (@with_block.nil? || @with_block.call(request_signature))34    end35    def to_s36      string = "#{@method_pattern.to_s.upcase}".dup37      string << " #{@uri_pattern.to_s}"38      string << " with body #{@body_pattern.to_s}" if @body_pattern39      string << " with headers #{@headers_pattern.to_s}" if @headers_pattern40      string << " with given block" if @with_block41      string42    end43    private44    def assign_options(options)45      options = WebMock::Util::HashKeysStringifier.stringify_keys!(options, deep: true)46      HashValidator.new(options).validate_keys('body', 'headers', 'query', 'basic_auth')47      set_basic_auth_as_headers!(options)48      @body_pattern = BodyPattern.new(options['body']) if options.has_key?('body')49      @headers_pattern = HeadersPattern.new(options['headers']) if options.has_key?('headers')50      @uri_pattern.add_query_params(options['query']) if options.has_key?('query')51    end52    def set_basic_auth_as_headers!(options)53      if basic_auth = options.delete('basic_auth')54        validate_basic_auth!(basic_auth)55        options['headers'] ||= {}56        options['headers']['Authorization'] = WebMock::Util::Headers.basic_auth_header(basic_auth[0],basic_auth[1])57      end58    end59    def validate_basic_auth!(basic_auth)60      if !basic_auth.is_a?(Array) || basic_auth.map{|e| e.is_a?(String)}.uniq != [true]61        raise "The basic_auth option value should be an array which contains 2 strings: username and password"62      end63    end64    def create_uri_pattern(uri)65      if uri.is_a?(Regexp)66        URIRegexpPattern.new(uri)67      elsif uri.is_a?(Addressable::Template)68        URIAddressablePattern.new(uri)69      else70        URIStringPattern.new(uri)71      end72    end73  end74  class MethodPattern75    def initialize(pattern)76      @pattern = pattern77    end78    def matches?(method)79      @pattern == method || @pattern == :any80    end81    def to_s82      @pattern.to_s83    end84  end85  class URIPattern86    include RSpecMatcherDetector87    def initialize(pattern)88      @pattern = case pattern89      when Addressable::URI, Addressable::Template90        pattern91      else92          WebMock::Util::URI.normalize_uri(pattern)93      end94      @query_params = nil95    end96    def add_query_params(query_params)97      @query_params = if query_params.is_a?(Hash)98        query_params99      elsif query_params.is_a?(WebMock::Matchers::HashIncludingMatcher) \100              || query_params.is_a?(WebMock::Matchers::HashExcludingMatcher)101        query_params102      elsif rSpecHashIncludingMatcher?(query_params)103        WebMock::Matchers::HashIncludingMatcher.from_rspec_matcher(query_params)104      elsif rSpecHashExcludingMatcher?(query_params)105        WebMock::Matchers::HashExcludingMatcher.from_rspec_matcher(query_params)106      else107        WebMock::Util::QueryMapper.query_to_values(query_params, notation: Config.instance.query_values_notation)108      end109    end110    def to_s111      str = @pattern.inspect112      str += " with query params #{@query_params.inspect}" if @query_params113      str114    end115  end116  class URIRegexpPattern  < URIPattern117    def matches?(uri)118      WebMock::Util::URI.variations_of_uri_as_strings(uri).any? { |u| u.match(@pattern) } &&119        (@query_params.nil? || @query_params == WebMock::Util::QueryMapper.query_to_values(uri.query, notation: Config.instance.query_values_notation))120    end121    def to_s122      str = @pattern.inspect123      str += " with query params #{@query_params.inspect}" if @query_params124      str125    end126  end127  class URIAddressablePattern  < URIPattern128    def matches?(uri)129      if @query_params.nil?130        # Let Addressable check the whole URI131        WebMock::Util::URI.variations_of_uri_as_strings(uri).any? { |u| @pattern.match(u) }132      else133        # WebMock checks the query, Addressable checks everything else134        WebMock::Util::URI.variations_of_uri_as_strings(uri.omit(:query)).any? { |u| @pattern.match(u) } &&135          @query_params == WebMock::Util::QueryMapper.query_to_values(uri.query)136      end137    end138    def add_query_params(query_params)139      @@add_query_params_warned ||= false140      if not @@add_query_params_warned141        @@add_query_params_warned = true142        warn "WebMock warning: ignoring query params in RFC 6570 template and checking them with WebMock"143      end144      super(query_params)145    end146    def to_s147      str = @pattern.pattern.inspect148      str += " with variables #{@pattern.variables.inspect}" if @pattern.variables149      str150    end151  end152  class URIStringPattern < URIPattern153    def matches?(uri)154      if @pattern.is_a?(Addressable::URI)155        if @query_params156          uri.omit(:query) === @pattern &&157          (@query_params.nil? || @query_params == WebMock::Util::QueryMapper.query_to_values(uri.query, notation: Config.instance.query_values_notation))158        else159          uri === @pattern160        end161      else162        false163      end164    end165    def add_query_params(query_params)166      super167      if @query_params.is_a?(Hash) || @query_params.is_a?(String)168        query_hash = (WebMock::Util::QueryMapper.query_to_values(@pattern.query, notation: Config.instance.query_values_notation) || {}).merge(@query_params)169        @pattern.query = WebMock::Util::QueryMapper.values_to_query(query_hash, notation: WebMock::Config.instance.query_values_notation)170        @query_params = nil171      end172    end173    def to_s174      str = WebMock::Util::URI.strip_default_port_from_uri_string(@pattern.to_s)175      str += " with query params #{@query_params.inspect}" if @query_params176      str177    end178  end179  class BodyPattern180    include RSpecMatcherDetector181    BODY_FORMATS = {182      'text/xml'               => :xml,183      'application/xml'        => :xml,184      'application/json'       => :json,185      'text/json'              => :json,186      'application/javascript' => :json,187      'text/javascript'        => :json,188      'text/html'              => :html,189      'application/x-yaml'     => :yaml,190      'text/yaml'              => :yaml,191      'text/plain'             => :plain192    }193    attr_reader :pattern194    def initialize(pattern)195      @pattern = if pattern.is_a?(Hash)196        normalize_hash(pattern)197      elsif rSpecHashIncludingMatcher?(pattern)198        WebMock::Matchers::HashIncludingMatcher.from_rspec_matcher(pattern)199      else200        pattern201      end202    end203    def matches?(body, content_type = "")204      assert_non_multipart_body(content_type)205      if (@pattern).is_a?(Hash)206        return true if @pattern.empty?207        matching_hashes?(body_as_hash(body, content_type), @pattern)208      elsif (@pattern).is_a?(WebMock::Matchers::HashIncludingMatcher)209        @pattern == body_as_hash(body, content_type)210      else211        empty_string?(@pattern) && empty_string?(body) ||212          @pattern == body ||213          @pattern === body214      end215    end216    def to_s217      @pattern.inspect218    end219    private220    def body_as_hash(body, content_type)221      case BODY_FORMATS[content_type]222      when :json then223        WebMock::Util::JSON.parse(body)224      when :xml then225        Crack::XML.parse(body)226      else227        WebMock::Util::QueryMapper.query_to_values(body, notation: Config.instance.query_values_notation)228      end229    end230    def assert_non_multipart_body(content_type)231      if content_type =~ %r{^multipart/form-data}232        raise ArgumentError.new("WebMock does not support matching body for multipart/form-data requests yet :(")233      end234    end235    # Compare two hashes for equality236    #237    # For two hashes to match they must have the same length and all238    # values must match when compared using `#===`.239    #240    # The following hashes are examples of matches:241    #242    #     {a: /\d+/} and {a: '123'}243    #244    #     {a: '123'} and {a: '123'}245    #246    #     {a: {b: /\d+/}} and {a: {b: '123'}}247    #248    #     {a: {b: 'wow'}} and {a: {b: 'wow'}}249    #250    # @param [Hash] query_parameters typically the result of parsing251    #   JSON, XML or URL encoded parameters.252    #253    # @param [Hash] pattern which contains keys with a string, hash or254    #   regular expression value to use for comparison.255    #256    # @return [Boolean] true if the paramaters match the comparison257    #   hash, false if not.258    def matching_hashes?(query_parameters, pattern)259      return false unless query_parameters.is_a?(Hash)260      return false unless query_parameters.keys.sort == pattern.keys.sort261      query_parameters.each do |key, actual|262        expected = pattern[key]263        if actual.is_a?(Hash) && expected.is_a?(Hash)264          return false unless matching_hashes?(actual, expected)265        else266          return false unless expected === actual267        end268      end269      true270    end271    def empty_string?(string)272      string.nil? || string == ""273    end274    def normalize_hash(hash)275      Hash[WebMock::Util::HashKeysStringifier.stringify_keys!(hash, deep: true).sort]276    end277  end278  class HeadersPattern279    def initialize(pattern)280      @pattern = WebMock::Util::Headers.normalize_headers(pattern) || {}281    end282    def matches?(headers)283      if empty_headers?(@pattern)284        empty_headers?(headers)285      else286        return false if empty_headers?(headers)287        @pattern.each do |key, value|288          return false unless headers.has_key?(key) && value === headers[key]289        end290        true291      end292    end293    def to_s...api_spec.rb
Source:api_spec.rb  
...12      it 'uses WebMock::Matchers::HashIncludingMatcher' do13        expect(subject).to be_a(WebMock::Matchers::HashIncludingMatcher)14      end15      #  by testing equality for HashIncludingMatcher (which stringifies the passed hash) we are16      #  testing HashIncludingMatcher.initialize behavior as well17      context "when args correspond to an hash" do18        it "creates 'HashIncludingMatcher'" do19          expect(subject).to eq("data" => :one)20        end21      end22      context "when args are one or many keys" do23        subject {klass.new.hash_including(:foo, :bar)}24        let(:anything) { WebMock::Matchers::AnyArgMatcher.new(nil) }25        it "creates 'HashIncludingMatcher' with keys anythingized" do26          expect(subject).to eq("foo" => anything, "bar" => anything )27        end28      end29      context "when args are both keys and key/value pairs" do30        subject {klass.new.hash_including(:foo, :bar, data: :one)}31        let(:anything) { WebMock::Matchers::AnyArgMatcher.new(nil) }32        it "creates 'HashIncludingMatcher' with keys anythingized" do33          expect(subject).to eq("foo" => anything, "bar" => anything, "data" => :one)34        end35      end36      context "when args are an empty hash" do37        subject {klass.new.hash_including({})}38        it "creates 'HashIncludingMatcher' with an empty hash" do39          expect(subject).to eq({})40        end41      end42    end43    context 'when mixed into a class with a parent that defines `hash_including`' do44      subject { klass.new.hash_including(*args) }45      let(:args) { %w(:foo, :bar, {:data => :one}) }46      let(:klass) do47        Class.new(48          Class.new do49            def hash_including(*args)50              args51            end52          end53        ) { include WebMock::API }54      end55      it 'uses super and passes the args untampered' do56        expect(subject).to eq(args)57      end58    end59  end60  describe '#hash_excluding' do61    subject { klass.new.hash_excluding(args) }62    let(:args) { { data: :one } }63    context 'when mixed into a class that does not define `hash_including`' do64      let(:klass) do65        Class.new do66          include WebMock::API67        end68      end69      it 'uses WebMock::Matchers::HashIncludingMatcher' do70        expect(subject).to be_a(WebMock::Matchers::HashExcludingMatcher)71      end72      #  by testing equality for HashIncludingMatcher (which stringifies the passed hash) we are73      #  testing HashIncludingMatcher.initialize behavior as well74      context 'when args correspond to an hash' do75        context 'creates "HashExcludingMatcher"' do76          it 'equals hash with similar key but different value' do77            expect(subject).to eq('data' => :two)78          end79          it 'equals hash with similar value but different key' do80            expect(subject).to eq('data2' => :one)81          end82          it 'equals hash with defferent value and key' do83            expect(subject).to eq('data2' => :two)84          end85          it 'not equals with similar value and key' do86            expect(subject).not_to eq('data' => :one)87          end...initialize
Using AI Code Generation
1  def initialize(regexp)2  def ===(str)3  def initialize(string)4  def ===(str)5  def initialize(hash)6  def ===(hash)7  def initialize(hash)8  def ===(hash)9  def initialize(array)10  def ===(array)11      array.include?(value)12  def initialize(array)13  def ===(array)14  def initialize(value)15  def ===(value)16  def ===(value)17  def ===(value)initialize
Using AI Code Generation
1  let(:stub) { stub_request(:get, 'http://example.com') }2    stub.to_return(:body => 'test')3  let(:stub) { stub_request(:get, 'http://example.com') }4    stub.to_return(:body => 'test')5    WebMock::Matchers::HaveRequested.should have_been_requested(stub)6  def initialize(connection)7  let(:connection) { double("connection") }8  subject { ConnectionManager.new(connection) }9    connection.should_receive(:connect)10  def initialize(connection)initialize
Using AI Code Generation
1  def initialize(method, uri)2def stub_request(*args)3  WebMock::RequestStub.new(*args)4def a_request(*args)5  WebMock::RequestPattern.new(*args)6      to_return(:status => 200, :body => "", :headers => {})7    a = a_request(:get, 'http://www.google.com')8WebMock::RequestPattern.new(:get, "http://www.google.com", {:headers=>{"Accept"=>"*/*"}})9  def initialize(method, uri)10def stub_request(*args)11  WebMock::RequestStub.new(*args)12def a_request(*args)13  WebMock::RequestPattern.new(*args)14      to_return(:status => 200, :body => "", :headers => {})15    a = a_request(:get, 'http://www.google.com')16WebMock::RequestPattern.new(:get, "http://www.google.com", {:headers=>{"Accept"=>"*/*"}})initialize
Using AI Code Generation
1  with(:body => WebMock::Matchers::RegexpMatcher.new(/foo/))2WebMock::RequestStub.new(:any, "http://example.com").with(:body => "foo").should have_been_requested3WebMock::RequestStub.new(:any, "http://example.com").with(:body => "bar").should_not have_been_requested4  with(:body => WebMock::Matchers::RegexpMatcher.new(/foo/))5WebMock::RequestStub.new(:any, "http://example.com").with(:body => "foo bar").should have_been_requested6WebMock::RequestStub.new(:any, "http://example.com").with(:body => "bar").should_not have_been_requested7  with(:body => WebMock::Matchers::HashIncludingMatcher.new({:foo => "bar"}))8WebMock::RequestStub.new(:any, "http://example.com").with(:body => {:foo => "bar"}).should have_been_requested9WebMock::RequestStub.new(:any, "http://example.com").with(:body => {:foo => "baz"}).should_not have_been_requested10  with(:body => WebMock::Matchers::HashIncludingMatcher.new({:foo => "bar"}))initialize
Using AI Code Generation
1WebMock::API.stub_request(:get, initialize("http://localhost:8080/1.rb"))2WebMock::API.stub_request(:get, initialize("http://localhost:8080/2.rb"))3WebMock::API.stub_request(:get, initialize("http://localhost:8080/3.rb"))4WebMock::API.stub_request(:get, initialize("http://localhost:8080/4.rb"))5WebMock::API.stub_request(:get, initialize("http://localhost:8080/5.rb"))6WebMock::API.stub_request(:get, initialize("http://localhost:8080/6.rb"))initialize
Using AI Code Generation
1body_matcher = WebMock::Matchers::RequestBodyMatcher.new(/"foo":"bar"/)2    with(body: body_matcher)3assert_requested(:post, 'http://www.example.com',4assert_not_requested(:post, 'http://www.example.com',5  def initialize(method, uri)6def stub_request(*args)7  WebMock::RequestStub.new(*args)8def a_request(*args)9  WebMock::RequestPattern.new(*args)10      to_return(:status => 200, :body => "", :headers => {})11    a = a_request(:get, 'http://www.google.com')12WebMock::RequestPattern.new(:get, "http://www.google.com", {:headers=>{"Accept"=>"*/*"}})initialize
Using AI Code Generation
1WebMock::API.stub_request(:get, initialize("http://localhost:8080/1.rb"))2WebMock::API.stub_request(:get, initialize("http://localhost:8080/2.rb"))3WebMock::API.stub_request(:get, initialize("http://localhost:8080/3.rb"))4WebMock::API.stub_request(:get, initialize("http://localhost:8080/4.rb"))5WebMock::API.stub_request(:get, initialize("http://localhost:8080/5.rb"))6WebMock::API.stub_request(:get, initialize("http://localhost:8080/6.rb"))initialize
Using AI Code Generation
1  def initialize(regexp)2  def ===(str)3  def initialize(string)4  def ===(str)5  def initialize(hash)6  def ===(hash)7  def initialize(hash)8  def ===(hash)9  def initialize(array)10  def ===(array)11      array.include?(value)12  def initialize(array)13  def ===(array)14  def initialize(value)15  def ===(value)16  def ===(value)17  def ===(value)Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
