spec/ripple/serialization_spec.rb in ripple-0.9.5 vs spec/ripple/serialization_spec.rb in ripple-1.0.0.beta

- old
+ new

@@ -1,24 +1,11 @@ -# Copyright 2010 Sean Cribbs, Sonian Inc., and Basho Technologies, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -require File.expand_path("../../spec_helper", __FILE__) +require 'spec_helper' describe Ripple::Serialization do - require 'support/models/invoice' - require 'support/models/note' - require 'support/models/customer' + # 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 @@ -31,12 +18,24 @@ 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')