Class: Julewire::Core::Testing::Chaos::Catalog

Inherits:
Object
  • Object
show all
Defined in:
lib/julewire/core/testing/chaos/catalog.rb

Defined Under Namespace

Classes: Entry

Constant Summary collapse

KINDS =
%i[processor formatter encoder destination subscriber listener].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCatalog

Returns a new instance of Catalog.



43
44
45
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 43

def initialize
  @entries = []
end

Instance Attribute Details

#entriesObject (readonly)



11
12
13
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 11

def entries
  @entries
end

Class Method Details

.assert_contract(test_context, catalog:, errors:) ⇒ Object

Raises:

  • (ArgumentError)


20
21
22
23
24
25
26
27
28
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 20

def assert_contract(test_context, catalog:, errors:)
  entries = catalog.entries
  raise ArgumentError, "chaos catalog must have entries" if entries.empty?

  entries.each do |entry|
    assert_entry(test_context, entry, errors)
  end
  nil
end

.build {|catalog| ... } ⇒ Object

Yields:



14
15
16
17
18
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 14

def build
  catalog = new
  yield catalog if block_given?
  catalog
end

Instance Method Details

#destination(name) ⇒ Object



53
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 53

def destination(name, &) = register(:destination, name, &)

#encoder(name) ⇒ Object



51
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 51

def encoder(name, &) = register(:encoder, name, &)

#formatter(name) ⇒ Object



49
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 49

def formatter(name, &) = register(:formatter, name, &)

#listener(name) ⇒ Object



57
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 57

def listener(name, &) = register(:listener, name, &)

#processor(name) ⇒ Object



47
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 47

def processor(name, &) = register(:processor, name, &)

#subscriber(name) ⇒ Object



55
# File 'lib/julewire/core/testing/chaos/catalog.rb', line 55

def subscriber(name, &) = register(:subscriber, name, &)