Sha256: 347b53926cde0afdf51518aa89080ea973860220c808bc5f57ab675a8a75038e

Contents?: true

Size: 1.22 KB

Versions: 15

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true
require_relative 'test_helper'
require 'mocha/minitest'

module Dynflow
  describe 'flow' do

    class TestRegistry < Flows::Registry
      class << self
        def reset!
          @serialization_map = {}
        end
      end
    end

    after do
      TestRegistry.reset!
    end

    describe "registry" do
      it "allows registering values" do
        TestRegistry.register!(TestRegistry, 'TS')
        TestRegistry.register!(Integer, 'I')
        map = TestRegistry.instance_variable_get("@serialization_map")
        _(map).must_equal({'TS' => TestRegistry, 'I' => Integer})
      end

      it "prevents overwriting values" do
        TestRegistry.register!(Integer, 'I')
        _(-> { TestRegistry.register!(Float, 'I') }).must_raise Flows::Registry::IdentifierTaken
      end

      it "encodes and decodes values" do
        TestRegistry.register!(Integer, 'I')
        _(TestRegistry.encode(Integer)).must_equal 'I'
      end

      it "raises an exception when unknown key is requested" do
        _(-> { TestRegistry.encode(Float) }).must_raise Flows::Registry::UnknownIdentifier
        _(-> { TestRegistry.decode('F') }).must_raise Flows::Registry::UnknownIdentifier
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
dynflow-1.8.2 test/flows_test.rb
dynflow-1.8.1 test/flows_test.rb
dynflow-1.8.0 test/flows_test.rb
dynflow-1.7.0 test/flows_test.rb
dynflow-1.6.11 test/flows_test.rb
dynflow-1.6.10 test/flows_test.rb
dynflow-1.6.8 test/flows_test.rb
dynflow-1.6.7 test/flows_test.rb
dynflow-1.6.6 test/flows_test.rb
dynflow-1.6.5 test/flows_test.rb
dynflow-1.6.4 test/flows_test.rb
dynflow-1.6.3 test/flows_test.rb
dynflow-1.6.2 test/flows_test.rb
dynflow-1.6.1 test/flows_test.rb
dynflow-1.5.0 test/flows_test.rb