thrift 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/benchmark/gen-rb/benchmark_constants.rb +3 -2
  2. data/benchmark/gen-rb/benchmark_service.rb +52 -52
  3. data/benchmark/gen-rb/benchmark_types.rb +3 -2
  4. data/ext/binary_protocol_accelerated.c +5 -2
  5. data/ext/bytes.c +36 -0
  6. data/ext/bytes.h +31 -0
  7. data/ext/compact_protocol.c +7 -4
  8. data/ext/constants.h +4 -0
  9. data/ext/extconf.rb +3 -1
  10. data/ext/memory_buffer.c +11 -8
  11. data/ext/thrift_native.c +9 -0
  12. data/lib/thrift.rb +2 -0
  13. data/lib/thrift/bytes.rb +131 -0
  14. data/lib/thrift/protocol/base_protocol.rb +10 -0
  15. data/lib/thrift/protocol/binary_protocol.rb +5 -5
  16. data/lib/thrift/protocol/compact_protocol.rb +4 -3
  17. data/lib/thrift/protocol/json_protocol.rb +765 -0
  18. data/lib/thrift/transport/base_transport.rb +22 -20
  19. data/lib/thrift/transport/buffered_transport.rb +16 -10
  20. data/lib/thrift/transport/framed_transport.rb +11 -10
  21. data/lib/thrift/transport/http_client_transport.rb +7 -5
  22. data/lib/thrift/transport/io_stream_transport.rb +1 -1
  23. data/lib/thrift/transport/memory_buffer_transport.rb +6 -6
  24. data/lib/thrift/transport/socket.rb +4 -2
  25. data/spec/ThriftSpec.thrift +52 -1
  26. data/spec/base_protocol_spec.rb +44 -45
  27. data/spec/base_transport_spec.rb +49 -50
  28. data/spec/binary_protocol_accelerated_spec.rb +9 -13
  29. data/spec/binary_protocol_spec.rb +15 -10
  30. data/spec/binary_protocol_spec_shared.rb +62 -12
  31. data/spec/bytes_spec.rb +160 -0
  32. data/spec/client_spec.rb +13 -14
  33. data/spec/compact_protocol_spec.rb +3 -2
  34. data/spec/exception_spec.rb +39 -40
  35. data/spec/gen-rb/nonblocking_service.rb +193 -193
  36. data/spec/gen-rb/thrift_spec_constants.rb +3 -2
  37. data/spec/gen-rb/thrift_spec_types.rb +455 -262
  38. data/spec/http_client_spec.rb +16 -9
  39. data/spec/json_protocol_spec.rb +513 -0
  40. data/spec/mongrel_http_server_spec.rb +19 -22
  41. data/spec/nonblocking_server_spec.rb +18 -20
  42. data/spec/processor_spec.rb +13 -16
  43. data/spec/serializer_spec.rb +17 -19
  44. data/spec/server_socket_spec.rb +6 -7
  45. data/spec/server_spec.rb +46 -58
  46. data/spec/socket_spec.rb +11 -11
  47. data/spec/socket_spec_shared.rb +1 -1
  48. data/spec/spec_helper.rb +13 -10
  49. data/spec/struct_nested_containers_spec.rb +191 -0
  50. data/spec/struct_spec.rb +84 -86
  51. data/spec/types_spec.rb +65 -66
  52. data/spec/union_spec.rb +44 -46
  53. data/spec/unix_socket_spec.rb +8 -9
  54. data/test/debug_proto/gen-rb/debug_proto_test_constants.rb +8 -7
  55. data/test/debug_proto/gen-rb/debug_proto_test_types.rb +24 -23
  56. data/test/debug_proto/gen-rb/empty_service.rb +1 -1
  57. data/test/debug_proto/gen-rb/inherited.rb +3 -3
  58. data/test/debug_proto/gen-rb/reverse_order_service.rb +1 -1
  59. data/test/debug_proto/gen-rb/service_for_exception_with_a_map.rb +3 -3
  60. data/test/debug_proto/gen-rb/srv.rb +2 -2
  61. metadata +43 -49
@@ -17,10 +17,9 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
20
+ require 'spec_helper'
21
21
 
22
- class ThriftTypesSpec < Spec::ExampleGroup
23
- include Thrift
22
+ describe Thrift::Types do
24
23
 
25
24
  before(:each) do
26
25
  Thrift.type_checking = true
