Class: TestBench::Session::Substitute::Sink

Inherits:
Object
  • Object
show all
Includes:
Telemetry::Sink
Defined in:
lib/test_bench/session/substitute/sink.rb

Defined Under Namespace

Classes: Record

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#recordsObject



12
13
14
# File 'lib/test_bench/session/substitute/sink.rb', line 12

def records
  @records ||= []
end

#traceObject



7
8
9
# File 'lib/test_bench/session/substitute/sink.rb', line 7

def trace
  @trace ||= Trace.new
end

Class Method Details

.build(trace = nil) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/test_bench/session/substitute/sink.rb', line 17

def self.build(trace=nil)
  instance = new

  if not trace.nil?
    instance.trace = trace
  end

  instance
end

Instance Method Details

#any_event?(event_class, *titles, **attributes) ⇒ Boolean Also known as: event?

Returns:

  • (Boolean)


60
61
62
63
# File 'lib/test_bench/session/substitute/sink.rb', line 60

def any_event?(event_class, *titles, **attributes)
  event_sink = event_sink(*titles)
  event_sink.any_event?(event_class, **attributes)
end

#event_sink(*titles) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/test_bench/session/substitute/sink.rb', line 71

def event_sink(*titles)
  event_sink = Telemetry::Substitute::Sink.new

  records.each do |record|
    if record.match?(titles)
      event_data = record.event_data

      event_sink.receive(event_data)
    end
  end

  event_sink
end

#events(event_class, *titles, **attributes) ⇒ Object



66
67
68
69
# File 'lib/test_bench/session/substitute/sink.rb', line 66

def events(event_class, *titles, **attributes)
  event_sink = event_sink(*titles)
  event_sink.events(event_class, **attributes)
end

#one_event(event_class, *titles, **attributes) ⇒ Object



55
56
57
58
# File 'lib/test_bench/session/substitute/sink.rb', line 55

def one_event(event_class, *titles, **attributes)
  event_sink = event_sink(*titles)
  event_sink.one_event(event_class, **attributes)
end

#one_event?(event_class, *titles, **attributes) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
53
# File 'lib/test_bench/session/substitute/sink.rb', line 50

def one_event?(event_class, *titles, **attributes)
  event_sink = event_sink(*titles)
  event_sink.one_event?(event_class, **attributes)
end

#receive(event_data) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/test_bench/session/substitute/sink.rb', line 27

def receive(event_data)
  trace_copy = Trace.new

  trace.each do |entry|
    trace_copy.push(entry)
  end

  record = Record.new(event_data, trace_copy)
  records.push(record)

  record
end

#received?(event_data = nil) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
43
44
45
46
47
48
# File 'lib/test_bench/session/substitute/sink.rb', line 40

def received?(event_data=nil)
  if not event_data.nil?
    records.any? do |record|
      record.event_data == event_data
    end
  else
    records.any?
  end
end