Sha256: f2d1aa432f9035fdc6ab6d65044afc0a226b1c704ee740fbf2bcb47e1e466d75

Contents?: true

Size: 1.32 KB

Versions: 6

Compression:

Stored size: 1.32 KB

Contents

require_relative '../helper'

class TestSkeinClientWorker < Test::Unit::TestCase
  class ErrorGenerator < Skein::Client::Worker
    class CustomError < RuntimeError
    end

    def raises_error
      raise CustomError, 'Example error!'
    end
  end

  def test_example
    worker = Skein::Client::Worker.new('test_rpc')
    handler = Skein::Handler.for(worker)

    message = {
      method: 'ident',
      params: [ ],
      id: '43d8352c-4907-4c32-9c81-fc34e91a3884'
    }

    handler.handle(JSON.dump(message)) do |response_json, error|
      response = JSON.load(response_json)

      expected = {
        'result' => worker.ident,
        'error' => nil,
        'id' => message[:id]
      }

      assert_equal(expected, response)
    end

  ensure
    worker and worker.close
  end

  def test_throws_exception
    worker = ErrorGenerator.new('test_error')
    handler = Skein::Handler.for(worker)

    message = {
      method: 'raises_error',
      id: '29fe8a40-fccf-43c6-ba48-818598c66e6f'
    }

    handler.handle(JSON.dump(message)) do |response_json, error|
      expected = {
        'result' => nil,
        'error' => '[TestSkeinClientWorker::ErrorGenerator::CustomError] Example error!',
        'id' => message[:id]
      }

      assert_equal(expected.to_json, response_json)
    end

  ensure
    worker and worker.close
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
skein-0.3.7 test/unit/test_skein_client_worker.rb
skein-0.3.6 test/unit/test_skein_client_worker.rb
skein-0.3.5 test/unit/test_skein_client_worker.rb
skein-0.3.2 test/unit/test_skein_client_worker.rb
skein-0.3.1 test/unit/test_skein_client_worker.rb
skein-0.3.0 test/unit/test_skein_client_worker.rb