@@ -30,87 +29,87 @@ class ThriftTypesSpec < Spec::ExampleGroup
30
29
  Thrift.type_checking = false
31
30
  end
32
31
 
33
- describe "Type checking" do
32
+ context 'type checking' do
34
33
  it "should return the proper name for each type" do
35
- Thrift.type_name(Types::I16).should == "Types::I16"
36
- Thrift.type_name(Types::VOID).should == "Types::VOID"
37
- Thrift.type_name(Types::LIST).should == "Types::LIST"
34
+ Thrift.type_name(Thrift::Types::I16).should == "Types::I16"
35
+ Thrift.type_name(Thrift::Types::VOID).should == "Types::VOID"
36
+ Thrift.type_name(Thrift::Types::LIST).should == "Types::LIST"
38
37
  Thrift.type_name(42).should be_nil
39
38
  end
40
39
 
41
40
  it "should check types properly" do
42
- # lambda { Thrift.check_type(nil, Types::STOP) }.should raise_error(TypeError)
43
- lambda { Thrift.check_type(3, {:type => Types::STOP}, :foo) }.should raise_error(TypeError)
44
- lambda { Thrift.check_type(nil, {:type => Types::VOID}, :foo) }.should_not raise_error(TypeError)
45
- lambda { Thrift.check_type(3, {:type => Types::VOID}, :foo) }.should raise_error(TypeError)
46
- lambda { Thrift.check_type(true, {:type => Types::BOOL}, :foo) }.should_not raise_error(TypeError)
47
- lambda { Thrift.check_type(3, {:type => Types::BOOL}, :foo) }.should raise_error(TypeError)
48
- lambda { Thrift.check_type(42, {:type => Types::BYTE}, :foo) }.should_not raise_error(TypeError)
49
- lambda { Thrift.check_type(42, {:type => Types::I16}, :foo) }.should_not raise_error(TypeError)
50
- lambda { Thrift.check_type(42, {:type => Types::I32}, :foo) }.should_not raise_error(TypeError)
51
- lambda { Thrift.check_type(42, {:type => Types::I64}, :foo) }.should_not raise_error(TypeError)
52
- lambda { Thrift.check_type(3.14, {:type => Types::I32}, :foo) }.should raise_error(TypeError)
53
- lambda { Thrift.check_type(3.14, {:type => Types::DOUBLE}, :foo) }.should_not raise_error(TypeError)
54
- lambda { Thrift.check_type(3, {:type => Types::DOUBLE}, :foo) }.should raise_error(TypeError)
55
- lambda { Thrift.check_type("3", {:type => Types::STRING}, :foo) }.should_not raise_error(TypeError)
56
- lambda { Thrift.check_type(3, {:type => Types::STRING}, :foo) }.should raise_error(TypeError)
41
+ # lambda { Thrift.check_type(nil, Thrift::Types::STOP) }.should raise_error(Thrift::TypeError)
42
+ lambda { Thrift.check_type(3, {:type => Thrift::Types::STOP}, :foo) }.should raise_error(Thrift::TypeError)
43
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::VOID}, :foo) }.should_not raise_error(Thrift::TypeError)
44
+ lambda { Thrift.check_type(3, {:type => Thrift::Types::VOID}, :foo) }.should raise_error(Thrift::TypeError)
45
+ lambda { Thrift.check_type(true, {:type => Thrift::Types::BOOL}, :foo) }.should_not raise_error(Thrift::TypeError)
46
+ lambda { Thrift.check_type(3, {:type => Thrift::Types::BOOL}, :foo) }.should raise_error(Thrift::TypeError)
47
+ lambda { Thrift.check_type(42, {:type => Thrift::Types::BYTE}, :foo) }.should_not raise_error(Thrift::TypeError)
48
+ lambda { Thrift.check_type(42, {:type => Thrift::Types::I16}, :foo) }.should_not raise_error(Thrift::TypeError)
49
+ lambda { Thrift.check_type(42, {:type => Thrift::Types::I32}, :foo) }.should_not raise_error(Thrift::TypeError)
50
+ lambda { Thrift.check_type(42, {:type => Thrift::Types::I64}, :foo) }.should_not raise_error(Thrift::TypeError)
51
+ lambda { Thrift.check_type(3.14, {:type => Thrift::Types::I32}, :foo) }.should raise_error(Thrift::TypeError)
52
+ lambda { Thrift.check_type(3.14, {:type => Thrift::Types::DOUBLE}, :foo) }.should_not raise_error(Thrift::TypeError)
53
+ lambda { Thrift.check_type(3, {:type => Thrift::Types::DOUBLE}, :foo) }.should raise_error(Thrift::TypeError)
54
+ lambda { Thrift.check_type("3", {:type => Thrift::Types::STRING}, :foo) }.should_not raise_error(Thrift::TypeError)
55
+ lambda { Thrift.check_type(3, {:type => Thrift::Types::STRING}, :foo) }.should raise_error(Thrift::TypeError)
57
56
  hello = SpecNamespace::Hello.new
