##// END OF EJS Templates
scm: bazaar: add unit adapter test that append_revisions_only is false in test shared repository branch (#2799, #4741, #8030)....
Toshi MARUYAMA -
r5817:959aa0b74e21
parent child
Show More
@@ -1,149 +1,156
1 require File.expand_path('../../../../../../test_helper', __FILE__)
1 require File.expand_path('../../../../../../test_helper', __FILE__)
2 begin
2 begin
3 require 'mocha'
3 require 'mocha'
4
4
5 class BazaarAdapterTest < ActiveSupport::TestCase
5 class BazaarAdapterTest < ActiveSupport::TestCase
6
6
7 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') +
7 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') +
8 '/tmp/test/bazaar_repository'
8 '/tmp/test/bazaar_repository'
9 REPOSITORY_PATH.gsub!(/\/+/, '/')
9 REPOSITORY_PATH.gsub!(/\/+/, '/')
10
10
11 if File.directory?(REPOSITORY_PATH)
11 if File.directory?(REPOSITORY_PATH)
12 def setup
12 def setup
13 @adapter = Redmine::Scm::Adapters::BazaarAdapter.new(
13 @adapter = Redmine::Scm::Adapters::BazaarAdapter.new(
14 File.join(REPOSITORY_PATH, "trunk")
14 File.join(REPOSITORY_PATH, "trunk")
15 )
15 )
16 end
16 end
17
17
18 def test_scm_version
18 def test_scm_version
19 to_test = { "Bazaar (bzr) 2.1.2\n" => [2,1,2],
19 to_test = { "Bazaar (bzr) 2.1.2\n" => [2,1,2],
20 "2.1.1\n1.7\n1.8" => [2,1,1],
20 "2.1.1\n1.7\n1.8" => [2,1,1],
21 "2.0.1\r\n1.8.1\r\n1.9.1" => [2,0,1]}
21 "2.0.1\r\n1.8.1\r\n1.9.1" => [2,0,1]}
22 to_test.each do |s, v|
22 to_test.each do |s, v|
23 test_scm_version_for(s, v)
23 test_scm_version_for(s, v)
24 end
24 end
25 end
25 end
26
26
27 def test_cat
27 def test_cat
28 cat = @adapter.cat('directory/document.txt')
28 cat = @adapter.cat('directory/document.txt')
29 assert cat =~ /Write the contents of a file as of a given revision to standard output/
29 assert cat =~ /Write the contents of a file as of a given revision to standard output/
30 end
30 end
31
31
32 def test_cat_path_invalid
32 def test_cat_path_invalid
33 assert_nil @adapter.cat('invalid')
33 assert_nil @adapter.cat('invalid')
34 end
34 end
35
35
36 def test_cat_revision_invalid
36 def test_cat_revision_invalid
37 assert_nil @adapter.cat('doc-mkdir.txt', '12345678')
37 assert_nil @adapter.cat('doc-mkdir.txt', '12345678')
38 end
38 end
39
39
40 def test_diff_path_invalid
40 def test_diff_path_invalid
41 assert_equal [], @adapter.diff('invalid', 1)
41 assert_equal [], @adapter.diff('invalid', 1)
42 end
42 end
43
43
44 def test_diff_revision_invalid
44 def test_diff_revision_invalid
45 assert_equal [], @adapter.diff(nil, 12345678)
45 assert_equal [], @adapter.diff(nil, 12345678)
46 assert_equal [], @adapter.diff(nil, 12345678, 87654321)
46 assert_equal [], @adapter.diff(nil, 12345678, 87654321)
47 end
47 end
48
48
49 def test_annotate
49 def test_annotate
50 annotate = @adapter.annotate('doc-mkdir.txt')
50 annotate = @adapter.annotate('doc-mkdir.txt')
51 assert_equal 17, annotate.lines.size
51 assert_equal 17, annotate.lines.size
52 assert_equal '1', annotate.revisions[0].identifier
52 assert_equal '1', annotate.revisions[0].identifier
53 assert_equal 'jsmith@', annotate.revisions[0].author
53 assert_equal 'jsmith@', annotate.revisions[0].author
54 assert_equal 'mkdir', annotate.lines[0]
54 assert_equal 'mkdir', annotate.lines[0]
55 end
55 end
56
56
57 def test_annotate_path_invalid
57 def test_annotate_path_invalid
58 assert_nil @adapter.annotate('invalid')
58 assert_nil @adapter.annotate('invalid')
59 end
59 end
60
60
61 def test_annotate_revision_invalid
61 def test_annotate_revision_invalid
62 assert_nil @adapter.annotate('doc-mkdir.txt', '12345678')
62 assert_nil @adapter.annotate('doc-mkdir.txt', '12345678')
63 end
63 end
64
64
65 def test_branch_conf_path
65 def test_branch_conf_path
66 p = "c:\\test\\test\\"
66 p = "c:\\test\\test\\"
67 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
67 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
68 assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
68 assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
69 p = "c:\\test\\test\\.bzr"
69 p = "c:\\test\\test\\.bzr"
70 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
70 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
71 assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
71 assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
72 p = "c:\\test\\test\\.bzr\\"
72 p = "c:\\test\\test\\.bzr\\"
73 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
73 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
74 assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
74 assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
75 p = "c:\\test\\test"
75 p = "c:\\test\\test"
76 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
76 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
77 assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
77 assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
78 p = "\\\\server\\test\\test\\"
78 p = "\\\\server\\test\\test\\"
79 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
79 bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
80 assert_equal File.join("\\\\server\\test\\test", ".bzr", "branch", "branch.conf"), bcp
80 assert_equal File.join("\\\\server\\test\\test", ".bzr", "branch", "branch.conf"), bcp
81 end
81 end
82
82
83 def test_append_revisions_only_true
83 def test_append_revisions_only_true
84 assert_equal true, @adapter.append_revisions_only
84 assert_equal true, @adapter.append_revisions_only
85 end
85 end
86
86
87 def test_append_revisions_only_false
88 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
89 File.join(REPOSITORY_PATH, "empty-branch")
90 )
91 assert_equal false, adpt.append_revisions_only
92 end
93
87 def test_append_revisions_only_shared_repo
94 def test_append_revisions_only_shared_repo
88 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
95 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
89 REPOSITORY_PATH
96 REPOSITORY_PATH
90 )
97 )
91 assert_equal false, adpt.append_revisions_only
98 assert_equal false, adpt.append_revisions_only
92 end
99 end
93
100
94 def test_info_not_nil
101 def test_info_not_nil
95 assert_not_nil @adapter.info
102 assert_not_nil @adapter.info
96 end
103 end
97
104
98 def test_info_nil
105 def test_info_nil
99 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
106 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
100 "/invalid/invalid/"
107 "/invalid/invalid/"
101 )
108 )
102 assert_nil adpt.info
109 assert_nil adpt.info
103 end
110 end
104
111
105 def test_info
112 def test_info
106 info = @adapter.info
113 info = @adapter.info
107 assert_equal 4, info.lastrev.identifier.to_i
114 assert_equal 4, info.lastrev.identifier.to_i
108 end
115 end
109
116
110 def test_info_emtpy
117 def test_info_emtpy
111 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
118 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
112 File.join(REPOSITORY_PATH, "empty-branch")
119 File.join(REPOSITORY_PATH, "empty-branch")
113 )
120 )
114 assert_equal 0, adpt.info.lastrev.identifier.to_i
121 assert_equal 0, adpt.info.lastrev.identifier.to_i
115 end
122 end
116
123
117 def test_entries_path_invalid
124 def test_entries_path_invalid
118 assert_equal [], @adapter.entries('invalid')
125 assert_equal [], @adapter.entries('invalid')
119 end
126 end
120
127
121 def test_entries_revision_invalid
128 def test_entries_revision_invalid
122 assert_nil @adapter.entries(nil, 12345678)
129 assert_nil @adapter.entries(nil, 12345678)
123 end
130 end
124
131
125 def test_revisions_path_invalid
132 def test_revisions_path_invalid
126 assert_nil @adapter.revisions('invalid')
133 assert_nil @adapter.revisions('invalid')
127 end
134 end
128
135
129 def test_revisions_revision_invalid
136 def test_revisions_revision_invalid
130 assert_nil @adapter.revisions(nil, 12345678)
137 assert_nil @adapter.revisions(nil, 12345678)
131 assert_nil @adapter.revisions(nil, 12345678, 87654321)
138 assert_nil @adapter.revisions(nil, 12345678, 87654321)
132 end
139 end
133
140
134 private
141 private
135
142
136 def test_scm_version_for(scm_command_version, version)
143 def test_scm_version_for(scm_command_version, version)
137 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
144 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
138 assert_equal version, @adapter.class.scm_command_version
145 assert_equal version, @adapter.class.scm_command_version
139 end
146 end
140 else
147 else
141 puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
148 puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
142 def test_fake; assert true end
149 def test_fake; assert true end
143 end
150 end
144 end
151 end
145 rescue LoadError
152 rescue LoadError
146 class BazaarMochaFake < ActiveSupport::TestCase
153 class BazaarMochaFake < ActiveSupport::TestCase
147 def test_fake; assert(false, "Requires mocha to run those tests") end
154 def test_fake; assert(false, "Requires mocha to run those tests") end
148 end
155 end
149 end
156 end
General Comments 0
You need to be logged in to leave comments. Login now