# # Author:: Vasundhara Jagdale () # Copyright:: Copyright (c) 2013-2014 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed 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 'spec_helper' require 'chef/knife/openstack_floating_ip_list' require 'chef/knife/cloud/openstack_service' require 'support/shared_examples_for_command' describe Chef::Knife::Cloud::OpenstackFloatingIpList do let (:instance) { Chef::Knife::Cloud::OpenstackFloatingIpList.new } context 'functionality' do before do resources = [TestResource.new('id' => 'floatingip1', 'instance_id' => 'daed9e86-4b69-4242-993a-926a39352783', 'ip' => '173.236.251.98', 'fixed_ip' => '', 'pool' => 'test-pool' ), TestResource.new('id' => 'floatingip2', 'instance_id' => '', 'ip' => '67.205.60.122', 'fixed_ip' => '10.10.10.1', 'pool' => 'test-pool' ) ] allow(instance).to receive(:query_resource).and_return(resources) allow(instance).to receive(:puts) allow(instance).to receive(:create_service_instance).and_return(Chef::Knife::Cloud::Service.new) allow(instance).to receive(:validate!) instance.config[:format] = 'summary' end it 'lists formatted list of resources' do expect(instance.ui).to receive(:list).with(['ID', 'Instance ID', 'IP Address', 'Fixed IP', 'Floating IP Pool', 'floatingip1', 'daed9e86-4b69-4242-993a-926a39352783', '173.236.251.98', '', 'test-pool', 'floatingip2', '', '67.205.60.122', '10.10.10.1', 'test-pool'], :uneven_columns_across, 5) instance.run end end end