dm-validations 0.10.2 → 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. data/.gitignore +36 -0
  2. data/Gemfile +143 -0
  3. data/README.rdoc +52 -102
  4. data/Rakefile +3 -3
  5. data/VERSION +1 -1
  6. data/dm-validations.gemspec +126 -14
  7. data/lib/dm-validations.rb +78 -18
  8. data/lib/dm-validations/auto_validate.rb +27 -23
  9. data/lib/dm-validations/contextual_validators.rb +3 -3
  10. data/lib/dm-validations/formats/email.rb +3 -3
  11. data/lib/dm-validations/formats/url.rb +3 -3
  12. data/lib/dm-validations/support/context.rb +1 -1
  13. data/lib/dm-validations/validation_errors.rb +5 -7
  14. data/lib/dm-validations/validators/absent_field_validator.rb +13 -9
  15. data/lib/dm-validations/validators/acceptance_validator.rb +10 -7
  16. data/lib/dm-validations/validators/block_validator.rb +3 -3
  17. data/lib/dm-validations/validators/confirmation_validator.rb +10 -7
  18. data/lib/dm-validations/validators/format_validator.rb +14 -10
  19. data/lib/dm-validations/validators/generic_validator.rb +3 -3
  20. data/lib/dm-validations/validators/length_validator.rb +10 -7
  21. data/lib/dm-validations/validators/method_validator.rb +3 -3
  22. data/lib/dm-validations/validators/numeric_validator.rb +25 -14
  23. data/lib/dm-validations/validators/primitive_validator.rb +12 -8
  24. data/lib/dm-validations/validators/required_field_validator.rb +12 -9
  25. data/lib/dm-validations/validators/uniqueness_validator.rb +9 -6
  26. data/lib/dm-validations/validators/within_validator.rb +3 -3
  27. data/spec/fixtures/barcode.rb +10 -2
  28. data/spec/fixtures/basketball_court.rb +7 -7
  29. data/spec/fixtures/basketball_player.rb +3 -3
  30. data/spec/fixtures/beta_tester_account.rb +4 -4
  31. data/spec/fixtures/bill_of_landing.rb +7 -7
  32. data/spec/fixtures/boat_dock.rb +2 -2
  33. data/spec/fixtures/city.rb +1 -1
  34. data/spec/fixtures/company.rb +7 -7
  35. data/spec/fixtures/corporate_world.rb +24 -26
  36. data/spec/fixtures/country.rb +1 -1
  37. data/spec/fixtures/currency.rb +4 -4
  38. data/spec/fixtures/ethernet_frame.rb +5 -5
  39. data/spec/fixtures/event.rb +2 -2
  40. data/spec/fixtures/g3_concert.rb +3 -3
  41. data/spec/fixtures/jabberwock.rb +2 -2
  42. data/spec/fixtures/kayak.rb +2 -2
  43. data/spec/fixtures/lernean_hydra.rb +3 -3
  44. data/spec/fixtures/mathematical_function.rb +2 -2
  45. data/spec/fixtures/memory_object.rb +3 -3
  46. data/spec/fixtures/mittelschnauzer.rb +3 -3
  47. data/spec/fixtures/motor_launch.rb +1 -1
  48. data/spec/fixtures/page.rb +3 -3
  49. data/spec/fixtures/phone_number.rb +2 -2
  50. data/spec/fixtures/pirogue.rb +2 -2
  51. data/spec/fixtures/programming_language.rb +3 -3
  52. data/spec/fixtures/reservation.rb +5 -5
  53. data/spec/fixtures/scm_operation.rb +42 -45
  54. data/spec/fixtures/sms_message.rb +1 -1
  55. data/spec/fixtures/udp_packet.rb +3 -3
  56. data/spec/integration/absent_field_validator/absent_field_validator_spec.rb +6 -6
  57. data/spec/integration/acceptance_validator/acceptance_validator_spec.rb +3 -3
  58. data/spec/integration/automatic_validation/inferred_length_validation_spec.rb +5 -5
  59. data/spec/integration/automatic_validation/spec_helper.rb +1 -1
  60. data/spec/integration/block_validator/block_validator_spec.rb +2 -2
  61. data/spec/integration/conditional_validation/if_condition_spec.rb +3 -3
  62. data/spec/integration/confirmation_validator/confirmation_validator_spec.rb +3 -3
  63. data/spec/integration/datamapper_models/association_validation_spec.rb +5 -5
  64. data/spec/integration/datamapper_models/inheritance_spec.rb +6 -6
  65. data/spec/integration/duplicated_validations/duplicated_validations_spec.rb +3 -3
  66. data/spec/integration/format_validator/email_format_validator_spec.rb +6 -6
  67. data/spec/integration/format_validator/format_validator_spec.rb +8 -8
  68. data/spec/integration/format_validator/regexp_validator_spec.rb +4 -4
  69. data/spec/integration/format_validator/url_format_validator_spec.rb +4 -4
  70. data/spec/integration/length_validator/default_value_spec.rb +3 -3
  71. data/spec/integration/length_validator/equality_spec.rb +4 -4
  72. data/spec/integration/length_validator/error_message_spec.rb +3 -3
  73. data/spec/integration/length_validator/maximum_spec.rb +3 -3
  74. data/spec/integration/length_validator/minimum_spec.rb +3 -3
  75. data/spec/integration/length_validator/range_spec.rb +3 -3
  76. data/spec/integration/method_validator/method_validator_spec.rb +8 -8
  77. data/spec/integration/numeric_validator/equality_with_float_type_spec.rb +7 -7
  78. data/spec/integration/numeric_validator/equality_with_integer_type_spec.rb +5 -5
  79. data/spec/integration/numeric_validator/float_type_spec.rb +3 -3
  80. data/spec/integration/numeric_validator/gt_with_float_type_spec.rb +3 -3
  81. data/spec/integration/numeric_validator/gte_with_float_type_spec.rb +3 -3
  82. data/spec/integration/numeric_validator/lt_with_float_type_spec.rb +3 -3
  83. data/spec/integration/numeric_validator/lte_with_float_type_spec.rb +3 -3
  84. data/spec/integration/primitive_validator/primitive_validator_spec.rb +4 -4
  85. data/spec/integration/pure_ruby_objects/plain_old_ruby_object_validation_spec.rb +4 -4
  86. data/spec/integration/required_field_validator/association_spec.rb +19 -51
  87. data/spec/integration/required_field_validator/boolean_type_value_spec.rb +4 -1
  88. data/spec/integration/required_field_validator/date_type_value_spec.rb +4 -2
  89. data/spec/integration/required_field_validator/datetime_type_value_spec.rb +4 -2
  90. data/spec/integration/required_field_validator/float_type_value_spec.rb +4 -2
  91. data/spec/integration/required_field_validator/integer_type_value_spec.rb +4 -2
  92. data/spec/integration/required_field_validator/plain_old_ruby_object_spec.rb +6 -4
  93. data/spec/integration/required_field_validator/string_type_value_spec.rb +3 -1
  94. data/spec/integration/required_field_validator/text_type_value_spec.rb +3 -1
  95. data/spec/integration/shared/valid_and_invalid_model.rb +8 -0
  96. data/spec/integration/uniqueness_validator/uniqueness_validator_spec.rb +29 -25
  97. data/spec/integration/within_validator/within_validator_spec.rb +6 -6
  98. data/spec/public/resource_spec.rb +47 -9
  99. data/spec/spec_helper.rb +13 -27
  100. data/spec/unit/contextual_validators/emptiness_spec.rb +4 -4
  101. data/spec/unit/contextual_validators/execution_spec.rb +6 -6
  102. data/spec/unit/contextual_validators/spec_helper.rb +3 -3
  103. data/spec/unit/generic_validator/equality_operator_spec.rb +7 -7
  104. data/spec/unit/validation_errors/adding_spec.rb +2 -2
  105. data/spec/unit/validation_errors/emptiness_spec.rb +2 -2
  106. data/spec/unit/validation_errors/enumerable_spec.rb +2 -2
  107. data/tasks/local_gemfile.rake +18 -0
  108. data/tasks/spec.rake +0 -3
  109. metadata +157 -25
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/numeric_validator/spec_helper'
3
3
 
