Sha256: 3965eacc616523cdfbef124cfcb757fcc93b18ed6fbe1c3d636fa81c23aaf4f8

Contents?: true

Size: 1.53 KB

Versions: 3

Compression:

Stored size: 1.53 KB

Contents

require 'spec_helper'

describe Ripple::Serialization do
  # require 'support/models/invoice'
  # require 'support/models/note'
  # require 'support/models/customer'

  it "should provide JSON serialization" do
    Invoice.new.should respond_to(:to_json)
  end

  context "when serializing" do
    it "should include attributes" do
      Note.new(:text => "Dear Jane,...").serializable_hash.should include('text')
    end

    it "should include the document key" do
      doc = Invoice.new
      doc.key = "1"
      doc.serializable_hash['key'].should == "1"
    end

    it "should be able to exclude the document key" do
      doc = Invoice.new
      doc.key = "1"
      doc.serializable_hash(:except => [:key]).should_not include("key")
    end

    it "should include embedded documents by default" do
      doc = Invoice.new(:note => {:text => "Dear customer,..."}).serializable_hash
      doc['note'].should eql({'text' => "Dear customer,..."})
    end

    it "should exclude the _type field from embedded documents" do
      doc = Invoice.new
      doc.note = Note.new :text => "Dear customer,..."
      doc.serializable_hash['note'].should_not include("_type")
    end

    it "should exclude specified attributes" do
      hash = Invoice.new.serializable_hash(:except => [:created_at])
      hash.should_not include('created_at')
    end

    it "should limit to specified attributes" do
      hash = Invoice.new.serializable_hash(:only => [:created_at])
      hash.should include('created_at')
      hash.should_not include('updated_at')
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
wyngle-ripple-0.1.0 spec/ripple/serialization_spec.rb
ripple-1.0.0.beta2 spec/ripple/serialization_spec.rb
ripple-1.0.0.beta spec/ripple/serialization_spec.rb