public
Description: Rubinius, the Ruby VM
Homepage: http://rubini.us
Clone URL: git://github.com/evanphx/rubinius.git
commit  03cb539f42f0b558fa29911c1dfc71ec5f2b183f
tree    067dd461713bfeddb7ff8c3eb7b96eed0dfe3d98
parent  6c811f8a9fd4c8f78fb470e2d945beabc202b2c7
rubinius / spec / ruby / 1.8 / library / drb / start_service_spec.rb
100644 34 lines (30 sloc) 1.091 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require File.dirname(__FILE__) + '/../../spec_helper'
require File.dirname(__FILE__) + '/fixtures/test_server'
require 'drb'
 
describe "DRb.start_service" do
  before :all do
    port = 9001 + (Process.pid & 7)
    @url = "druby://localhost:#{port}"
  end
 
  it "should run a basic remote call" do
    lambda { DRb.current_server }.should raise_error(DRb::DRbServerNotFound)
    server = DRb.start_service(@url, TestServer.new)
    DRb.current_server.should == server
    obj = DRbObject.new(nil, @url)
    obj.add(1,2,3).should == 6
    DRb.stop_service
    lambda { DRb.current_server }.should raise_error(DRb::DRbServerNotFound)
  end
 
  it "should run a basic remote call passing a block" do
    lambda { DRb.current_server }.should raise_error(DRb::DRbServerNotFound)
    server = DRb.start_service(@url, TestServer.new)
    DRb.current_server.should == server
    obj = DRbObject.new(nil, @url)
    obj.add_yield(2) do |i|
      i.should == 2
      i+1
    end.should == 4
    DRb.stop_service
    lambda { DRb.current_server }.should raise_error(DRb::DRbServerNotFound)
  end
end