mirror of
https://github.com/valitydev/thrift.git
synced 2024-11-08 11:13:55 +00:00
2bd3a30b91
This means you no longer have to put the gen-rb folder in $: Author: Kevin Ballard <kevin@rapleaf.com> git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@671963 13f79535-47bb-0310-9956-ffa450edef68
51 lines
2.2 KiB
Ruby
51 lines
2.2 KiB
Ruby
require File.dirname(__FILE__) + '/spec_helper'
|
|
require 'thrift/serializer'
|
|
require File.dirname(__FILE__) + '/gen-rb/ThriftSpec_types'
|
|
|
|
class ThriftSerializerSpec < Spec::ExampleGroup
|
|
include Thrift
|
|
include SpecNamespace
|
|
|
|
describe Serializer do
|
|
it "should serialize structs to binary by default" do
|
|
serializer = Serializer.new
|
|
data = serializer.serialize(Hello.new(:greeting => "'Ello guv'nor!"))
|
|
data.should == "\x0B\x00\x01\x00\x00\x00\x0E'Ello guv'nor!\x00"
|
|
end
|
|
|
|
it "should serialize structs to the given protocol" do
|
|
protocol = mock("Protocol")
|
|
protocol.should_receive(:write_struct_begin).with("SpecNamespace::Hello")
|
|
protocol.should_receive(:write_field).with("greeting", Types::STRING, 1, "Good day")
|
|
protocol.should_receive(:write_field_stop)
|
|
protocol.should_receive(:write_struct_end)
|
|
protocolFactory = mock("ProtocolFactory")
|
|
protocolFactory.stub!(:get_protocol).and_return(protocol)
|
|
serializer = Serializer.new(protocolFactory)
|
|
serializer.serialize(Hello.new(:greeting => "Good day"))
|
|
end
|
|
end
|
|
|
|
describe Deserializer do
|
|
it "should deserialize structs from binary by default" do
|
|
deserializer = Deserializer.new
|
|
data = "\x0B\x00\x01\x00\x00\x00\x0E'Ello guv'nor!\x00"
|
|
deserializer.deserialize(Hello.new, data).should == Hello.new(:greeting => "'Ello guv'nor!")
|
|
end
|
|
|
|
it "should deserialize structs from the given protocol" do
|
|
protocol = mock("Protocol")
|
|
protocol.should_receive(:read_struct_begin).and_return("SpecNamespace::Hello")
|
|
protocol.should_receive(:read_field_begin).and_return(["greeting", Types::STRING, 1],
|
|
[nil, Types::STOP, 0])
|
|
protocol.should_receive(:read_type).with(Types::STRING).and_return("Good day")
|
|
protocol.should_receive(:read_field_end)
|
|
protocol.should_receive(:read_struct_end)
|
|
protocolFactory = mock("ProtocolFactory")
|
|
protocolFactory.stub!(:get_protocol).and_return(protocol)
|
|
deserializer = Deserializer.new(protocolFactory)
|
|
deserializer.deserialize(Hello.new, "").should == Hello.new(:greeting => "Good day")
|
|
end
|
|
end
|
|
end
|