Module: Julewire::Core::Testing
- Defined in:
- lib/julewire/core/testing.rb,
lib/julewire/core/testing/chaos.rb,
lib/julewire/core/testing/coverage.rb,
lib/julewire/core/testing/contracts.rb,
lib/julewire/core/testing/test_reports.rb,
lib/julewire/core/testing/chaos/catalog.rb,
lib/julewire/core/testing/chaos/emitter.rb,
lib/julewire/core/testing/contracts/wire.rb,
lib/julewire/core/testing/chaos/destination.rb,
lib/julewire/core/testing/contracts/runtime.rb,
lib/julewire/core/testing/chaos/core_runtime.rb,
lib/julewire/core/testing/contracts/component.rb,
lib/julewire/core/testing/chaos/raising_output.rb,
lib/julewire/core/testing/contracts/integration.rb,
lib/julewire/core/testing/contracts/record_draft.rb,
lib/julewire/core/testing/contracts/deadline_scheduler.rb,
lib/julewire/core/testing/contracts/integration_fields.rb
Defined Under Namespace
Modules: Chaos, Contracts, Coverage, TestReports
Classes: CaptureDestination, NullOutput
Class Method Summary
collapse
Class Method Details
.capture(runtime = Julewire) {|records| ... } ⇒ Object
68
69
70
71
72
|
# File 'lib/julewire/core/testing.rb', line 68
def capture(runtime = Julewire, **)
records = configure_capture_destination(runtime, **).records
yield records if block_given?
records
end
|
59
60
61
62
63
64
65
66
|
# File 'lib/julewire/core/testing.rb', line 59
def configure_capture_destination(runtime = Julewire, **)
destination = CaptureDestination.new(**)
runtime.configure do |config|
config.destinations.clear
config.destinations.add(destination)
end
destination
end
|
.nonblocking_queue_values(queue) ⇒ Object
101
102
103
104
105
106
107
108
|
# File 'lib/julewire/core/testing.rb', line 101
def nonblocking_queue_values(queue)
values = []
loop do
values << queue.pop(true)
rescue ThreadError
return values
end
end
|
.reset_shared_scheduler ⇒ Object
78
79
80
|
# File 'lib/julewire/core/testing.rb', line 78
def reset_shared_scheduler
Core::Scheduling::SharedScheduler.__send__(:reset_for_test!)
end
|
.unregister_destination(kind) ⇒ Object
74
75
76
|
# File 'lib/julewire/core/testing.rb', line 74
def unregister_destination(kind)
Core::Destinations.__send__(:unregister, kind)
end
|
.with_overridden_singleton_method(receiver, method_name, replacement) ⇒ Object
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/julewire/core/testing.rb', line 82
def with_overridden_singleton_method(receiver, method_name, replacement)
singleton_class = class << receiver; self; end
method_exists =
singleton_class.method_defined?(method_name) || singleton_class.private_method_defined?(method_name)
original = singleton_class.instance_method(method_name) if method_exists
verbose = $VERBOSE
$VERBOSE = nil
singleton_class.define_method(method_name, replacement)
yield
ensure
$VERBOSE = nil
if original
singleton_class.define_method(method_name, original)
elsif singleton_class&.method_defined?(method_name) || singleton_class&.private_method_defined?(method_name)
singleton_class.remove_method(method_name)
end
$VERBOSE = verbose
end
|