Sha256: b83327c01b44c669f347bb514439501e9f4eaf6efd2ace452c0207e32136cc07

Contents?: true

Size: 1.67 KB

Versions: 24

Compression:

Stored size: 1.67 KB

Contents

require File.dirname(__FILE__) + "/../test_helper"

unit_tests do
  test "loading a marshallable exception evals the classname and returns an instance of the original exception" do
    original = RuntimeError.new "message"
    original.set_backtrace ['1', '2']

    marshalled = DeepTest::MarshallableExceptionWrapper.new(original)
    DeepTest::MarshallableExceptionWrapper.any_instance.expects(:eval).
      with("::RuntimeError").returns(RuntimeError)

    loaded = Marshal.load(Marshal.dump(marshalled)).resolve

    assert_equal original.class,     loaded.class
    assert_equal original.message,   loaded.message
    assert_equal original.backtrace, loaded.backtrace
  end

  test "loading a marshallable exception when class is not available returns an instance of unloadable exception" do
    original = RuntimeError.new "message"
    original.set_backtrace ['1', '2']

    marshalled = DeepTest::MarshallableExceptionWrapper.new(original)
    DeepTest::MarshallableExceptionWrapper.any_instance.expects(:eval).
      raises("Eval Error")

    loaded = Marshal.load(Marshal.dump(marshalled)).resolve

    assert_equal DeepTest::UnloadableException, loaded.class
    assert_equal "RuntimeError: " + original.message,   loaded.message
    assert_equal original.backtrace, loaded.backtrace
  end

  test "loading a marshallable exception when class init throws an error returns an unloadable exception" do
    original = RuntimeError.new "message"

    marshalled = DeepTest::MarshallableExceptionWrapper.new(original)
    RuntimeError.expects(:new).raises(StandardError.new)

    loaded = Marshal.load(Marshal.dump(marshalled)).resolve

    assert_equal DeepTest::UnloadableException, loaded.class
  end
end

Version data entries

24 entries across 24 versions & 4 rubygems

Version Path
jason-o-matic-deep_test-1.2.2.1 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.10 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.11 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.12 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.13 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.14 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.2 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.3 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.4 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.5 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.6 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.7 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.8 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.9 test/deep_test/marshallable_exception_wrapper_test.rb
jperkins-deep_test-1.2.2 test/deep_test/marshallable_exception_wrapper_test.rb
jason-o-matic-deep_test-1.2.2.15 test/deep_test/marshallable_exception_wrapper_test.rb
jstorimer-deep-test-1.4.0 test/deep_test/marshallable_exception_wrapper_test.rb
jstorimer-deep-test-1.3.0 test/deep_test/marshallable_exception_wrapper_test.rb
jstorimer-deep-test-1.2.0 test/deep_test/marshallable_exception_wrapper_test.rb
jstorimer-deep-test-1.1.0 test/deep_test/marshallable_exception_wrapper_test.rb