Sha256: 48320f32e7a045f9670d6f429800bf8628b88cc160281da0dab2910fc7aa4318

Contents?: true

Size: 1.46 KB

Versions: 9

Compression:

Stored size: 1.46 KB

Contents

require 'spec_helper'
require 'spec/support/test/resource_service'

RSpec.describe 'works through class inheritance' do
  module Corp
    module Protobuf
      class Error < ::Protobuf::Message
        required :string, :foo, 1
      end
    end
  end
  module Corp
    class ErrorHandler < Corp::Protobuf::Error
    end
  end

  let(:args) { { :foo => 'bar' } }
  let(:parent_class) { Corp::Protobuf::Error }
  let(:inherited_class) { Corp::ErrorHandler }

  specify '#encode' do
    expected_result = "\n\x03bar"
    expected_result.force_encoding(Encoding::BINARY)
    expect(parent_class.new(args).encode).to eq(expected_result)
    expect(inherited_class.new(args).encode).to eq(expected_result)
  end

  specify '#to_hash' do
    expect(parent_class.new(args).to_hash).to eq(args)
    expect(inherited_class.new(args).to_hash).to eq(args)
  end

  specify '#to_json' do
    expect(parent_class.new(args).to_json).to eq(args.to_json)
    expect(inherited_class.new(args).to_json).to eq(args.to_json)
  end

  specify '.encode' do
    expected_result = "\n\x03bar"
    expected_result.force_encoding(Encoding::BINARY)
    expect(parent_class.encode(args)).to eq(expected_result)
    expect(inherited_class.encode(args)).to eq(expected_result)
  end

  specify '.decode' do
    raw_value = "\n\x03bar"
    raw_value.force_encoding(Encoding::BINARY)
    expect(parent_class.decode(raw_value).to_hash).to eq(args)
    expect(inherited_class.decode(raw_value).to_hash).to eq(args)
  end

end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
protobuf-3.5.5 spec/functional/class_inheritance_spec.rb
protobuf-3.5.4 spec/functional/class_inheritance_spec.rb
protobuf-3.5.3 spec/functional/class_inheritance_spec.rb
protobuf-3.5.2 spec/functional/class_inheritance_spec.rb
protobuf-3.5.1 spec/functional/class_inheritance_spec.rb
prepor-protobuf-3.5.1 spec/functional/class_inheritance_spec.rb
prepor-protobuf-3.5.0 spec/functional/class_inheritance_spec.rb
protobuf-3.5.0 spec/functional/class_inheritance_spec.rb
protobuf-3.4.4 spec/functional/class_inheritance_spec.rb