4
- describe 'DataMapper::Validate::Fixtures::BasketballPlayer' do
4
+ describe 'DataMapper::Validations::Fixtures::BasketballPlayer' do
5
5
  before :all do
6
- DataMapper::Validate::Fixtures::BasketballPlayer.auto_migrate!
6
+ DataMapper::Validations::Fixtures::BasketballPlayer.auto_migrate!
7
7
 
8
- @model = DataMapper::Validate::Fixtures::BasketballPlayer.new(:name => "Michael Jordan", :height => 198.1, :weight => 97.2)
8
+ @model = DataMapper::Validations::Fixtures::BasketballPlayer.new(:name => "Michael Jordan", :height => 198.1, :weight => 97.2)
9
9
  end
10
10
 
11
11
  describe "with height as float" do
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/numeric_validator/spec_helper'
3
3
 
4
- describe 'DataMapper::Validate::Fixtures::BasketballCourt' do
4
+ describe 'DataMapper::Validations::Fixtures::BasketballCourt' do
5
5
  before :all do
6
- DataMapper::Validate::Fixtures::BasketballCourt.auto_migrate!
6
+ DataMapper::Validations::Fixtures::BasketballCourt.auto_migrate!
7
7
 
8
- @model = DataMapper::Validate::Fixtures::BasketballCourt.valid_instance
8
+ @model = DataMapper::Validations::Fixtures::BasketballCourt.valid_instance
9
9
  @model.valid?
