class RuboCop::Cop::Minitest::GlobalExpectations

value { musts }.must_raise TypeError
value(wonts).wont_match expected_wonts
value(musts).must_equal expected_musts
# good
expect { musts }.must_raise TypeError
expect(wonts).wont_match expected_wonts
expect(musts).must_equal expected_musts
_ { musts }.must_raise TypeError
_(wonts).wont_match expected_wonts
_(musts).must_equal expected_musts
musts.must_raise TypeError
wonts.wont_match expected_wonts
musts.must_equal expected_musts
# bad
@example EnforcedStyle: value
expect { musts }.must_raise TypeError
expect(wonts).wont_match expected_wonts
expect(musts).must_equal expected_musts
# good
value { musts }.must_raise TypeError
value(wonts).wont_match expected_wonts
value(musts).must_equal expected_musts
_ { musts }.must_raise TypeError
_(wonts).wont_match expected_wonts
_(musts).must_equal expected_musts
musts.must_raise TypeError
wonts.wont_match expected_wonts
musts.must_equal expected_musts
# bad
@example EnforcedStyle: expect
_ { musts }.must_raise TypeError
_(wonts).wont_match expected_wonts
_(musts).must_equal expected_musts
# good
value { musts }.must_raise TypeError
value(wonts).wont_match expected_wonts
value(musts).must_equal expected_musts
expect { musts }.must_raise TypeError
expect(wonts).wont_match expected_wonts
expect(musts).must_equal expected_musts
musts.must_raise TypeError
wonts.wont_match expected_wonts
musts.must_equal expected_musts
# bad
@example EnforcedStyle: _
value { musts }.must_raise TypeError
value(wonts).wont_match expected_wonts
value(musts).must_equal expected_musts
expect { musts }.must_raise TypeError
expect(wonts).wont_match expected_wonts
expect(musts).must_equal expected_musts
_ { musts }.must_raise TypeError
_(wonts).wont_match expected_wonts
_(musts).must_equal expected_musts
# good
musts.must_raise TypeError
wonts.wont_match expected_wonts
musts.must_equal expected_musts
# bad
@example EnforcedStyle: any (default)
and autocorrects them to use expect format.
Checks for deprecated global expectations

def method_allowed?(method)

def method_allowed?(method)
  DSL_METHODS.include?(method)
end

def on_send(node)

def on_send(node)
  receiver = node.receiver
  return unless receiver
  method = block_receiver?(receiver) || value_receiver?(receiver)
  return if method == preferred_method || (method && style == :any)
  register_offense(node, method)
end

def preferred_method

def preferred_method
  style == :any ? :_ : style
end

def preferred_receiver(node)

def preferred_receiver(node)
  receiver = node.receiver
  if BLOCK_MATCHERS.include?(node.method_name)
    body = receiver.lambda? ? receiver.body : receiver
    "#{preferred_method} { #{body.source} }"
  else
    "#{preferred_method}(#{receiver.source})"
  end
end

def register_offense(node, method)

def register_offense(node, method)
  receiver = node.receiver
  if method
    preferred = preferred_method
    replacement = receiver.source.sub(method.to_s, preferred_method.to_s)
  else
    preferred = preferred_receiver(node)
    replacement = preferred
  end
  message = format(MSG, preferred: preferred)
  add_offense(receiver, message: message) do |corrector|
    corrector.replace(receiver, replacement)
  end
end