]> source.dussan.org Git - redmine.git/commitdiff
Added Subversion repository unit tests.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 10 Sep 2007 18:23:44 +0000 (18:23 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 10 Sep 2007 18:23:44 +0000 (18:23 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@722 e93f8b46-1217-0410-a6f0-8f06a7374b81

test/fixtures/repositories/subversion_repository.dump [new file with mode: 0644]
test/unit/repository_subversion_test.rb [new file with mode: 0644]

diff --git a/test/fixtures/repositories/subversion_repository.dump b/test/fixtures/repositories/subversion_repository.dump
new file mode 100644 (file)
index 0000000..322f0c1
Binary files /dev/null and b/test/fixtures/repositories/subversion_repository.dump differ
diff --git a/test/unit/repository_subversion_test.rb b/test/unit/repository_subversion_test.rb
new file mode 100644 (file)
index 0000000..dd1c5eb
--- /dev/null
@@ -0,0 +1,55 @@
+# redMine - project management software
+# Copyright (C) 2006-2007  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.dirname(__FILE__) + '/../test_helper'
+
+class RepositorySubversionTest < Test::Unit::TestCase
+  fixtures :projects
+  
+  # No '..' in the repository path for svn
+  REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/subversion_repository'
+  
+  def setup
+    @project = Project.find(1)
+    assert @repository = Repository::Subversion.create(:project => @project, :url => "file:///#{REPOSITORY_PATH}")
+  end
+  
+  if File.directory?(REPOSITORY_PATH)  
+    def test_fetch_changesets_from_scratch
+      @repository.fetch_changesets
+      @repository.reload
+      
+      assert_equal 8, @repository.changesets.count
+      assert_equal 16, @repository.changes.count
+      assert_equal 'Initial import.', @repository.changesets.find_by_revision(1).comments
+    end
+    
+    def test_fetch_changesets_incremental
+      @repository.fetch_changesets
+      # Remove changesets with revision > 5
+      @repository.changesets.find(:all, :conditions => 'revision > 5').each(&:destroy)
+      @repository.reload
+      assert_equal 5, @repository.changesets.count
+      
+      @repository.fetch_changesets
+      assert_equal 8, @repository.changesets.count
+    end
+  else
+    puts "Subversion test repository NOT FOUND. Skipping tests !!!"
+    def test_fake; assert false end
+  end
+end