modelizer 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ === 1.2.0 (2009-03-17)
2
+
3
+ * Added a simple stab at some validation tests.
4
+
1
5
  === 1.1.1 (2009-03-16)
2
6
 
3
7
  * Fixed <tt>assert_invalid</tt>'s misleading message.
@@ -4,6 +4,7 @@ README.rdoc
4
4
  Rakefile
5
5
  lib/modelizer.rb
6
6
  lib/modelizer/assertions.rb
7
+ lib/modelizer/validations.rb
7
8
  rails/init.rb
8
9
  test/modelizer/assertions_test.rb
9
10
  test/modelizer_test.rb
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require "rubygems"
2
2
  require "hoe"
3
3
 
4
- Hoe.new "modelizer", "1.1.1" do |p|
4
+ Hoe.new "modelizer", "1.2.0" do |p|
5
5
  p.developer "John Barnette", "jbarnette@rubyforge.org"
6
6
 
7
7
  p.url = "http://github.com/jbarnette/modelizer"
@@ -0,0 +1,35 @@
1
+ module Modelizer
2
+ module Validations
3
+ def test_validations_for attribute, *validations
4
+ @klass ||= name.gsub(/Test$/, "").constantize
5
+ @model ||= @klass.name.underscore.tr("/", "_")
6
+
7
+ unless instance_methods.collect { |m| m.to_s }.include? "new_#{@model}"
8
+ raise "no model template for #{@klass.name}"
9
+ end
10
+
11
+ validations.each do |v|
12
+ test = send "validation_lambda_for_#{v}", @klass, @model, attribute
13
+ define_method "test_#{attribute}_#{v}", &test
14
+ end
15
+ end
16
+
17
+ private
18
+
19
+ def validation_lambda_for_presence klass, model, attribute
20
+ lambda do
21
+ assert_invalid attribute, send("new_#{model}_without", attribute)
22
+ end
23
+ end
24
+
25
+ def validation_lambda_for_uniqueness klass, model, attribute
26
+ lambda do
27
+ existing = klass.first
28
+ assert_not_nil existing, "There's at least one #{model} fixture."
29
+
30
+ assert_invalid attribute,
31
+ send("new_#{model}", attribute => existing.send(attribute))
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,4 +1,5 @@
1
1
  class ::Test::Unit::TestCase
2
2
  include Modelizer
3
3
  include Modelizer::Assertions
4
+ extend Modelizer::Validations
4
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modelizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Barnette
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-16 00:00:00 -07:00
12
+ date: 2009-03-17 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -39,6 +39,7 @@ files:
39
39
  - Rakefile
40
40
  - lib/modelizer.rb
41
41
  - lib/modelizer/assertions.rb
42
+ - lib/modelizer/validations.rb
42
43
  - rails/init.rb
43
44
  - test/modelizer/assertions_test.rb
44
45
  - test/modelizer_test.rb