58
- lambda { Thrift.check_type(hello, {:type => Types::STRUCT, :class => SpecNamespace::Hello}, :foo) }.should_not raise_error(TypeError)
59
- lambda { Thrift.check_type("foo", {:type => Types::STRUCT}, :foo) }.should raise_error(TypeError)
60
- lambda { Thrift.check_type({:foo => 1}, {:type => Types::MAP}, :foo) }.should_not raise_error(TypeError)
61
- lambda { Thrift.check_type([1], {:type => Types::MAP}, :foo) }.should raise_error(TypeError)
62
- lambda { Thrift.check_type([1], {:type => Types::LIST}, :foo) }.should_not raise_error(TypeError)
63
- lambda { Thrift.check_type({:foo => 1}, {:type => Types::LIST}, :foo) }.should raise_error(TypeError)
64
- lambda { Thrift.check_type(Set.new([1,2]), {:type => Types::SET}, :foo) }.should_not raise_error(TypeError)
65
- lambda { Thrift.check_type([1,2], {:type => Types::SET}, :foo) }.should raise_error(TypeError)
66
- lambda { Thrift.check_type({:foo => true}, {:type => Types::SET}, :foo) }.should raise_error(TypeError)
57
+ lambda { Thrift.check_type(hello, {:type => Thrift::Types::STRUCT, :class => SpecNamespace::Hello}, :foo) }.should_not raise_error(Thrift::TypeError)
58
+ lambda { Thrift.check_type("foo", {:type => Thrift::Types::STRUCT}, :foo) }.should raise_error(Thrift::TypeError)
59
+ lambda { Thrift.check_type({:foo => 1}, {:type => Thrift::Types::MAP}, :foo) }.should_not raise_error(Thrift::TypeError)
60
+ lambda { Thrift.check_type([1], {:type => Thrift::Types::MAP}, :foo) }.should raise_error(Thrift::TypeError)
61
+ lambda { Thrift.check_type([1], {:type => Thrift::Types::LIST}, :foo) }.should_not raise_error(Thrift::TypeError)
62
+ lambda { Thrift.check_type({:foo => 1}, {:type => Thrift::Types::LIST}, :foo) }.should raise_error(Thrift::TypeError)
63
+ lambda { Thrift.check_type(Set.new([1,2]), {:type => Thrift::Types::SET}, :foo) }.should_not raise_error(Thrift::TypeError)
64
+ lambda { Thrift.check_type([1,2], {:type => Thrift::Types::SET}, :foo) }.should raise_error(Thrift::TypeError)
65
+ lambda { Thrift.check_type({:foo => true}, {:type => Thrift::Types::SET}, :foo) }.should raise_error(Thrift::TypeError)
67
66
  end
68
67
 
69
68
  it "should error out if nil is passed and skip_types is false" do
