##// END OF EJS Templates
scm: bazaar: add unit adapter test that shared repository "append_revisions_only" is false (#2799, #4741, #8030)....
Toshi MARUYAMA -
r5815:a080b09a41ec
parent child
Show More
@@ -1,142 +1,149
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
83 def test_append_revisions_only
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_shared_repo
88 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
89 REPOSITORY_PATH
90 )
91 assert_equal false, adpt.append_revisions_only
92 end
93
87 def test_info_not_nil
94 def test_info_not_nil
88 assert_not_nil @adapter.info
95 assert_not_nil @adapter.info
89 end
96 end
90
97
91 def test_info_nil
98 def test_info_nil
92 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
99 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
93 "/invalid/invalid/"
100 "/invalid/invalid/"
94 )
101 )
95 assert_nil adpt.info
102 assert_nil adpt.info
96 end
103 end
97
104
98 def test_info
105 def test_info
99 info = @adapter.info
106 info = @adapter.info
100 assert_equal 4, info.lastrev.identifier.to_i
107 assert_equal 4, info.lastrev.identifier.to_i
101 end
108 end
102
109
103 def test_info_emtpy
110 def test_info_emtpy
104 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
111 adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
105 File.join(REPOSITORY_PATH, "empty-branch")
112 File.join(REPOSITORY_PATH, "empty-branch")
106 )
113 )
107 assert_equal 0, adpt.info.lastrev.identifier.to_i
114 assert_equal 0, adpt.info.lastrev.identifier.to_i
108 end
115 end
109
116
110 def test_entries_path_invalid
117 def test_entries_path_invalid
111 assert_equal [], @adapter.entries('invalid')
118 assert_equal [], @adapter.entries('invalid')
112 end
119 end
113
120
114 def test_entries_revision_invalid
121 def test_entries_revision_invalid
115 assert_nil @adapter.entries(nil, 12345678)
122 assert_nil @adapter.entries(nil, 12345678)
116 end
123 end
117
124
118 def test_revisions_path_invalid
125 def test_revisions_path_invalid
119 assert_nil @adapter.revisions('invalid')
126 assert_nil @adapter.revisions('invalid')
120 end
127 end
121
128
122 def test_revisions_revision_invalid
129 def test_revisions_revision_invalid
123 assert_nil @adapter.revisions(nil, 12345678)
130 assert_nil @adapter.revisions(nil, 12345678)
124 assert_nil @adapter.revisions(nil, 12345678, 87654321)
131 assert_nil @adapter.revisions(nil, 12345678, 87654321)
125 end
132 end
126
133
127 private
134 private
128
135
129 def test_scm_version_for(scm_command_version, version)
136 def test_scm_version_for(scm_command_version, version)
130 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
137 @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
131 assert_equal version, @adapter.class.scm_command_version
138 assert_equal version, @adapter.class.scm_command_version
132 end
139 end
133 else
140 else
134 puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
141 puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
135 def test_fake; assert true end
142 def test_fake; assert true end
136 end
143 end
137 end
144 end
138 rescue LoadError
145 rescue LoadError
139 class BazaarMochaFake < ActiveSupport::TestCase
146 class BazaarMochaFake < ActiveSupport::TestCase
140 def test_fake; assert(false, "Requires mocha to run those tests") end
147 def test_fake; assert(false, "Requires mocha to run those tests") end
141 end
148 end
142 end
149 end
General Comments 0
You need to be logged in to leave comments. Login now