Sha256: 1d9987ef11c55b9ce01d62f1a62b5e2594d7fa6d9e546f8942a7707a4fb52b5e

Contents?: true

Size: 1.44 KB

Versions: 12

Compression:

Stored size: 1.44 KB

Contents

require 'spec_helper'

describe ActiveRemote::Serialization do
  describe "#add_errors_from_response" do
    let(:error) { Generic::Error.new(:field => 'name', :message => 'Boom!') }
    let(:last_response) {
      tag = Generic::Remote::Tag.new
      tag.errors << error
      tag
    }

    subject { Tag.new }

    context "when the last response has errors" do

      before { subject.stub(:last_response).and_return(last_response) }

      it "adds the errors to the active remote object" do
        subject.add_errors_from_response
        subject.errors[:name].should =~ ['Boom!']
      end
    end

    context "when the last response doesn't respond to errors" do
      it "doesn't add errors" do
        subject.add_errors_from_response
        subject.errors.empty?.should be_true
      end
    end
  end

  describe "#serialize_records" do
    let(:last_response) {
      MessageWithOptions.new(:records => records)
    }
    let(:records) { [ { :foo => 'bar' } ] }

    subject { Tag.new }

    context "when the last response has records" do

      before { subject.stub(:last_response).and_return(last_response) }

      it "serializes records into active remote objects" do
        subject.serialize_records.each do |record|
          record.should be_a Tag
        end
      end
    end

    context "when the last response doesn't respond to records" do
      it "returns nil" do
        subject.serialize_records.should be_nil
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
active_remote-1.5.5 spec/lib/active_remote/serialization_spec.rb
active_remote-1.5.4 spec/lib/active_remote/serialization_spec.rb
active_remote-1.5.2 spec/lib/active_remote/serialization_spec.rb
active_remote-1.5.1 spec/lib/active_remote/serialization_spec.rb
active_remote-1.5.0 spec/lib/active_remote/serialization_spec.rb
active_remote-1.4.1 spec/lib/active_remote/serialization_spec.rb
active_remote-1.4.0 spec/lib/active_remote/serialization_spec.rb
active_remote-1.3.3 spec/lib/active_remote/serialization_spec.rb
active_remote-1.3.2 spec/lib/active_remote/serialization_spec.rb
active_remote-1.3.1 spec/lib/active_remote/serialization_spec.rb
active_remote-1.3.0 spec/lib/active_remote/serialization_spec.rb
active_remote-1.2.1 spec/lib/active_remote/serialization_spec.rb