70
- lambda { Thrift.check_type(nil, {:type => Types::BOOL}, :foo, false) }.should raise_error(TypeError)
71
- lambda { Thrift.check_type(nil, {:type => Types::BYTE}, :foo, false) }.should raise_error(TypeError)
72
- lambda { Thrift.check_type(nil, {:type => Types::I16}, :foo, false) }.should raise_error(TypeError)
73
- lambda { Thrift.check_type(nil, {:type => Types::I32}, :foo, false) }.should raise_error(TypeError)
74
- lambda { Thrift.check_type(nil, {:type => Types::I64}, :foo, false) }.should raise_error(TypeError)
75
- lambda { Thrift.check_type(nil, {:type => Types::DOUBLE}, :foo, false) }.should raise_error(TypeError)
76
- lambda { Thrift.check_type(nil, {:type => Types::STRING}, :foo, false) }.should raise_error(TypeError)
77
- lambda { Thrift.check_type(nil, {:type => Types::STRUCT}, :foo, false) }.should raise_error(TypeError)
78
- lambda { Thrift.check_type(nil, {:type => Types::LIST}, :foo, false) }.should raise_error(TypeError)
79
- lambda { Thrift.check_type(nil, {:type => Types::SET}, :foo, false) }.should raise_error(TypeError)
80
- lambda { Thrift.check_type(nil, {:type => Types::MAP}, :foo, false) }.should raise_error(TypeError)
69
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::BOOL}, :foo, false) }.should raise_error(Thrift::TypeError)
70
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::BYTE}, :foo, false) }.should raise_error(Thrift::TypeError)
71
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::I16}, :foo, false) }.should raise_error(Thrift::TypeError)
72
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::I32}, :foo, false) }.should raise_error(Thrift::TypeError)
73
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::I64}, :foo, false) }.should raise_error(Thrift::TypeError)
74
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::DOUBLE}, :foo, false) }.should raise_error(Thrift::TypeError)
75
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::STRING}, :foo, false) }.should raise_error(Thrift::TypeError)
76
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::STRUCT}, :foo, false) }.should raise_error(Thrift::TypeError)
77
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::LIST}, :foo, false) }.should raise_error(Thrift::TypeError)
78
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::SET}, :foo, false) }.should raise_error(Thrift::TypeError)
79
+ lambda { Thrift.check_type(nil, {:type => Thrift::Types::MAP}, :foo, false) }.should raise_error(Thrift::TypeError)
81
80
  end
82
81
 
83
82
  it "should check element types on containers" do
84
- field = {:type => Types::LIST, :element => {:type => Types::I32}}
85
- lambda { Thrift.check_type([1, 2], field, :foo) }.should_not raise_error(TypeError)
86
- lambda { Thrift.check_type([1, nil, 2], field, :foo) }.should raise_error(TypeError)
87
- field = {:type => Types::MAP, :key => {:type => Types::I32}, :value => {:type => Types::STRING}}
88
- lambda { Thrift.check_type({1 => "one", 2 => "two"}, field, :foo) }.should_not raise_error(TypeError)
89
- lambda { Thrift.check_type({1 => "one", nil => "nil"}, field, :foo) }.should raise_error(TypeError)
90
- lambda { Thrift.check_type({1 => nil, 2 => "two"}, field, :foo) }.should raise_error(TypeError)
91
- field = {:type => Types::SET, :element => {:type => Types::I32}}
92
- lambda { Thrift.check_type(Set.new([1, 2]), field, :foo) }.should_not raise_error(TypeError)
93
- lambda { Thrift.check_type(Set.new([1, nil, 2]), field, :foo) }.should raise_error(TypeError)
94
- lambda { Thrift.check_type(Set.new([1, 2.3, 2]), field, :foo) }.should raise_error(TypeError)
95
-
96
- field = {:type => Types::STRUCT, :class => SpecNamespace::Hello}
97
- lambda { Thrift.check_type(SpecNamespace::BoolStruct, field, :foo) }.should raise_error(TypeError)
83
+ field = {:type => Thrift::Types::LIST, :element => {:type => Thrift::Types::I32}}
84
+ lambda { Thrift.check_type([1, 2], field, :foo) }.should_not raise_error(Thrift::TypeError)
85
+ lambda { Thrift.check_type([1, nil, 2], field, :foo) }.should raise_error(Thrift::TypeError)
86
+ field = {:type => Thrift::Types::MAP, :key => {:type => Thrift::Types::I32}, :value => {:type => Thrift::Types::STRING}}
87
+ lambda { Thrift.check_type({1 => "one", 2 => "two"}, field, :foo) }.should_not raise_error(Thrift::TypeError)
88
+ lambda { Thrift.check_type({1 => "one", nil => "nil"}, field, :foo) }.should raise_error(Thrift::TypeError)
89
+ lambda { Thrift.check_type({1 => nil, 2 => "two"}, field, :foo) }.should raise_error(Thrift::TypeError)
90
+ field = {:type => Thrift::Types::SET, :element => {:type => Thrift::Types::I32}}
91
+ lambda { Thrift.check_type(Set.new([1, 2]), field, :foo) }.should_not raise_error(Thrift::TypeError)
92
+ lambda { Thrift.check_type(Set.new([1, nil, 2]), field, :foo) }.should raise_error(Thrift::TypeError)
93
+ lambda { Thrift.check_type(Set.new([1, 2.3, 2]), field, :foo) }.should raise_error(Thrift::TypeError)
94
+
95
+ field = {:type => Thrift::Types::STRUCT, :class => SpecNamespace::Hello}
96
+ lambda { Thrift.check_type(SpecNamespace::BoolStruct, field, :foo) }.should raise_error(Thrift::TypeError)
98
97
  end
