From: David Lutterkort <lut...@redhat.com> There's no Fixnum#empty?; convert everything to a String before checking for emptiness. --- server/lib/cimi/models/schema.rb | 2 +- server/tests/cimi/model/resource_spec.rb | 40 ++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 server/tests/cimi/model/resource_spec.rb
diff --git a/server/lib/cimi/models/schema.rb b/server/lib/cimi/models/schema.rb index 3f8eb0f..53868a7 100644 --- a/server/lib/cimi/models/schema.rb +++ b/server/lib/cimi/models/schema.rb @@ -58,7 +58,7 @@ class CIMI::Model::Schema end def valid?(value) - !value.nil? and !value.empty? + !value.nil? and !value.to_s.empty? end end diff --git a/server/tests/cimi/model/resource_spec.rb b/server/tests/cimi/model/resource_spec.rb new file mode 100644 index 0000000..e59bfab --- /dev/null +++ b/server/tests/cimi/model/resource_spec.rb @@ -0,0 +1,40 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you 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 'rubygems' +require 'require_relative' if RUBY_VERSION < '1.9' + +require_relative '../spec_helper.rb' if require 'minitest/autorun' + +describe "Resource" do + + class ReqResource < CIMI::Model::Resource + scalar :req, :required => true + end + + describe "required attributes" do + it "should require a value" do + obj = ReqResource.from_json({}.to_json) + assert_raises CIMI::Model::ValidationError do + obj.validate!(:json) + end + end + + it "should validate numbers" do + obj = ReqResource.from_json({"req" => 42}.to_json) + obj.validate!(:json).must_be_nil + end + end +end -- 1.8.1.2