From: David Lutterkort <[email protected]>
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