99
98
 
100
- it "should give the TypeError a readable message" do
99
+ it "should give the Thrift::TypeError a readable message" do
101
100
  msg = "Expected Types::STRING, received Fixnum for field foo"
102
- lambda { Thrift.check_type(3, {:type => Types::STRING}, :foo) }.should raise_error(TypeError, msg)
101
+ lambda { Thrift.check_type(3, {:type => Thrift::Types::STRING}, :foo) }.should raise_error(Thrift::TypeError, msg)
103
102
  msg = "Expected Types::STRING, received Fixnum for field foo.element"
104
- field = {:type => Types::LIST, :element => {:type => Types::STRING}}
105
- lambda { Thrift.check_type([3], field, :foo) }.should raise_error(TypeError, msg)
103
+ field = {:type => Thrift::Types::LIST, :element => {:type => Thrift::Types::STRING}}
104
+ lambda { Thrift.check_type([3], field, :foo) }.should raise_error(Thrift::TypeError, msg)
106
105
  msg = "Expected Types::I32, received NilClass for field foo.element.key"
107
- field = {:type => Types::LIST,
108
- :element => {:type => Types::MAP,
109
- :key => {:type => Types::I32},
110
- :value => {:type => Types::I32}}}
111
- lambda { Thrift.check_type([{nil => 3}], field, :foo) }.should raise_error(TypeError, msg)
106
+ field = {:type => Thrift::Types::LIST,
107
+ :element => {:type => Thrift::Types::MAP,
108
+ :key => {:type => Thrift::Types::I32},
109
+ :value => {:type => Thrift::Types::I32}}}
110
+ lambda { Thrift.check_type([{nil => 3}], field, :foo) }.should raise_error(Thrift::TypeError, msg)
112
111
  msg = "Expected Types::I32, received NilClass for field foo.element.value"
113
- lambda { Thrift.check_type([{1 => nil}], field, :foo) }.should raise_error(TypeError, msg)
112
+ lambda { Thrift.check_type([{1 => nil}], field, :foo) }.should raise_error(Thrift::TypeError, msg)
114
113
  end
115
114
  end
116
115
  end
@@ -17,21 +17,19 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
20
+ require 'spec_helper'
21
21
 
22
- class ThriftUnionSpec < Spec::ExampleGroup
23
- include Thrift
24
- include SpecNamespace
22
+ describe 'Union' do
25
23
 
26
- describe Union do
24
+ describe Thrift::Union do
27
25
  it "should return nil value in unset union" do
28
- union = My_union.new
26
+ union = SpecNamespace::My_union.new
29
27
  union.get_set_field.should == nil
30
28
  union.get_value.should == nil
31
29
  end
32
30
 
33
31
  it "should set a field and be accessible through get_value and the named field accessor" do
34
- union = My_union.new
32
+ union = SpecNamespace::My_union.new
35
33
  union.integer32 = 25
36
34
  union.get_set_field.should == :integer32
37
35
  union.get_value.should == 25
@@ -39,30 +37,30 @@ class ThriftUnionSpec < Spec::ExampleGroup
39
37
  end
40
38
 
41
39
  it "should work correctly when instantiated with static field constructors" do
42
- union = My_union.integer32(5)
40
+ union = SpecNamespace::My_union.integer32(5)
43
41
  union.get_set_field.should == :integer32
44
42
  union.integer32.should == 5
45
43
  end
46
44
 
47
45
  it "should raise for wrong set field" do
48
- union = My_union.new
46
+ union = SpecNamespace::My_union.new
49
47
  union.integer32 = 25
50
48
  lambda { union.some_characters }.should raise_error(RuntimeError, "some_characters is not union's set field.")
51
49
  end
52
-
50
+
53
51
  it "should not be equal to nil" do
54
- union = My_union.new
52
+ union = SpecNamespace::My_union.new
55
53
  union.should_not == nil
56
54
  end