10
10
  end
11
11
 
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/numeric_validator/spec_helper'
3
3
 
4
- describe 'DataMapper::Validate::Fixtures::BasketballCourt' do
4
+ describe 'DataMapper::Validations::Fixtures::BasketballCourt' do
5
5
  before :all do
6
- DataMapper::Validate::Fixtures::BasketballCourt.auto_migrate!
6
+ DataMapper::Validations::Fixtures::BasketballCourt.auto_migrate!
7
7
 
8
- @model = DataMapper::Validate::Fixtures::BasketballCourt.valid_instance
8
+ @model = DataMapper::Validations::Fixtures::BasketballCourt.valid_instance
9
9
  @model.valid?
10
10
  end
11
11
 
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/numeric_validator/spec_helper'
3
3
 
4
- describe 'DataMapper::Validate::Fixtures::BasketballCourt' do
4
+ describe 'DataMapper::Validations::Fixtures::BasketballCourt' do
5
5
  before :all do
6
- DataMapper::Validate::Fixtures::BasketballCourt.auto_migrate!
6
+ DataMapper::Validations::Fixtures::BasketballCourt.auto_migrate!
7
7
 
8
- @model = DataMapper::Validate::Fixtures::BasketballCourt.valid_instance
8
+ @model = DataMapper::Validations::Fixtures::BasketballCourt.valid_instance
9
9
  @model.valid?
10
10
  end
11
11
 
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/numeric_validator/spec_helper'
3
3
 
4
- describe 'DataMapper::Validate::Fixtures::BasketballCourt' do
4
+ describe 'DataMapper::Validations::Fixtures::BasketballCourt' do
5
5
  before :all do
6
- DataMapper::Validate::Fixtures::BasketballCourt.auto_migrate!
6
+ DataMapper::Validations::Fixtures::BasketballCourt.auto_migrate!
7
7
 
8
- @model = DataMapper::Validate::Fixtures::BasketballCourt.valid_instance
8
+ @model = DataMapper::Validations::Fixtures::BasketballCourt.valid_instance
9
9
  @model.valid?
10
10
  end
11
11
 
@@ -1,13 +1,13 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/primitive_validator/spec_helper'
3
3
 
4
- describe 'DataMapper::Validate::Fixtures::MemoryObject' do
5
- include DataMapper::Validate::Fixtures
4
+ describe 'DataMapper::Validations::Fixtures::MemoryObject' do
5
+ include DataMapper::Validations::Fixtures
6
6
 
7
7
  before :all do
8
- DataMapper::Validate::Fixtures::MemoryObject.auto_migrate!
8
+ DataMapper::Validations::Fixtures::MemoryObject.auto_migrate!
9
9
 
10
- @model = DataMapper::Validate::Fixtures::MemoryObject.new
10
+ @model = DataMapper::Validations::Fixtures::MemoryObject.new
11
11
  end
12
12
 
13
13
  describe "with color given as a string" do
@@ -7,18 +7,18 @@ module PureRubyObjects
7
7
  # Behaviors
8
8
  #
9
9
 
10
- include DataMapper::Validate
10
+ include DataMapper::Validations
11
11
 
12
12
  #
13
13
  # Validations
14
14
  #
15
15
 
