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