Module: VerifiedDouble

Extended by:
RSpec::Mocks::ExampleMethods
Defined in:
lib/verified_double.rb,
lib/verified_double/boolean.rb,
lib/verified_double/version.rb,
lib/verified_double/matchers.rb,
lib/verified_double/stack_frame.rb,
lib/verified_double/simple_double.rb,
lib/verified_double/example_metadata.rb,
lib/verified_double/method_signature.rb,
lib/verified_double/is_a_class_double.rb,
lib/verified_double/is_an_instance_double.rb,
lib/verified_double/method_signature/value.rb,
lib/verified_double/parse_method_signature.rb,
lib/verified_double/can_record_interactions.rb,
lib/verified_double/method_signatures_report.rb,
lib/verified_double/is_an_any_instance_double.rb,
lib/verified_double/recorded_method_signature.rb,
lib/verified_double/method_signature/class_value.rb,
lib/verified_double/rspec_mocks_syntax_overrides.rb,
lib/verified_double/method_signature/boolean_value.rb,
lib/verified_double/method_signature/instance_value.rb,
lib/verified_double/recorded_method_signature_registry.rb,
lib/verified_double/method_signature/rspec_double_value.rb

Defined Under Namespace

Modules: Boolean, CanRecordInteractions, IsAClassDouble, IsAnAnyInstanceDouble, IsAnInstanceDouble, Matchers, RSpecMocksSyntaxOverrides Classes: ExampleMetadata, MethodSignature, MethodSignaturesReport, ParseMethodSignature, RecordedMethodSignature, RecordedMethodSignatureRegistry, SimpleDouble, StackFrame

Constant Summary collapse

VERSION =
"0.5.2"

Class Method Summary collapse

Class Method Details

.any_instance_of(klass) ⇒ Object



28
29
30
31
32
# File 'lib/verified_double.rb', line 28

def self.any_instance_of(klass)
  d = klass.any_instance
  d.extend(VerifiedDouble::IsAnAnyInstanceDouble)
  VerifiedDouble.record(d)
end

.of_class(class_value, options = {}) ⇒ Object



34
35
36
37
38
39
# File 'lib/verified_double.rb', line 34

def self.of_class(class_value, options = {})
  options[:transfer_nested_constants] = true if options[:transfer_nested_constants].nil?
  d = stub_const(class_value.to_s, Class.new, options)
  d.extend(VerifiedDouble::IsAClassDouble)
  VerifiedDouble.record(d)
end

.of_instance(*args) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/verified_double.rb', line 41

def self.of_instance(*args)
  d = double(*args)
  d.extend(VerifiedDouble::IsAnInstanceDouble)

  simple_double = SimpleDouble.new(d)

  if args[1]
    args[1].each do |method, return_value|
      method_signature = simple_double.build_recorded_method_signature(method)
      method_signature.return_values = [MethodSignature::Value.from(return_value)]
      VerifiedDouble.registry.insert 0, method_signature
    end
  end
  VerifiedDouble.record(d)
end

.record(a_double) ⇒ Object



57
58
59
60
# File 'lib/verified_double.rb', line 57

def self.record(a_double)
  a_double.extend(VerifiedDouble::CanRecordInteractions)
  a_double
end

.registryObject



62
63
64
# File 'lib/verified_double.rb', line 62

def self.registry
  @registry ||= RecordedMethodSignatureRegistry.new
end

.report_unverified_signatures(nested_example_group) ⇒ Object



66
67
68
69
70
71
72
73
74
# File 'lib/verified_double.rb', line 66

def self.report_unverified_signatures(nested_example_group)
  MethodSignaturesReport.new
    .set_registered_signatures
    .set_verified_signatures_from_tags(nested_example_group)
    .set_verified_signatures_from_matchers
    .merge_verified_signatures
    .identify_unverified_signatures
    .output_unverified_signatures
end

.verified_signatures_from_matchersObject



76
77
78
# File 'lib/verified_double.rb', line 76

def self.verified_signatures_from_matchers
  @verified_signatures_from_matchers ||= []
end