From 6db28b3899e0ec275f58bbd274a9112e14f78245 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Mon, 10 Sep 2007 18:23:44 +0000 Subject: [PATCH] Added Subversion repository unit tests. git-svn-id: http://redmine.rubyforge.org/svn/trunk@722 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- .../repositories/subversion_repository.dump | Bin 0 -> 15812 bytes test/unit/repository_subversion_test.rb | 55 ++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 test/fixtures/repositories/subversion_repository.dump create mode 100644 test/unit/repository_subversion_test.rb diff --git a/test/fixtures/repositories/subversion_repository.dump b/test/fixtures/repositories/subversion_repository.dump new file mode 100644 index 0000000000000000000000000000000000000000..322f0c102387af341c5e98f19bf6bd675ea9fbfd GIT binary patch literal 15812 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 F{{c%Xbua(` literal 0 HcmV?d00001 diff --git a/test/unit/repository_subversion_test.rb b/test/unit/repository_subversion_test.rb new file mode 100644 index 000000000..dd1c5eb6e --- /dev/null +++ b/test/unit/repository_subversion_test.rb @@ -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