blob: 5aa5434a1b3d5dac9342be8198333ba86e749ecd [file] [log] [blame]
#
# 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.
$:.unshift File.join(File.dirname(__FILE__))
require "test_helper.rb"
class ResourceMetadataCollection < CIMI::Test::Spec
RESOURCE_URI =
"http://schemas.dmtf.org/cimi/1/ResourceMetadataCollection"
ROOTS = ["resourceMetadata"]
# Ensure test executes in test plan order
i_suck_and_my_tests_are_order_dependent!
# 1.1: Query the CEP
model :subject, :cache => true do |fmt|
cep(:accept => fmt)
end
# This test must adhere to one of the "Query the CEP" test in the previous section.
query_the_cep(ROOTS)
it "should contain at least one Resource Metadata resource" do
r = ROOTS[0].underscore.to_sym
model = fetch(subject.send(r).href)
log.info(model.attribute_values[r][0])
unless !model.attribute_values[r][0].nil?()
skip "No ResourceMetadata resource available - ending test."
end
end
# 1.2: Query the resource_metadata collection
cep_json = cep(:accept => :json)
model :resource_metadata do |fmt|
get cep_json.json[ROOTS[0]]["href"], :accept => fmt
end
it "should have a response code equal to 200" do
last_response.code.must_equal 200
end
it "should have a response header" do
last_response.content_type.must_be_one_of CONTENT_TYPES.values
end
it "should have an id equal to the URL of the resource metadata collection" do
resource_metadata.id.must_equal cep_json.json[ROOTS[0]]["href"]
end
it "should have a resourceURI set to point to ResourceMetadataCollection", :only => :json do
last_response.json["resourceURI"].must_equal RESOURCE_URI
end
it "should have a count value that matches the number of ResourceMetadata elements", :only => :json do
last_response.json["count"].must_equal last_response.json["resourceMetadata"].size()
end
it "should list ResourceMetadata elements", :only => :json do
$i=0
while $i < last_response.json["resourceMetadata"].size()
log.info(last_response.json["resourceMetadata"][$i]["id"])
last_response.json["resourceMetadata"][$i]["id"].wont_be_empty
$i +=1
end
end
# For each collection appearing in the CEP there should be a
# ResourceMetadata entry with the corresponding typeURI in the ResourceMetadata collection
it "should include at least one of capabilities/attributes/actions", :only => :json do
rmd_type = ["capabilities", "attributes", "actions"]
(rmd_type.any? { |rmd| last_response.json.to_s().include? rmd }).must_equal true
end
end