57
-
55
+
58
56
  it "should not equate two different unions, i32 vs. string" do
59
- union = My_union.new(:integer32, 25)
60
- other_union = My_union.new(:some_characters, "blah!")
57
+ union = SpecNamespace::My_union.new(:integer32, 25)
58
+ other_union = SpecNamespace::My_union.new(:some_characters, "blah!")
61
59
  union.should_not == other_union
62
60
  end
63
61
 
64
62
  it "should properly reset setfield and setvalue" do
65
- union = My_union.new(:integer32, 25)
63
+ union = SpecNamespace::My_union.new(:integer32, 25)
66
64
  union.get_set_field.should == :integer32
67
65
  union.some_characters = "blah!"
68
66
  union.get_set_field.should == :some_characters
@@ -71,24 +69,24 @@ class ThriftUnionSpec < Spec::ExampleGroup
71
69
  end
72
70
 
73
71
  it "should not equate two different unions with different values" do
74
- union = My_union.new(:integer32, 25)
75
- other_union = My_union.new(:integer32, 400)
72
+ union = SpecNamespace::My_union.new(:integer32, 25)
73
+ other_union = SpecNamespace::My_union.new(:integer32, 400)
76
74
  union.should_not == other_union
77
75
  end
78
76
 
79
77
  it "should not equate two different unions with different fields" do
80
- union = My_union.new(:integer32, 25)
81
- other_union = My_union.new(:other_i32, 25)
78
+ union = SpecNamespace::My_union.new(:integer32, 25)
79
+ other_union = SpecNamespace::My_union.new(:other_i32, 25)
82
80
  union.should_not == other_union
83
81
  end
84
82
 
85
83
  it "should inspect properly" do
86
- union = My_union.new(:integer32, 25)
84
+ union = SpecNamespace::My_union.new(:integer32, 25)
87
85
  union.inspect.should == "<SpecNamespace::My_union integer32: 25>"
88
86
  end
89
87
 
90
88
  it "should not allow setting with instance_variable_set" do
91
- union = My_union.new(:integer32, 27)
89
+ union = SpecNamespace::My_union.new(:integer32, 27)
92
90
  union.instance_variable_set(:@some_characters, "hallo!")
93
91
  union.get_set_field.should == :integer32
94
92
  union.get_value.should == 27
@@ -99,42 +97,42 @@ class ThriftUnionSpec < Spec::ExampleGroup
99
97
  trans = Thrift::MemoryBufferTransport.new
100
98
  proto = Thrift::BinaryProtocol.new(trans)
101
99
 
102
- union = My_union.new(:integer32, 25)
100
+ union = SpecNamespace::My_union.new(:integer32, 25)
103
101
  union.write(proto)
104
102
 
105
- other_union = My_union.new(:integer32, 25)
103
+ other_union = SpecNamespace::My_union.new(:integer32, 25)
106
104
  other_union.read(proto)
107
105
  other_union.should == union
108
106
  end
109
107
 
110
108
  it "should raise when validating unset union" do
111
- union = My_union.new
109
+ union = SpecNamespace::My_union.new
112
110
  lambda { union.validate }.should raise_error(StandardError, "Union fields are not set.")
113
111
 
114
- other_union = My_union.new(:integer32, 1)
112
+ other_union = SpecNamespace::My_union.new(:integer32, 1)
115
113
  lambda { other_union.validate }.should_not raise_error(StandardError, "Union fields are not set.")
116
114
  end
117
115
 
118
116
  it "should validate an enum field properly" do
119
- union = TestUnion.new(:enum_field, 3)
117
+ union = SpecNamespace::TestUnion.new(:enum_field, 3)
120
118
  union.get_set_field.should == :enum_field
121
- lambda { union.validate }.should raise_error(ProtocolException, "Invalid value of field enum_field!")
119
+ lambda { union.validate }.should raise_error(Thrift::ProtocolException, "Invalid value of field enum_field!")
122
120
 
123
- other_union = TestUnion.new(:enum_field, 1)
124
- lambda { other_union.validate }.should_not raise_error(ProtocolException, "Invalid value of field enum_field!")
121
+ other_union = SpecNamespace::TestUnion.new(:enum_field, 1)
122
+ lambda { other_union.validate }.should_not raise_error(Thrift::ProtocolException, "Invalid value of field enum_field!")
125
123
  end
126
124
 
