<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>test/database.yml</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1 +1,2 @@
-*~
\ No newline at end of file
+*~
+*.log
\ No newline at end of file</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,82 @@
 require 'test/unit'
+require 'rubygems'
+require_gem 'activerecord'
+require File.dirname(__FILE__) + '/../lib/validates_with_block'
+
+config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
+ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + '/debug.log')
+ActiveRecord::Base.establish_connection(config[ENV['DB'] || 'mysql'])
+
+ActiveRecord::Base.connection.execute &quot;DROP TABLE IF EXISTS `users`&quot;
+user_schema_sql = &lt;&lt;-SQL
+CREATE TABLE `users` (
+  `id` int(11) NOT NULL auto_increment,
+  `birthday` date default NULL,
+  `login` varchar(255) default NULL,
+  `password` varchar(255) default NULL,
+  PRIMARY KEY  (`id`)
+);
+SQL
+ActiveRecord::Base.connection.execute user_schema_sql
+
+class User &lt; ActiveRecord::Base
+  validates_birthday do |birthday|
+    birthday.present
+  end
+
+  validates_login do |login|
+    login.formatted :with =&gt; /^[a-zA-Z]+$/ 
+    login.length :within =&gt; 4..15
+    login.unique
+  end
+
+  validates_password do |password|
+    password.confirmed
+  end
+  
+  attr_accessor :password_confirmation
+end
 
 class ValidatesWithBlockTest &lt; Test::Unit::TestCase
-  # Replace this with your real tests.
-  def test_this_plugin
-    flunk
+  def setup
+    User.destroy_all
+  end
+
+  def assert_user_errors_on( field )
+    @user.valid?
+    assert_not_nil @user.errors.on( field ), @user.errors.inspect
+  end
+
+  def new_user( atts = {} )
+    @user = User.new atts
+  end
+
+  def test_confirmed
+    new_user :password =&gt; 'password', :password_confirmation =&gt; 'passworf'
+    assert_user_errors_on :password
+  end
+  
+  def test_formatted
+    new_user :login =&gt; '12345'
+    assert_user_errors_on :login
+  end
+  
+  def test_length
+    new_user :login =&gt; 'thisloginistoodamnedlong'
+    assert_user_errors_on :login
+  end
+  
+  def test_present
+    new_user
+    assert_user_errors_on :birthday
+  end
+  
+  def test_unique
+    User.create(
+      :birthday =&gt; Date.today, :login =&gt; 'billuser', :password =&gt; 'p',
+      :password_confirmation =&gt; 'p'
+    )
+    new_user :login =&gt; 'billuser'
+    assert_user_errors_on :login
   end
 end</diff>
      <filename>test/validates_with_block_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d2aa8ed09ac5598d7a77d2318f0436d30f70c53c</id>
    </parent>
  </parents>
  <author>
    <name>Francis Hwang</name>
    <email>francis@diversionmedia.com</email>
  </author>
  <url>http://github.com/fhwang/validates_with_block/commit/61f712e50815b4575f8b11752a3658198c73c9e1</url>
  <id>61f712e50815b4575f8b11752a3658198c73c9e1</id>
  <committed-date>2008-05-14T09:45:04-07:00</committed-date>
  <authored-date>2008-05-14T09:45:04-07:00</authored-date>
  <message>adding tests</message>
  <tree>3be2eaed0776993e24a9daa7b49b6db1e4277a6e</tree>
  <committer>
    <name>Francis Hwang</name>
    <email>francis@diversionmedia.com</email>
  </committer>
</commit>
