requires "spec fixes and updates" patch to be applied first --- src/app/models/provider.rb | 1 - .../hardware_profiles_controller_spec.rb | 19 +++++++++++++++ .../controllers/portal_pool_controller_spec.rb | 10 ++++++++ src/spec/controllers/provider_controller_spec.rb | 12 +++++++++- src/spec/factories/hardware_profile.rb | 24 ++++++++++++++++++++ src/spec/factories/portal_pool.rb | 1 + src/spec/factories/provider.rb | 3 +- 7 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 src/spec/controllers/hardware_profiles_controller_spec.rb create mode 100644 src/spec/factories/hardware_profile.rb
diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb index 1170488..70051e5 100644 --- a/src/app/models/provider.rb +++ b/src/app/models/provider.rb @@ -79,7 +79,6 @@ class Provider < ActiveRecord::Base def validate if !nil_or_empty(url) errors.add("url", "must be a valid provider url") unless valid_framework? - puts errors.inspect end end
diff --git a/src/spec/controllers/hardware_profiles_controller_spec.rb b/src/spec/controllers/hardware_profiles_controller_spec.rb new file mode 100644 index 0000000..e4b837d --- /dev/null +++ b/src/spec/controllers/hardware_profiles_controller_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +describe HardwareProfilesController do + + before(:each) do + @admin_permission = Factory :admin_permission + @admin = @admin_permission.user + activate_authlogic + end + + it "should provide ui to view all hardware profiles" do + UserSession.create(@admin) + get :index + response.should be_success + assigns[:hardware_profiles].size.should == HardwareProfile.count + response.should render_template("index") + end + +end diff --git a/src/spec/controllers/portal_pool_controller_spec.rb b/src/spec/controllers/portal_pool_controller_spec.rb index bc01a31..512127d 100644 --- a/src/spec/controllers/portal_pool_controller_spec.rb +++ b/src/spec/controllers/portal_pool_controller_spec.rb @@ -29,5 +29,15 @@ describe PortalPoolController do response.should redirect_to("http://test.host/portal_pool/show/#%7Bid%7D") end
+ it "should provide ui to view hardware profiles" do + UserSession.create(@admin) + pool = Factory :tpool + + get :hardware_profiles, :id => pool.id + response.should be_success + assigns[:hardware_profiles].size.should == pool.hardware_profiles.size + response.should render_template("hardware_profiles") + end +
end diff --git a/src/spec/controllers/provider_controller_spec.rb b/src/spec/controllers/provider_controller_spec.rb index 9015a00..ed0036f 100644 --- a/src/spec/controllers/provider_controller_spec.rb +++ b/src/spec/controllers/provider_controller_spec.rb @@ -9,7 +9,6 @@ describe ProviderController do activate_authlogic end
- it "should provide ui to view accounts" do UserSession.create(@admin) get :accounts, :id => @provider.id @@ -32,4 +31,15 @@ describe ProviderController do response.should_not be_success end
+ it "should provide ui to view hardware profiles" do + UserSession.create(@admin) + provider = @admin_permission.permission_object + + get :hardware_profiles, :id => provider.id + response.should be_success + assigns[:hardware_profiles].size.should == provider.hardware_profiles.size + response.should render_template("hardware_profiles") + end + + end diff --git a/src/spec/factories/hardware_profile.rb b/src/spec/factories/hardware_profile.rb new file mode 100644 index 0000000..752adac --- /dev/null +++ b/src/spec/factories/hardware_profile.rb @@ -0,0 +1,24 @@ +Factory.define :hardware_profile do |p| + p.sequence(:name) { |n| "hardware_profile#{n}" } +end + +Factory.define :mock_hwp1, :parent => :hardware_profile do |p| + p.memory 1024 + p.storage 100 + p.external_key 'mock_hwp1_key' + p.architecture 'i686' +end + +Factory.define :mock_hwp2, :parent => :hardware_profile do |p| + p.memory 2048 + p.storage 400 + p.external_key 'mock_hwp2_key' + p.architecture 'x86_64' +end + +Factory.define :pool_hwp1, :parent => :hardware_profile do |p| + p.memory 2048 + p.storage 400 + p.external_key 'pool_hwp1_key' + p.architecture 'x86_64' +end diff --git a/src/spec/factories/portal_pool.rb b/src/spec/factories/portal_pool.rb index 0b20647..d0a8e52 100644 --- a/src/spec/factories/portal_pool.rb +++ b/src/spec/factories/portal_pool.rb @@ -5,4 +5,5 @@ end
Factory.define :tpool, :parent => :portal_pool do |p| p.name 'tpool' + p.hardware_profiles { |hp| [hp.association(:pool_hwp1)] } end diff --git a/src/spec/factories/provider.rb b/src/spec/factories/provider.rb index 921d54b..f349be3 100644 --- a/src/spec/factories/provider.rb +++ b/src/spec/factories/provider.rb @@ -1,8 +1,9 @@ Factory.define :provider do |p| + p.sequence(:name) { |n| "provider#{n}" } end
Factory.define :mock_provider, :parent => :provider do |p| - p.name 'mock1' p.cloud_type 'mock' p.url 'http://localhost:3001/api' + p.hardware_profiles { |hp| [hp.association(:mock_hwp1), hp.association(:mock_hwp2)] } end