Sha256: 19a2ff49f6b1fe0b280bc9cd688a99271b6a5e9ac0efe9c66c7013f70040f1c3

Contents?: true

Size: 1.32 KB

Versions: 5

Compression:

Stored size: 1.32 KB

Contents

#!/usr/bin/ruby

$: << "../lib"


require "runit/testcase"
require "runit/cui/testrunner"
require 'jiji/util/block_to_session'
require 'logger'
require 'csv'

class BlockToSessionTest <  RUNIT::TestCase
  
  def setup
  end

  def teardown
  end

  def test_basic
    
    buff = ""
    s = Session.new {|wait|
      do_as( "a", "b", buff ) {|a,b,log|
        log << "#{a}.#{b}.wait."
        wait.call( a, b, log )
      }
    }
    assert_equals buff, "start.a.b.wait."
    
    # リクエストを送る
    assert_equals "result", s.request {|a,b,log|
      log << "#{a}.#{b}.req."
      "result"
    }
    assert_equals buff, "start.a.b.wait.a.b.req."
    
    assert_equals "result2", s.request {|a,b,log|
      log << "#{a}.#{b}.req."
      "result2"
    }
    assert_equals buff, "start.a.b.wait.a.b.req.a.b.req."
    
    # リクエスト中にエラー#呼び出し元に伝搬される
    begin
      s.request {|a,b,log|
        raise NameError.new("test")
      }
      fail
    rescue NameError
    end
    begin
      s.request {|a,b,log|
        raise Exception.new
      }
      fail
    rescue Exception
    end
    
    s.close
    assert_equals buff, "start.a.b.wait.a.b.req.a.b.req.end."
    
  end

  def do_as( a,b,log ) 
    begin
      log << "start."
      yield a, b, log
    ensure
      log << "end."
    end
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
unageanu-jiji-0.1.0 test/test_BlockToSession.rb
unageanu-jiji-1.0.0 test/test_BlockToSession.rb
unageanu-jiji-1.0.1 test/test_BlockToSession.rb
unageanu-jiji-1.0.2 test/test_BlockToSession.rb
unageanu-jiji-1.0.3 test/test_BlockToSession.rb