From cf78f3e6ddbd1c148e91de6500266240bfa24825 Mon Sep 17 00:00:00 2001 From: Shaun McDonald Date: Tue, 15 Jul 2008 15:51:45 +0000 Subject: [PATCH] Can now run tests that use composite_primary_keys in the fixtures. Adding a new test to check that you can't add duplicate user preferences, and the display name of the user is guaranteed to be unique. --- test/fixtures/user_preferences.yml | 14 +++++++++----- test/test_helper.rb | 1 + test/unit/user_preference_test.rb | 24 +++++++++++++++++++++--- test/unit/user_test.rb | 11 +++++++++++ 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/test/fixtures/user_preferences.yml b/test/fixtures/user_preferences.yml index 5bf02933a..ab95c357d 100644 --- a/test/fixtures/user_preferences.yml +++ b/test/fixtures/user_preferences.yml @@ -1,7 +1,11 @@ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html -# one: -# column: value -# -# two: -# column: value +a: + user: normal_user + k: "key" + v: "value" + +two: + user: normal_user + k: "some_key" + v: "some_value" diff --git a/test/test_helper.rb b/test/test_helper.rb index b1d7a8fcc..e954a9495 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,7 @@ ENV["RAILS_ENV"] = "test" require File.expand_path(File.dirname(__FILE__) + "/../config/environment") require 'test_help' +load 'composite_primary_keys/fixtures.rb' class Test::Unit::TestCase # Transactional fixtures accelerate your tests by wrapping each test method diff --git a/test/unit/user_preference_test.rb b/test/unit/user_preference_test.rb index bd4e80015..d591db69d 100644 --- a/test/unit/user_preference_test.rb +++ b/test/unit/user_preference_test.rb @@ -1,8 +1,26 @@ require File.dirname(__FILE__) + '/../test_helper' class UserPreferenceTest < ActiveSupport::TestCase - # Replace this with your real tests. - def test_truth - assert true + fixtures :users, :user_preferences + + # This checks to make sure that there are two user preferences + # stored in the test database. + # This test needs to be updated for every addition/deletion from + # the fixture file + def test_check_count + assert_equal 2, UserPreference.count + end + + # Checks that you cannot add a new preference, that is a duplicate + def test_add_duplicate_preference + up = user_preferences(:a) + newUP = UserPreference.new + newUP.user = users(:normal_user) + newUP.k = up.k + newUP.v = "some other value" + assert_not_equal newUP.v, up.v + assert_raise (ActiveRecord::StatementInvalid) {newUP.save} end + + end diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 76c32a88d..732b5b73a 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -25,4 +25,15 @@ class UserTest < Test::Unit::TestCase assert !new_user.save assert_equal ActiveRecord::Errors.default_error_messages[:taken], new_user.errors.on(:email) end + + def test_unique_display_name + new_user = User.new(:email => "tester@openstreetmap.org", + :active => 0, + :pass_crypt => Digest::MD5.hexdigest('test'), + :display_name => users(:normal_user).display_name, + :data_public => 1, + :description => "desc") + assert !new_user.save + assert_equal ActiveRecord::Errors.default_error_messages[:taken], new_user.errors.on(:display_name) + end end -- 2.43.2