File: injector.rb

package info (click to toggle)
ruby-bogus 0.1.5-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 828 kB
  • ctags: 628
  • sloc: ruby: 4,124; makefile: 6; sh: 2
file content (100 lines) | stat: -rw-r--r-- 2,291 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
module Bogus
  class Injector
    include Dependor::AutoInject
    look_in_modules Bogus

    def configuration
      @configuration ||= inject(Configuration)
    end

    def fake_configuration
      @fake_configuration ||= inject(FakeConfiguration)
    end

    def search_modules
      configuration.search_modules
    end

    def fake_registry
      @fake_registry ||= inject(FakeRegistry)
    end

    def creates_fakes
      creates_fakes = inject(CreatesFakes)
      inject(RegistersCreatedFakes, creates_fakes: creates_fakes)
    end

    def create_double(object)
      inject(Double, object: object)
    end

    def create_stub(object)
      create_double(object).stub
    end

    def create_mock(object)
      create_double(object).mock
    end

    def instance_methods(klass)
      inject(InstanceMethods, klass: klass)
    end

    def class_methods(klass)
      inject(ClassMethods, klass: klass)
    end

    def active_record_accessors(klass)
      inject(ActiveRecordAccessors, klass: klass)
    end

    def method_copiers
      copiers = [method(:class_methods), method(:instance_methods)]
      copiers << method(:active_record_accessors) if configuration.fake_ar_attributes
      copiers
    end

    def have_received_matcher
      inject(HaveReceivedMatcher)
    end

    def interactions_repository
      raise "Specify either real_interactions or stubbed_interactions"
    end

    def double_tracker
      @double_tracker ||= inject(TracksExistenceOfTestDoubles)
    end

    def clear_tracked_doubles
      @double_tracker = nil
    end

    def real_interactions
      @real_interactions ||= inject(InteractionsRepository)
    end

    def doubled_interactions
      @doubled_interactions ||= inject(InteractionsRepository)
    end

    def overwritten_classes
      @overwritten_classes ||= inject(OverwrittenClasses)
    end

    def adds_contract_verification(syntax)
      inject(AddsContractVerification, syntax: syntax)
    end

    def create_proxy_class(fake_name, klass)
      inject(ProxyClass, fake_name: fake_name, klass: klass)
    end

    def create_recording_proxy(instance, fake_name)
      inject(RecordingProxy,
        instance: instance,
        fake_name: fake_name,
        interactions_repository: real_interactions)
    end
  end
end