On 11/24/2010 11:25 AM, [email protected] wrote: > From: Ladislav Martincik<[email protected]> > > - Fixing validations for User with maximum allowing blank > - Merged 2 spec files for registration service to one file > - Turned fixtures on again for now to have all permissions loaded > --- > src/app/models/user.rb | 1 - > src/spec/controllers/users_controller_spec.rb | 6 ++- > src/spec/models/registration_service_spec.rb | 64 > ------------------------ > src/spec/services/registration_service_spec.rb | 37 ++++++++++++++ > src/spec/spec_helper.rb | 2 +- > 5 files changed, 42 insertions(+), 68 deletions(-) > delete mode 100644 src/spec/models/registration_service_spec.rb > > diff --git a/src/app/models/user.rb b/src/app/models/user.rb > index 0332095..7942ae4 100644 > --- a/src/app/models/user.rb > +++ b/src/app/models/user.rb > @@ -31,7 +31,6 @@ class User< ActiveRecord::Base > validates_length_of :first_name, :maximum => 255, :allow_blank => true > validates_length_of :last_name, :maximum => 255, :allow_blank => true > > - > # authlogic's password confirmation doesn't fire up when we fill in the > # confirmation field but leave the password field blank. We have to check > # that manually: > diff --git a/src/spec/controllers/users_controller_spec.rb > b/src/spec/controllers/users_controller_spec.rb > index eedb0b3..c1fad30 100644 > --- a/src/spec/controllers/users_controller_spec.rb > +++ b/src/spec/controllers/users_controller_spec.rb > @@ -3,10 +3,12 @@ require 'spec_helper' > describe UsersController do > > before(:each) do > - Factory(:base_permission_object) > + unless > BasePermissionObject.find_by_name(BasePermissionObject::GENERAL_PERMISSION_SCOPE) > + Factory(:base_permission_object) > + end > @tuser = Factory :tuser > @admin_permission = Factory :admin_permission > - @admin_permission.role.privileges<< Privilege.new(:name => > 'user_modify') > + @admin_permission.role.privileges<< > Privilege.find_by_name('user_modify') > @admin = @admin_permission.user > Factory.create(:default_quota_metadata) > Factory.create(:default_role_metadata) > diff --git a/src/spec/models/registration_service_spec.rb > b/src/spec/models/registration_service_spec.rb > deleted file mode 100644 > index 2a97d11..0000000 > --- a/src/spec/models/registration_service_spec.rb > +++ /dev/null > @@ -1,64 +0,0 @@ > -require 'spec_helper' > - > -describe RegistrationService do > - fixtures :all > - before(:each) do > - @tuser = Factory :tuser > - end > - > - it "should initialize a new instance given valid attributes" do > - RegistrationService.new(@tuser) > - end > - > - describe "#save" do > - > - context "adding valid user with no errors" do > - it "should create user, pool and self-service permission" do > - user = User.new({:login => 'gooduser', > - :email => '[email protected]', > - :password => 'password', > - :password_confirmation => 'password'}) > - r = RegistrationService.new(user) > - end > - end > - > - context "save fails" do > - it "should return errors on user when user is missing required field" > do > - user = User.new(:login => 'baduser') > - r = RegistrationService.new(user) > - r.save.should be_false > - user.errors.empty?.should be_false > - user.errors.find_all {|attr,msg| > - ["email", "password", "password_confirmation"].include?(attr).should > be_true > - } > - end > - > - it "should return pool errors if pool create fails" do > - #TODO: implement this test. We should check this, but not sure of > best > - # way right now. > - end > - end > - end > - > - it "should register a user with default pool/quota/role when default > settings set" do > - @user = Factory :user > - @pool = Factory(:pool, :name => "default_pool") > - @role = Role.find_by_name("Instance Creator and User") > - @quota = Factory :quota > - > - MetadataObject.set("allow_self_service_logins", "true") > - MetadataObject.set("self_service_default_pool", @pool) > - MetadataObject.set("self_service_default_role", @role) > - MetadataObject.set("self_service_default_quota", @quota) > - > - @registration_service = RegistrationService.new(@user) > - @registration_service.save > - > - @pools = Pool.list_for_user(@user, Privilege::INSTANCE_VIEW) > - @pools.size.should == 1 > - @pools[0].name.should == "default_pool" > - > - @user.quota.maximum_running_instances.should == > @quota.maximum_running_instances > - @user.quota.maximum_total_instances.should == > @quota.maximum_total_instances > - end > -end > diff --git a/src/spec/services/registration_service_spec.rb > b/src/spec/services/registration_service_spec.rb > index 7b26c63..41f6764 100644 > --- a/src/spec/services/registration_service_spec.rb > +++ b/src/spec/services/registration_service_spec.rb > @@ -8,6 +8,43 @@ describe RegistrationService do > Factory.create(:default_pool_metadata) > end > > + describe "with validations" do > + > + it "should return errors on user when user is missing required fields" do > + user = User.new(:login => 'baduser') > + r = RegistrationService.new(user) > + r.save.should be_false > + user.errors.empty?.should be_false > + user.errors.find_all do |attr,msg| > + ["email","password","password_confirmation"].include?(attr).should > be_true > + end > + end > + > + it "should register a user with default pool/quota/role when default > settings set" do > + @user = Factory :user > + @pool = Factory(:pool, :name => "default_pool") > + privilege = Privilege.find_by_name('instance_view') > + @role = Factory(:role, :privileges => [privilege]) > + @quota = Factory :quota > + > + MetadataObject.set("allow_self_service_logins", "true") > + MetadataObject.set("self_service_default_pool", @pool) > + MetadataObject.set("self_service_default_role", @role) > + MetadataObject.set("self_service_default_quota", @quota) > + > + @registration_service = RegistrationService.new(@user) > + @registration_service.save > + > + @pools = Pool.list_for_user(@user, Privilege::INSTANCE_VIEW) > + @pools.length.should == 1 > + @pools[0].name.should == "default_pool" > + > + @user.quota.maximum_running_instances.should == > @quota.maximum_running_instances > + @user.quota.maximum_total_instances.should == > @quota.maximum_total_instances > + end > + > + end > + > describe "with quota" do > > it "passed via nested attributes to user model" do > diff --git a/src/spec/spec_helper.rb b/src/spec/spec_helper.rb > index 12727d8..f7db6ee 100644 > --- a/src/spec/spec_helper.rb > +++ b/src/spec/spec_helper.rb > @@ -19,7 +19,7 @@ Spec::Runner.configure do |config| > # If you're not using ActiveRecord you should remove these > # lines, delete config/database.yml and disable :active_record > # in your config/boot.rb > - config.use_transactional_fixtures = false > + config.use_transactional_fixtures = true > config.use_instantiated_fixtures = false > config.fixture_path = RAILS_ROOT + '/spec/fixtures/' >
ACK _______________________________________________ deltacloud-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/deltacloud-devel