127
125
  it "should properly serialize and match structs with a union" do
128
- union = My_union.new(:integer32, 26)
129
- swu = Struct_with_union.new(:fun_union => union)
126
+ union = SpecNamespace::My_union.new(:integer32, 26)
127
+ swu = SpecNamespace::Struct_with_union.new(:fun_union => union)
130
128
 
131
129
  trans = Thrift::MemoryBufferTransport.new
132
130
  proto = Thrift::CompactProtocol.new(trans)
133
131
 
134
132
  swu.write(proto)
135
133
 
136
- other_union = My_union.new(:some_characters, "hello there")
137
- swu2 = Struct_with_union.new(:fun_union => other_union)
134
+ other_union = SpecNamespace::My_union.new(:some_characters, "hello there")
135
+ swu2 = SpecNamespace::Struct_with_union.new(:fun_union => other_union)
138
136
 
139
137
  swu2.should_not == swu
140
138
 
@@ -143,30 +141,30 @@ class ThriftUnionSpec < Spec::ExampleGroup
143
141
  end
144
142
 
145
143
  it "should support old style constructor" do
146
- union = My_union.new(:integer32 => 26)
144
+ union = SpecNamespace::My_union.new(:integer32 => 26)
147
145
  union.get_set_field.should == :integer32
148
146
  union.get_value.should == 26
149
147
  end
150
148
 
151
149
  it "should not throw an error when inspected and unset" do
152
- lambda{TestUnion.new().inspect}.should_not raise_error
150
+ lambda{SpecNamespace::TestUnion.new().inspect}.should_not raise_error
153
151
  end
154
152
 
155
153
  it "should print enum value name when inspected" do
156
- My_union.new(:some_enum => SomeEnum::ONE).inspect.should == "<SpecNamespace::My_union some_enum: ONE (0)>"
154
+ SpecNamespace::My_union.new(:some_enum => SpecNamespace::SomeEnum::ONE).inspect.should == "<SpecNamespace::My_union some_enum: ONE (0)>"
157
155
 
158
- My_union.new(:my_map => {SomeEnum::ONE => [SomeEnum::TWO]}).inspect.should == "<SpecNamespace::My_union my_map: {ONE (0): [TWO (1)]}>"
156
+ SpecNamespace::My_union.new(:my_map => {SpecNamespace::SomeEnum::ONE => [SpecNamespace::SomeEnum::TWO]}).inspect.should == "<SpecNamespace::My_union my_map: {ONE (0): [TWO (1)]}>"
159
157
  end
160
158
 
161
159
  it "should offer field? methods" do
162
- My_union.new.some_enum?.should be_false
163
- My_union.new(:some_enum => SomeEnum::ONE).some_enum?.should be_true
164
- My_union.new(:im_true => false).im_true?.should be_true
165
- My_union.new(:im_true => true).im_true?.should be_true
160
+ SpecNamespace::My_union.new.some_enum?.should be_false
161
+ SpecNamespace::My_union.new(:some_enum => SpecNamespace::SomeEnum::ONE).some_enum?.should be_true
162
+ SpecNamespace::My_union.new(:im_true => false).im_true?.should be_true
163
+ SpecNamespace::My_union.new(:im_true => true).im_true?.should be_true
166
164
  end
167
165
 
168
166
  it "should pretty print binary fields" do
169
- TestUnion.new(:binary_field => "\001\002\003").inspect.should == "<SpecNamespace::TestUnion binary_field: 010203>"
167
+ SpecNamespace::TestUnion.new(:binary_field => "\001\002\003").inspect.should == "<SpecNamespace::TestUnion binary_field: 010203>"
170
168
  end
171
169
 
172
170
  it "should be comparable" do
@@ -177,10 +175,10 @@ class ThriftUnionSpec < Spec::ExampleGroup
177
175
  [1, 1, 1, 0]]
178
176
 
179
177
  objs = [
180
- TestUnion.new(:string_field, "blah"),
181
- TestUnion.new(:string_field, "blahblah"),
182
- TestUnion.new(:i32_field, 1),
183
- TestUnion.new()]
178
+ SpecNamespace::TestUnion.new(:string_field, "blah"),
179
+ SpecNamespace::TestUnion.new(:string_field, "blahblah"),
180
+ SpecNamespace::TestUnion.new(:i32_field, 1),
181
+ SpecNamespace::TestUnion.new()]
184
182
 
