On 02/08, [email protected] wrote: ACK, nice catch.
-- Michal > From: David Lutterkort <[email protected]> > > Previously, if you assigned nil to properties, ent_properties would end up > being "null" which is not valid JSON. > --- > server/lib/db/entity.rb | 5 +++++ > server/tests/cimi/db/entity_test.rb | 29 +++++++++++++++++++++++++++++ > 2 files changed, 34 insertions(+) > create mode 100644 server/tests/cimi/db/entity_test.rb > > diff --git a/server/lib/db/entity.rb b/server/lib/db/entity.rb > index 08ed70b..fa8109c 100644 > --- a/server/lib/db/entity.rb > +++ b/server/lib/db/entity.rb > @@ -18,6 +18,11 @@ module Deltacloud > retval > end > > + def properties=(v) > + # Make sure @properties is always a Hash > + @properties = v || {} > + end > + > def before_save > self.ent_properties = properties.to_json > super > diff --git a/server/tests/cimi/db/entity_test.rb > b/server/tests/cimi/db/entity_test.rb > new file mode 100644 > index 0000000..4c31b66 > --- /dev/null > +++ b/server/tests/cimi/db/entity_test.rb > @@ -0,0 +1,29 @@ > +require 'rubygems' > +require 'require_relative' if RUBY_VERSION < '1.9' > +require 'minitest/autorun' > + > +require_relative 'db_helper.rb' > +require_relative '../spec_helper.rb' > +require_relative './../collections/common.rb' > + > +describe "Deltacloud::Database::Entity" do > + Provider = Deltacloud::Database::Provider > + Entity = Deltacloud::Database::Entity > + BaseModel = CIMI::Model::Base > + > + before do > + ENV['RACK_ENV'] = 'development' > + @prov = Provider::lookup > + end > + > + it 'newly created entities have valid ent_properties' do > + model = BaseModel.new(:id => "/base/42") > + ent = Entity.retrieve(model) > + ent.properties = nil > + ent.exists?.must_equal false > + ent.save > + > + ent = Entity.retrieve(model) > + ent.exists?.must_equal true > + end > +end > -- > 1.8.1.2 > -- Michal Fojtik <[email protected]> Deltacloud API, CloudForms
