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')