Sha256: f8bae84c3e7590c4ba77f40a1c4e61ac9b8b08e91f81e1b42769917c1716d6c2

Contents?: true

Size: 1.68 KB

Versions: 16

Compression:

Stored size: 1.68 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(:response) {
      tag = Generic::Remote::Tag.new
      tag.errors << error
      tag
    }    

    subject { Tag.new }

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

    context "when the response doesn't respond to errors" do
      let(:response) { Generic::Remote::Tag.new }

      it "doesn't add errors" do
        subject.add_errors_from_response(response)
        subject.errors.empty?.should be_true
      end
    end

    context "when no response is given" do
      before { subject.stub(:last_response).and_return(response) }

      it "uses the last response" do
        subject.add_errors_from_response
        subject.errors[:name].should =~ ['Boom!']
      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

16 entries across 16 versions & 1 rubygems

Version Path
active_remote-2.0.2 spec/lib/active_remote/serialization_spec.rb
active_remote-2.0.1 spec/lib/active_remote/serialization_spec.rb
active_remote-2.0.0 spec/lib/active_remote/serialization_spec.rb
active_remote-2.0.0.rc2 spec/lib/active_remote/serialization_spec.rb
active_remote-2.0.0.rc1 spec/lib/active_remote/serialization_spec.rb
active_remote-1.8.1 spec/lib/active_remote/serialization_spec.rb
active_remote-1.8.0 spec/lib/active_remote/serialization_spec.rb
active_remote-1.8.0.rc1 spec/lib/active_remote/serialization_spec.rb
active_remote-1.7.1 spec/lib/active_remote/serialization_spec.rb
active_remote-1.7.0 spec/lib/active_remote/serialization_spec.rb
active_remote-1.6.1 spec/lib/active_remote/serialization_spec.rb
active_remote-1.6.0 spec/lib/active_remote/serialization_spec.rb
active_remote-1.5.9 spec/lib/active_remote/serialization_spec.rb
active_remote-1.5.8 spec/lib/active_remote/serialization_spec.rb
active_remote-1.5.7 spec/lib/active_remote/serialization_spec.rb
active_remote-1.5.6 spec/lib/active_remote/serialization_spec.rb