Class: TestBench::Telemetry::Substitute::Sink
Constant Summary
collapse
- MatchError =
Class.new(RuntimeError)
TestBench::Telemetry::Sink::ReceiveError
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.read(path) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/test_bench/telemetry/substitute/sink.rb', line 9
def self.read(path)
file_text = ::File.read(path)
instance = new
file_text.each_line do |event_data_text|
event_data = Telemetry::EventData.load(event_data_text)
instance.receive(event_data)
end
instance
end
|
Instance Method Details
#any_event? ⇒ Boolean
Also known as:
event?
50
51
52
|
# File 'lib/test_bench/telemetry/substitute/sink.rb', line 50
def any_event?(...)
events(...).any?
end
|
#events(event_class, **attributes) ⇒ Object
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
|
# File 'lib/test_bench/telemetry/substitute/sink.rb', line 55
def events(event_class, **attributes)
event_type = event_class.event_type
events = []
received_events.each do |event_data|
event_types_correspond = event_data.type == event_type
if event_types_correspond
event = Event::Import.(event_data, event_class)
attributes_correspond = attributes.all? do |attribute, compare_value|
value = event.public_send(attribute)
value == compare_value
end
if attributes_correspond
events << event
end
end
end
events
end
|
#one_event ⇒ Object
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/test_bench/telemetry/substitute/sink.rb', line 39
def one_event(...)
events = events(...)
if events.count > 1
event_type = events.first.event_type
raise MatchError, "More than one event matches (Type: #{event_type.inspect}, Matching Events: #{events.count})"
end
events.first
end
|
#one_event? ⇒ Boolean
35
36
37
|
# File 'lib/test_bench/telemetry/substitute/sink.rb', line 35
def one_event?(...)
!one_event(...).nil?
end
|
#receive(event_data) ⇒ Object
27
28
29
|
# File 'lib/test_bench/telemetry/substitute/sink.rb', line 27
def receive(event_data)
received_events << event_data
end
|
#received?(event_data) ⇒ Boolean
31
32
33
|
# File 'lib/test_bench/telemetry/substitute/sink.rb', line 31
def received?(event_data)
received_events.include?(event_data)
end
|
#received_events ⇒ Object
23
24
25
|
# File 'lib/test_bench/telemetry/substitute/sink.rb', line 23
def received_events
@received_events ||= []
end
|