Module: Julewire::Core::Testing::Chaos
- Defined in:
- lib/julewire/core/testing/chaos.rb,
lib/julewire/core/testing/chaos/catalog.rb,
lib/julewire/core/testing/chaos/emitter.rb,
lib/julewire/core/testing/chaos/destination.rb,
lib/julewire/core/testing/chaos/core_runtime.rb,
lib/julewire/core/testing/chaos/raising_output.rb
Defined Under Namespace
Modules: CoreRuntime, Destination, Emitter Classes: Catalog
Constant Summary collapse
- DEFAULT_ERRORS =
[ RuntimeError.new("julewire chaos runtime"), ArgumentError.new("julewire chaos argument"), TypeError.new("julewire chaos type") ].freeze
Class Method Summary collapse
- .assert_contained(test_context, errors: DEFAULT_ERRORS, description: nil) ⇒ Object
- .assert_core_runtime_containment(test_context, runtime: Julewire, reset: nil, errors: DEFAULT_ERRORS) ⇒ Object
- .assert_destination_chaos_contract(test_context, record:, formatter:, encoder:, output:, callbacks: nil, errors: DEFAULT_ERRORS) ⇒ Object
- .assert_discovered_chaos_contracts(test_context, catalog:, errors: DEFAULT_ERRORS) ⇒ Object
- .assert_emitter_chaos_contract(test_context, component:, build:, exercise:, errors: DEFAULT_ERRORS) ⇒ Object
- .catalog ⇒ Object
- .raiser(error = RuntimeError.new("julewire chaos")) ⇒ Object
Class Method Details
.assert_contained(test_context, errors: DEFAULT_ERRORS, description: nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/julewire/core/testing/chaos.rb', line 14 def assert_contained(test_context, errors: DEFAULT_ERRORS, description: nil) raise ArgumentError, "block required" unless block_given? errors.each do |error| yield error rescue StandardError => e test_context.flunk((description, error, e)) end nil end |
.assert_core_runtime_containment(test_context, runtime: Julewire, reset: nil, errors: DEFAULT_ERRORS) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/julewire/core/testing/chaos.rb', line 25 def assert_core_runtime_containment(test_context, runtime: Julewire, reset: nil, errors: DEFAULT_ERRORS) reset ||= -> { runtime.reset! } raise ArgumentError, "reset must respond to call" unless reset.respond_to?(:call) CoreRuntime.assert_contract(test_context, runtime: runtime, reset: reset, errors: errors) end |
.assert_destination_chaos_contract(test_context, record:, formatter:, encoder:, output:, callbacks: nil, errors: DEFAULT_ERRORS) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/julewire/core/testing/chaos.rb', line 40 def assert_destination_chaos_contract(test_context, record:, formatter:, encoder:, output:, callbacks: nil, errors: DEFAULT_ERRORS) Destination.assert_contract( test_context, record: record, formatter: formatter, encoder: encoder, output: output, callbacks: callbacks, errors: errors ) end |
.assert_discovered_chaos_contracts(test_context, catalog:, errors: DEFAULT_ERRORS) ⇒ Object
36 37 38 |
# File 'lib/julewire/core/testing/chaos.rb', line 36 def assert_discovered_chaos_contracts(test_context, catalog:, errors: DEFAULT_ERRORS) Catalog.assert_contract(test_context, catalog: catalog, errors: errors) end |
.assert_emitter_chaos_contract(test_context, component:, build:, exercise:, errors: DEFAULT_ERRORS) ⇒ Object
53 54 55 56 57 58 59 60 61 |
# File 'lib/julewire/core/testing/chaos.rb', line 53 def assert_emitter_chaos_contract(test_context, component:, build:, exercise:, errors: DEFAULT_ERRORS) Emitter.assert_contract( test_context, component: component, build: build, exercise: exercise, errors: errors ) end |
.catalog ⇒ Object
32 33 34 |
# File 'lib/julewire/core/testing/chaos.rb', line 32 def catalog(&) Catalog.build(&) end |
.raiser(error = RuntimeError.new("julewire chaos")) ⇒ Object
63 64 65 |
# File 'lib/julewire/core/testing/chaos.rb', line 63 def raiser(error = RuntimeError.new("julewire chaos")) ->(*) { raise error } end |