16
- validates_present :name, :when => [:default, :adding_to_encyclopedia]
17
- validates_present :population, :when => :adding_to_encyclopedia, :message => Proc.new { |record|
16
+ validates_presence_of :name, :when => [:default, :adding_to_encyclopedia]
17
+ validates_presence_of :population, :when => :adding_to_encyclopedia, :message => Proc.new { |record|
18
18
  "population really needs to be specified when adding %s to encyclopedia" % [record.class.name]
19
19
  }
20
20
 
21
- validates_length :name, :in => (4..50)
21
+ validates_length_of :name, :in => (4..50)
22
22
 
23
23
  #
24
24
  # API
@@ -1,71 +1,42 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
5
- class Artist
6
- #
7
- # Behaviors
8
- #
4
+ describe 'required_field_validator/association_spec' do
9
5
 
10
- include DataMapper::Resource
6
+ before :all do
11
7
 
12
- #
13
- # Properties
14
- #
8
+ class ::Artist
15
9
 
16
- property :id, Serial
17
- property :name, String, :auto_validation => false
10
+ include DataMapper::Resource
18
11
 
19
- #
20
- # Associations
21
- #
12
+ property :id, Serial
13
+ property :name, String, :auto_validation => false
22
14
 
23
- has n, :albums
15
+ has n, :albums
24
16
 
25
- #
26
- # Validations
27
- #
17
+ validates_presence_of :name
28
18
 
29
- validates_present :name
30
- end
31
-
32
- class Album
33
- #
34
- # Behaviors
35
- #
19
+ end
36
20
 
37
- include DataMapper::Resource
21
+ class ::Album
38
22
 
39
- #
40
- # Properties
41
- #
23
+ include DataMapper::Resource
42
24
 
43
- property :id, Serial
44
- property :name, String, :auto_validation => false
45
- property :artist_id, Integer, :index => :artist
25
+ property :id, Serial
26
+ property :name, String, :auto_validation => false
27
+ property :artist_id, Integer, :index => :artist
46
28
 
47
- #
48
- # Associations
49
- #
29
+ belongs_to :artist
50
30
 
51
- belongs_to :artist
31
+ validates_presence_of :name, :artist
52
32
 
53
- #
54
- # Validations
55
- #
33
+ end
56
34
 
57
- validates_present :name, :artist
35
+ Artist.auto_migrate!
58
36
  end
59
- Artist.auto_migrate!
60
- Album.auto_migrate!
61
-
62
37
 
63
38
 
64
39
  describe 'Album' do
65
- before :all do
66
- Artist.auto_migrate!
67
- Album.auto_migrate!
68
- end
69
40
 
70
41
  before do
71
42
  @artist = Artist.create(:name => "Oceanlab")
@@ -88,13 +59,10 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
88
59
  end
89
60
 
90
61
  describe 'with specified artist and name' do
91
- before do
92
- # no op
93
- end
94
-
95
62
  it 'is valid' do
96
63
  @album.should be_valid
97
64
  end
98
65
  end
99
66
  end
67
+
100
68
  end
@@ -1,7 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
4
+ describe 'required_field_validator/boolean_type_value_spec' do
5
+
5
6
  # keep in mind any ScmOperation has a default value for brand property
6
7
  # so it is used
7
8
  describe 'GitOperation' do
@@ -149,4 +150,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
149
150
  end
150
151
  end
151
152
  end
153
+
154
+
152
155
  end
@@ -1,7 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
4
+ describe 'required_field_validator/date_type_value_spec' do
5
+
5
6
  class Holiday
6
7
  #
7
8
  # Behaviors
@@ -20,7 +21,7 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
20
21
  # Validations
21
22
  #
22
23
 
23
- validates_present :on
24
+ validates_presence_of :on
24
25
  end
25
26
 
26
27
  describe 'Holiday' do
@@ -122,4 +123,5 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
122
123
  end
123
124
  end
124
125
  end
126
+
125
127
  end
@@ -1,7 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
4
+ describe 'required_field_validator/datetime_type_value_spec' do
5
+
5
6
  class ScheduledOperation
6
7
  #
7
8
  # Behaviors
@@ -20,7 +21,7 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
20
21
  # Validations
21
22
  #
22
23
 
23
- validates_present :at
24
+ validates_presence_of :at
24
25
  end
25
26
 
26
27
  describe 'ScheduledOperation' do
@@ -122,4 +123,5 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
122
123
  end
123
124
  end
124
125
  end
126
+
125
127
  end
@@ -1,7 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
4
+ describe 'required_field_validator/float_type_value_spec' do
5
+
5
6
  #
6
7
  # Especially stupid example since Hg adds local repository revision
7
8
  # to each new commit, but lets roll on with this SCM-ish classes and
@@ -25,7 +26,7 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
25
26
  # Validations
26
27
  #
27
28
 
28
- validates_present :percent
29
+ validates_presence_of :percent
29
30
  end
30
31
 
31
32
  describe 'CpuConsumption' do
@@ -126,4 +127,5 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
126
127
  end
127
128
  end
128
129
  end
130
+
129
131
  end
@@ -1,7 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
4
+ describe 'required_field_validator/integer_type_value_spec' do
5
+
5
6
  #
6
7
  # Especially stupid example since Hg adds local repository revision
7
8
  # to each new commit, but lets roll on with this SCM-ish classes and
@@ -18,7 +19,7 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
18
19
  # Validations
19
20
  #
20
21
 
21
- validates_present :local_repo_revision_num
22
+ validates_presence_of :local_repo_revision_num
22
23
  end
23
24
 
24
25
  describe 'HgCommit' do
@@ -94,4 +95,5 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
94
95
  end
95
96
  end
96
97
  end
98
+
97
99
  end
@@ -1,14 +1,15 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
4
+ describe 'required_field_validator/plain_old_ruby_object_spec' do
5
+
5
6
  describe "A plain old Ruby object (not a DM resource)" do
6
7
  before do
7
8
  class PlainClass
8
- extend DataMapper::Validate::ClassMethods
9
- include DataMapper::Validate
9
+ extend DataMapper::Validations::ClassMethods
10
+ include DataMapper::Validations
10
11
  attr_accessor :accessor
11
- validates_present :here, :empty, :nil, :accessor
12
+ validates_presence_of :here, :empty, :nil, :accessor
12
13
  def here; "here" end
13
14
  def empty; "" end
14
15
  def nil; nil end
@@ -30,4 +31,5 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
30
31
  @pc.errors.on(:accessor).should be_nil
31
32
  end
32
33
  end
34
+
33
35
  end
@@ -1,7 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
4
+ describe 'required_field_validator/string_type_value_spec' do
5
+
5
6
  # keep in mind any ScmOperation has a default value for brand property
6
7
  # so it is used
7
8
  describe 'GitOperation' do
@@ -162,4 +163,5 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
162
163
  end
163
164
  end
164
165
  end
166
+
165
167
  end
@@ -1,7 +1,8 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/required_field_validator/spec_helper'
3
3
 
4
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
4
+ describe 'required_field_validator/text_type_value_spec' do
5
+
5
6
  # keep in mind any ScmOperation has a default value for brand property
6
7
  # so it is used
7
8
  describe 'GitOperation' do
@@ -44,4 +45,5 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
44
45
  end
45
46
  end
46
47
  end
48
+
47
49
  end
@@ -1,4 +1,8 @@
1
1
  describe "valid model", :shared => true do
2
+ before do
3
+ @model.valid?
4
+ end
5
+
2
6
  it "is valid" do
3
7
  @model.should be_valid
4
8
  end
@@ -13,6 +17,10 @@ describe "valid model", :shared => true do
13
17
  end
14
18
 
15
19
  describe "invalid model", :shared => true do
20
+ before do
21
+ @model.valid?
22
+ end
23
+
16
24
  it "is NOT valid" do
17
25
  @model.should_not be_valid
18
26
  end
@@ -2,42 +2,43 @@ require 'spec_helper'
2
2
  require 'integration/uniqueness_validator/spec_helper'
3
3
 
4
4
 
5
- if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
6
- describe 'DataMapper::Validate::Fixtures::Department' do
5
+ describe 'uniqueness_validator/uniqueness_validator_spec' do
6
+
7
+ describe 'DataMapper::Validations::Fixtures::Department' do
7
8
  before :all do
8
- DataMapper::Validate::Fixtures::Department.auto_migrate!
9
+ DataMapper::Validations::Fixtures::Department.all.destroy!
9
10
 
10
- DataMapper::Validate::Fixtures::Department.create(:name => "HR")
11
+ DataMapper::Validations::Fixtures::Department.create(:name => "HR").should be_saved
11
12
  end
12
13
 
13
14
  describe "with unique name" do
14
- before :all do
15
- @model = DataMapper::Validate::Fixtures::Department.new(:name => "R & D")
15
+ before do
16
+ @model = DataMapper::Validations::Fixtures::Department.new(:name => "R & D")
16
17
  end
17
18
 
18
19
  it_should_behave_like "valid model"
19
20
  end
20
21
 
21
22
  describe "with a duplicate name" do
22
- before :all do
23
- @model = DataMapper::Validate::Fixtures::Department.new(:name => "HR")
23
+ before do
24
+ @model = DataMapper::Validations::Fixtures::Department.new(:name => "HR")
24
25
  end
25
26
 
26
27
  it_should_behave_like "invalid model"
27
28
  end
28
29
  end
29
30
 
30
- describe 'DataMapper::Validate::Fixtures::Organisation' do
31
+ describe 'DataMapper::Validations::Fixtures::Organisation' do
31
32
  before :all do
32
- DataMapper::Validate::Fixtures::Organisation.auto_migrate!
33
+ DataMapper::Validations::Fixtures::Organisation.all.destroy!
33
34
 
34
35
  @model = DataMapper.repository do
35
- DataMapper::Validate::Fixtures::Organisation.create(:name => 'Apple', :domain => 'apple.com')
36
+ DataMapper::Validations::Fixtures::Organisation.create(:name => 'Apple', :domain => 'apple.com')
36
37
  end
37
38
  end
38
39
 
39
40
  describe "with missing domain" do
40
- before :all do
41
+ before do
41
42
  @model.domain = nil
42
43
  end
43
44
 
@@ -45,8 +46,8 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
45
46
  end
46
47
 
47
48
  describe "with a duplicate domain" do
48
- before :all do
49
- @model = DataMapper::Validate::Fixtures::Organisation.new(:name => 'Fake Apple', :domain => 'apple.com')
49
+ before do
50
+ @model = DataMapper::Validations::Fixtures::Organisation.new(:name => 'Fake Apple', :domain => 'apple.com')
50
51
  end
51
52
 
52
53
  it_should_behave_like "invalid model"
@@ -63,16 +64,16 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
63
64
  end
64
65
  end
65
66
 
66
- describe 'DataMapper::Validate::Fixtures::User' do
67
+ describe 'DataMapper::Validations::Fixtures::User' do
67
68
  before :all do
68
- DataMapper::Validate::Fixtures::Organisation.auto_migrate!
69
- DataMapper::Validate::Fixtures::Department.auto_migrate!
70
- DataMapper::Validate::Fixtures::User.auto_migrate!
69
+ DataMapper::Validations::Fixtures::Organisation.all.destroy!
70
+ DataMapper::Validations::Fixtures::Department.all.destroy!
71
+ DataMapper::Validations::Fixtures::User.all.destroy!
71
72
 
72
73
  DataMapper.repository do
73
- @organization = DataMapper::Validate::Fixtures::Organisation.create(:name => 'Org 101', :domain => '101')
74
- @dept = DataMapper::Validate::Fixtures::Department.create(:name => 'accounting')
75
- @user = DataMapper::Validate::Fixtures::User.create(:organisation => @organization, :user_name => 'guy', :department => @dept)
74
+ @organization = DataMapper::Validations::Fixtures::Organisation.create(:name => 'Org 101', :domain => '101')
75
+ @dept = DataMapper::Validations::Fixtures::Department.create(:name => 'accounting')
76
+ @user = DataMapper::Validations::Fixtures::User.create(:organisation => @organization, :user_name => 'guy', :department => @dept)
76
77
 
77
78
  @organization.should be_saved
78
79
  @dept.should be_saved
@@ -81,8 +82,8 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
81
82
  end
82
83
 
83
84
  describe "with username not valid across the organization" do
84
- before :all do
85
- @model = DataMapper::Validate::Fixtures::User.new(:organisation => @organization, :user_name => 'guy')
85
+ before do
86
+ @model = DataMapper::Validations::Fixtures::User.new(:organisation => @organization, :user_name => 'guy')
86
87
  end
87
88
 
88
89
  it "is not valid for signing up" do
@@ -90,14 +91,15 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
90
91
  end
91
92
 
92
93
  it "has a meaningful error message" do
94
+ @model.valid?(:signing_up_for_organization_account)
93
95
  @model.errors.on(:user_name).should == [ 'User name is already taken' ]
94
96
  end
95
97
  end
96
98
 
97
99
 
98
100
  describe "with username not valid across the department" do
99
- before :all do
100
- @model = DataMapper::Validate::Fixtures::User.new(:user_name => 'guy', :department => @dept)
101
+ before do
102
+ @model = DataMapper::Validations::Fixtures::User.new(:user_name => 'guy', :department => @dept)
101
103
  end
102
104
 
103
105
  it "is not valid for setting up the account" do
@@ -105,8 +107,10 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
105
107
  end
106
108
 
107
109
  it "has a meaningful error message" do
110
+ @model.valid?(:signing_up_for_department_account)
108
111
  @model.errors.on(:user_name).should == [ 'User name is already taken' ]
109
112
  end
110
113
  end
111
114
  end
115
+
112
116
  end