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

Reply via email to