require 'spec_helper' require 'rflow/message' class RFlow class Message describe Data do let(:string) { 'this is a string to be serialized' } let(:invalid_schema) { 'invalid schema' } let(:valid_schema) { '{"type": "string"}' } let(:serialized_string) { encode_avro(valid_schema, string) } context "if created without a schema" do it "should throw an exception" do expect { Data.new(nil) }.to raise_error(ArgumentError, /^Invalid schema/) end end context "if created with an invalid schema for the serialization" do ['avro', :avro].each do |it| it "should throw an exception for serialization type #{it.inspect}" do expect { Data.new(invalid_schema, it) }.to raise_error(ArgumentError, /^Invalid schema/) end end end context "if created with a valid avro schema" do ['avro', :avro].each do |it| it "should instantiate correctly for serialization type #{it.inspect}" do expect { Data.new(valid_schema, it) }.to_not raise_error end end context "if created with a non-avro data serialization" do ['unknown', :unknown, 'xml', :xml].each do |it| it "should throw an exception for serialization type #{it.inspect}" do expect { Data.new(valid_schema, it) }.to raise_error( ArgumentError, 'Only Avro serialization_type supported at the moment') end end end context "if created with an avro serialization" do ['avro', :avro].each do |it| it "should instantiate correctly for serialization type #{it.inspect}" do expect { Data.new(valid_schema, it) }.to_not raise_error end end context "if created with a serialized data object" do it "should instantiate correctly" do expect { Data.new(valid_schema, 'avro', serialized_string )}.to_not raise_error end end end end end end end