OSDN Git Service

scm: add a test of a repository model method "merge_extra_info()" in unit test (...
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 12 May 2011 23:58:58 +0000 (23:58 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 12 May 2011 23:58:58 +0000 (23:58 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5767 e93f8b46-1217-0410-a6f0-8f06a7374b81

test/unit/repository_test.rb

index f1f80e2..cb7ce7d 100644 (file)
@@ -202,4 +202,37 @@ class RepositoryTest < ActiveSupport::TestCase
     assert klass.scm_adapter_class
     assert_equal true, klass.scm_available
   end
+
+  def test_merge_extra_info
+    repo = Repository::Subversion.new(:project => Project.find(3))
+    assert !repo.save
+    repo.url = "svn://localhost"
+    assert repo.save
+    repo.reload
+    project = Project.find(3)
+    assert_equal repo, project.repository
+    assert_nil repo.extra_info
+    h1 = {"test_1" => {"test_11" => "test_value_11"}}
+    repo.merge_extra_info(h1)
+    assert_equal h1, repo.extra_info
+    h2 = {"test_2" => {
+                   "test_21" => "test_value_21",
+                   "test_22" => "test_value_22",
+                  }}
+    repo.merge_extra_info(h2)
+    assert_equal (h = {"test_11" => "test_value_11"}),
+                 repo.extra_info["test_1"]
+    assert_equal "test_value_21",
+                 repo.extra_info["test_2"]["test_21"]
+    h3 = {"test_2" => {
+                   "test_23" => "test_value_23",
+                   "test_24" => "test_value_24",
+                  }}
+    repo.merge_extra_info(h3)
+    assert_equal (h = {"test_11" => "test_value_11"}),
+                 repo.extra_info["test_1"]
+    assert_nil repo.extra_info["test_2"]["test_21"]
+    assert_equal "test_value_23",
+                 repo.extra_info["test_2"]["test_23"]
+  end
 end