185
183
  for y in 0..3
186
184
  for x in 0..3
@@ -17,16 +17,15 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
20
+ require 'spec_helper'
21
21
  require File.expand_path("#{File.dirname(__FILE__)}/socket_spec_shared")
22
22
 
23
- class ThriftUNIXSocketSpec < Spec::ExampleGroup
24
- include Thrift
23
+ describe 'UNIXSocket' do
25
24
 
26
- describe UNIXSocket do
25
+ describe Thrift::UNIXSocket do
27
26
  before(:each) do
28
27
  @path = '/tmp/thrift_spec_socket'
29
- @socket = UNIXSocket.new(@path)
28
+ @socket = Thrift::UNIXSocket.new(@path)
30
29
  @handle = mock("Handle", :closed? => false)
31
30
  @handle.stub!(:close)
32
31
  ::UNIXSocket.stub!(:new).and_return(@handle)
@@ -41,14 +40,14 @@ class ThriftUNIXSocketSpec < Spec::ExampleGroup
41
40
 
42
41
  it "should accept an optional timeout" do
43
42
  ::UNIXSocket.stub!(:new)
44
- UNIXSocket.new(@path, 5).timeout.should == 5
43
+ Thrift::UNIXSocket.new(@path, 5).timeout.should == 5
45
44
  end
46
45
  end
47
46
 
48
- describe UNIXServerSocket do
47
+ describe Thrift::UNIXServerSocket do
49
48
  before(:each) do
50
49
  @path = '/tmp/thrift_spec_socket'
51
- @socket = UNIXServerSocket.new(@path)
50
+ @socket = Thrift::UNIXServerSocket.new(@path)
52
51
  end
53
52
 
54
53
  it "should create a handle when calling listen" do
@@ -63,7 +62,7 @@ class ThriftUNIXSocketSpec < Spec::ExampleGroup
63
62
  sock = mock("sock")
64
63
  handle.should_receive(:accept).and_return(sock)
65
64
  trans = mock("UNIXSocket")
66
- UNIXSocket.should_receive(:new).and_return(trans)
65
+ Thrift::UNIXSocket.should_receive(:new).and_return(trans)
67
66
  trans.should_receive(:handle=).with(sock)
68
67
  @socket.accept.should == trans
69
68
  end
@@ -1,12 +1,13 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.8.0)
2
+ # Autogenerated by Thrift Compiler (0.9.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
6
6
 
7
+ require 'thrift'
7
8
  require 'debug_proto_test_types'
8
9
 
9
- COMPACT_TEST = CompactProtoTestStruct.new({
10
+ COMPACT_TEST = ::CompactProtoTestStruct.new({
10
11
  %q"a_byte" => 127,
11
12
  %q"a_i16" => 32000,
12
13
  %q"a_i32" => 1000000000,
@@ -15,7 +16,7 @@ COMPACT_TEST = CompactProtoTestStruct.new({
15
16
  %q"a_string" => %q"my string",
16
17
  %q"true_field" => true,
17
18
  %q"false_field" => false,
18
- %q"empty_struct_field" => Empty.new({
19
+ %q"empty_struct_field" => ::Empty.new({
19
20
  }),
20
21
  %q"byte_list" => [
21
22
  -127,
@@ -69,9 +70,9 @@ COMPACT_TEST = CompactProtoTestStruct.new({
69
70
  false,
70
71
  ],
71
72
  %q"struct_list" => [
72
- Empty.new({
73
+ ::Empty.new({
73
74
  }),
74
- Empty.new({
75
+ ::Empty.new({
75
76
  }),
76
77
  ],
77
78
  %q"byte_set" => Set.new([
@@ -119,7 +120,7 @@ COMPACT_TEST = CompactProtoTestStruct.new({
119
120
  false,
120
121
  ]),
121
122
  %q"struct_set" => Set.new([
122
- Empty.new({
123
+ ::Empty.new({
123
124
  }),
124
125
  ]),
125
126
  %q"byte_byte_map" => {
@@ -266,7 +267,7 @@ MY_ENUM_MAP = {
266
267
  }
267
268
 
268
269
  EXTRA_CRAZY_MAP = {
269
- 1 => StructWithSomeEnum.new({
270
+ 1 => ::StructWithSomeEnum.new({
270
271
  %q"blah" => 2,
271
272
  }),
272
273
  }