Sha256: c5a22df5a4aeafb1a4555b07cb0b851fe2b7aa5ffad0d861239ab2f72fdb7925

Contents?: true

Size: 1.56 KB

Versions: 2

Compression:

Stored size: 1.56 KB

Contents

require 'helper'

class ContextResultTest < NeoDCICase
  let(:result) { Neo::DCI::ContextResult.new }
  let(:error)  { RuntimeError.new  }
  let(:data)   { {:foo  => :bar}   }

  test "returns success? when no error present" do
    result.success!
    assert result.success?
    assert result.processed?
    refute result.failure?
    assert_nil result.error
  end

  test "returns failure? on error" do
    result.failure!(error)
    refute result.success?
    assert result.failure?
    assert result.processed?
    assert_same error, result.error
  end

  test "returns not processed? on default" do
    refute result.processed?
    refute result.success?
    refute result.failure?
  end

  test "returns data as payload on success" do
    result.success!(data)
    assert_equal data[:foo], result.data.foo
  end

  test "returns data as payload on failure" do
    result.failure!(error, data)
    assert_equal data[:foo], result.data.foo
  end

  test "returns data as hash" do
    result.success!(data)
    assert_equal data, result.data.to_hash
  end

  context "frozen data" do
    test "after success!" do
      result.success!
      assert result.data.frozen?
    end
    test "after failure!" do
      result.failure!(error)
      assert result.data.frozen?
    end
  end

  context "can only be called once" do
    before do
      result.success!
    end

    test "with success!" do
      assert_raises ArgumentError do
        result.success!
      end
    end

    test "with failure!" do
      assert_raises ArgumentError do
        result.failure!(error)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
neo-dci-0.2.0 test/context_result_test.rb
neo-dci-0.1.0 test/context_result_test.rb