rubyjobbuilderdsl 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. checksums.yaml +13 -5
  2. data/Gemfile +6 -6
  3. data/Gemfile.lock +41 -41
  4. data/LICENSE +18 -18
  5. data/Rakefile +12 -12
  6. data/docs/common.md +313 -313
  7. data/docs/flow.md +17 -17
  8. data/docs/freestyle.md +100 -100
  9. data/docs/gerrit.md +70 -70
  10. data/docs/git.md +88 -88
  11. data/docs/multi.md +26 -26
  12. data/docs/overview.md +74 -74
  13. data/docs/postbuild.md +266 -266
  14. data/docs/view.md +13 -13
  15. data/lib/rubyjobbuilderdsl.rb +2 -2
  16. data/lib/rubyjobbuilderdsl/buildstep/ant.rb +29 -29
  17. data/lib/rubyjobbuilderdsl/buildstep/copyartifact.rb +23 -23
  18. data/lib/rubyjobbuilderdsl/buildstep/inject_env.rb +18 -18
  19. data/lib/rubyjobbuilderdsl/buildstep/phase.rb +19 -19
  20. data/lib/rubyjobbuilderdsl/buildstep/phase_job.rb +26 -26
  21. data/lib/rubyjobbuilderdsl/buildstep/shell.rb +24 -24
  22. data/lib/rubyjobbuilderdsl/buildstep/xvfb.rb +46 -46
  23. data/lib/rubyjobbuilderdsl/common.rb +140 -140
  24. data/lib/rubyjobbuilderdsl/common/artifactory.rb +33 -33
  25. data/lib/rubyjobbuilderdsl/common/blocking_job.rb +11 -11
  26. data/lib/rubyjobbuilderdsl/common/build_timeout.rb +23 -23
  27. data/lib/rubyjobbuilderdsl/common/gerrit.rb +53 -53
  28. data/lib/rubyjobbuilderdsl/common/git.rb +76 -76
  29. data/lib/rubyjobbuilderdsl/common/logrotate.rb +24 -24
  30. data/lib/rubyjobbuilderdsl/common/parameter.rb +22 -22
  31. data/lib/rubyjobbuilderdsl/common/password.rb +12 -12
  32. data/lib/rubyjobbuilderdsl/common/pollscm.rb +10 -10
  33. data/lib/rubyjobbuilderdsl/common/scms.rb +18 -18
  34. data/lib/rubyjobbuilderdsl/common/throttle.rb +24 -24
  35. data/lib/rubyjobbuilderdsl/common/timed.rb +10 -10
  36. data/lib/rubyjobbuilderdsl/common/timestamps.rb +6 -6
  37. data/lib/rubyjobbuilderdsl/deployer.rb +95 -95
  38. data/lib/rubyjobbuilderdsl/flow.rb +14 -14
  39. data/lib/rubyjobbuilderdsl/freestyle.rb +65 -65
  40. data/lib/rubyjobbuilderdsl/jenkins_client.rb +203 -203
  41. data/lib/rubyjobbuilderdsl/multijob.rb +24 -24
  42. data/lib/rubyjobbuilderdsl/postbuild.rb +160 -160
  43. data/lib/rubyjobbuilderdsl/postbuild/archive.rb +23 -23
  44. data/lib/rubyjobbuilderdsl/postbuild/chucknorris_publisher.rb +6 -6
  45. data/lib/rubyjobbuilderdsl/postbuild/claim_publisher.rb +6 -6
  46. data/lib/rubyjobbuilderdsl/postbuild/cloverphp_publisher.rb +36 -36
  47. data/lib/rubyjobbuilderdsl/postbuild/cucumber_json_publisher.rb +20 -20
  48. data/lib/rubyjobbuilderdsl/postbuild/email_publisher.rb +23 -23
  49. data/lib/rubyjobbuilderdsl/postbuild/game_publisher.rb +6 -6
  50. data/lib/rubyjobbuilderdsl/postbuild/groovy.rb +10 -10
  51. data/lib/rubyjobbuilderdsl/postbuild/html_publisher.rb +27 -27
  52. data/lib/rubyjobbuilderdsl/postbuild/javadoc_publisher.rb +19 -19
  53. data/lib/rubyjobbuilderdsl/postbuild/logparser.rb +21 -21
  54. data/lib/rubyjobbuilderdsl/postbuild/nunit_publisher.rb +21 -21
  55. data/lib/rubyjobbuilderdsl/postbuild/pmd_publisher.rb +19 -19
  56. data/lib/rubyjobbuilderdsl/postbuild/script.rb +14 -14
  57. data/lib/rubyjobbuilderdsl/postbuild/tap_publisher.rb +44 -44
  58. data/lib/rubyjobbuilderdsl/postbuild/trigger.rb +38 -38
  59. data/lib/rubyjobbuilderdsl/postbuild/xunit_publisher.rb +35 -35
  60. data/lib/rubyjobbuilderdsl/view.rb +14 -14
  61. data/lib/rubyjobbuilderdsl/xml_generator.rb +1 -1
  62. data/rubyjobbuilderdsl.gemspec +2 -2
  63. data/rubyjobbuilderdsl.sublime-project +14 -14
  64. data/run_tests.sh +7 -7
  65. data/sample/hello_mars.rb +27 -27
  66. data/sample/hello_mars.xml +18 -0
  67. data/sample/hello_world-post.xml +40 -0
  68. data/sample/local.ini +4 -4
  69. data/sample/test.xml +21 -0
  70. data/test/test_ant.rb +38 -38
  71. data/test/test_archive.rb +24 -24
  72. data/test/test_artifactory.rb +26 -26
  73. data/test/test_blocking_job.rb +18 -18
  74. data/test/test_chucknorris_publisher.rb +17 -17
  75. data/test/test_claim_publisher.rb +17 -17
  76. data/test/test_cloverphp.rb +33 -33
  77. data/test/test_concurrent.rb +44 -44
  78. data/test/test_copyartifact.rb +45 -45
  79. data/test/test_cucumber_json_publisher.rb +30 -30
  80. data/test/test_default_setting.rb +29 -29
  81. data/test/test_email_publisher.rb +44 -44
  82. data/test/test_flow.rb +19 -19
  83. data/test/test_freestyle.rb +52 -52
  84. data/test/test_game_publisher.rb +17 -17
  85. data/test/test_gerrit.rb +117 -117
  86. data/test/test_git.rb +80 -80
  87. data/test/test_html_publisher.rb +57 -57
  88. data/test/test_inject.rb +23 -23
  89. data/test/test_javadoc.rb +22 -22
  90. data/test/test_logparser.rb +24 -24
  91. data/test/test_logrotate.rb +22 -22
  92. data/test/test_multijob.rb +50 -50
  93. data/test/test_nunit_publisher.rb +20 -20
  94. data/test/test_parameter.rb +44 -44
  95. data/test/test_password.rb +17 -17
  96. data/test/test_pmd.rb +22 -22
  97. data/test/test_pollscm.rb +15 -15
  98. data/test/test_postbuild_groovy.rb +21 -21
  99. data/test/test_postbuild_script.rb +24 -24
  100. data/test/test_postbuild_trigger.rb +170 -170
  101. data/test/test_scms.rb +31 -31
  102. data/test/test_tap_publisher.rb +25 -25
  103. data/test/test_timed.rb +15 -15
  104. data/test/test_timeout.rb +20 -20
  105. data/test/test_timestamps.rb +14 -14
  106. data/test/test_xml_generator.rb +28 -28
  107. data/test/test_xunit_publisher.rb +22 -22
  108. data/test/test_xvfb.rb +35 -35
  109. metadata +11 -10
  110. data/rubyjobbuilderdsl-0.0.3.gem +0 -0
  111. data/sample/Schedule-sample-pipeline.xml +0 -32
@@ -1,30 +1,30 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestCucumberPublisher < Test::Unit::TestCase
4
- def test_postbuild_cucumber_json_publisher
5
- file_location = 'cucumber/results.json'
6
- ignore_bad_results = 'false'
7
-
8
- builder = JenkinsJob::Builder.new
9
-
10
- builder.freestyle 'foo' do
11
- postbuild do
12
- cucumber_json_publisher do
13
- test_results file_location
14
- ignore_bad_tests ignore_bad_results
15
- end
16
- end
17
- end
18
-
19
- actual = builder.config_as_xml_node('foo')
20
-
21
- {
22
- 'testResults' => file_location,
23
- 'ignoreBadSteps' => ignore_bad_results,
24
- }.each do |k, v|
25
- path = ['./project/publishers/org.jenkinsci.plugins.cucumber.',
26
- "jsontestsupport.CucumberTestResultArchiver/#{k}"].join('')
27
- assert_equal v, actual.xpath(path).text
28
- end
29
- end
30
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestCucumberPublisher < Test::Unit::TestCase
4
+ def test_postbuild_cucumber_json_publisher
5
+ file_location = 'cucumber/results.json'
6
+ ignore_bad_results = 'false'
7
+
8
+ builder = JenkinsJob::Builder.new
9
+
10
+ builder.freestyle 'foo' do
11
+ postbuild do
12
+ cucumber_json_publisher do
13
+ test_results file_location
14
+ ignore_bad_tests ignore_bad_results
15
+ end
16
+ end
17
+ end
18
+
19
+ actual = builder.config_as_xml_node('foo')
20
+
21
+ {
22
+ 'testResults' => file_location,
23
+ 'ignoreBadSteps' => ignore_bad_results,
24
+ }.each do |k, v|
25
+ path = ['./project/publishers/org.jenkinsci.plugins.cucumber.',
26
+ "jsontestsupport.CucumberTestResultArchiver/#{k}"].join('')
27
+ assert_equal v, actual.xpath(path).text
28
+ end
29
+ end
30
+ end
@@ -1,29 +1,29 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlDefaultSetting < Test::Unit::TestCase
4
- def test_created_jobs_inherit_default_setting
5
- builder = JenkinsJob::Builder.new do
6
- node 'windows'
7
- quiet_period 5
8
- end
9
-
10
- builder.freestyle 'show-env' do
11
- shell 'env'
12
- end
13
-
14
- builder.freestyle 'show-dir' do
15
- shell 'pwd'
16
- end
17
-
18
- actual_show_env = builder.config_as_xml_node('show-env')
19
- actual_show_dir = builder.config_as_xml_node('show-dir')
20
-
21
- assert_equal '5', actual_show_env.xpath('./project/quietPeriod').text
22
- assert_equal 'windows', actual_show_env.xpath('./project/assignedNode').text
23
- assert_equal 'env', actual_show_env.xpath('./project/builders/hudson.tasks.Shell/command').text
24
-
25
- assert_equal '5', actual_show_dir.xpath('./project/quietPeriod').text
26
- assert_equal 'windows', actual_show_dir.xpath('./project/assignedNode').text
27
- assert_equal 'pwd', actual_show_dir.xpath('./project/builders/hudson.tasks.Shell/command').text
28
- end
29
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlDefaultSetting < Test::Unit::TestCase
4
+ def test_created_jobs_inherit_default_setting
5
+ builder = JenkinsJob::Builder.new do
6
+ node 'windows'
7
+ quiet_period 5
8
+ end
9
+
10
+ builder.freestyle 'show-env' do
11
+ shell 'env'
12
+ end
13
+
14
+ builder.freestyle 'show-dir' do
15
+ shell 'pwd'
16
+ end
17
+
18
+ actual_show_env = builder.config_as_xml_node('show-env')
19
+ actual_show_dir = builder.config_as_xml_node('show-dir')
20
+
21
+ assert_equal '5', actual_show_env.xpath('./project/quietPeriod').text
22
+ assert_equal 'windows', actual_show_env.xpath('./project/assignedNode').text
23
+ assert_equal 'env', actual_show_env.xpath('./project/builders/hudson.tasks.Shell/command').text
24
+
25
+ assert_equal '5', actual_show_dir.xpath('./project/quietPeriod').text
26
+ assert_equal 'windows', actual_show_dir.xpath('./project/assignedNode').text
27
+ assert_equal 'pwd', actual_show_dir.xpath('./project/builders/hudson.tasks.Shell/command').text
28
+ end
29
+ end
@@ -1,44 +1,44 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlEmailPublisher < Test::Unit::TestCase
4
- def test_postbuild_email_publisher
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- postbuild do
9
- send_email 'test@example.com' do
10
- notify_every_unstable_build false
11
- send_to_individuals true
12
- end
13
- end
14
- end
15
-
16
- actual = builder.config_as_xml_node('foo')
17
-
18
- { 'recipients' => 'test@example.com',
19
- 'dontNotifyEveryUnstableBuild' => 'true',
20
- 'sendToIndividuals' => 'true'
21
- }.each do |k, v|
22
- assert_equal v, actual.xpath("./project/publishers/hudson.tasks.Mailer/#{k}").text, k
23
- end
24
- end
25
-
26
- def test_postbuild_email_publisher_defaults
27
- builder = JenkinsJob::Builder.new
28
-
29
- builder.freestyle 'foo' do
30
- postbuild do
31
- send_email 'test@example.com'
32
- end
33
- end
34
-
35
- actual = builder.config_as_xml_node('foo')
36
-
37
- { 'recipients' => 'test@example.com',
38
- 'dontNotifyEveryUnstableBuild' => 'false',
39
- 'sendToIndividuals' => 'false'
40
- }.each do |k, v|
41
- assert_equal v, actual.xpath("./project/publishers/hudson.tasks.Mailer/#{k}").text, k
42
- end
43
- end
44
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlEmailPublisher < Test::Unit::TestCase
4
+ def test_postbuild_email_publisher
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ postbuild do
9
+ send_email 'test@example.com' do
10
+ notify_every_unstable_build false
11
+ send_to_individuals true
12
+ end
13
+ end
14
+ end
15
+
16
+ actual = builder.config_as_xml_node('foo')
17
+
18
+ { 'recipients' => 'test@example.com',
19
+ 'dontNotifyEveryUnstableBuild' => 'true',
20
+ 'sendToIndividuals' => 'true'
21
+ }.each do |k, v|
22
+ assert_equal v, actual.xpath("./project/publishers/hudson.tasks.Mailer/#{k}").text, k
23
+ end
24
+ end
25
+
26
+ def test_postbuild_email_publisher_defaults
27
+ builder = JenkinsJob::Builder.new
28
+
29
+ builder.freestyle 'foo' do
30
+ postbuild do
31
+ send_email 'test@example.com'
32
+ end
33
+ end
34
+
35
+ actual = builder.config_as_xml_node('foo')
36
+
37
+ { 'recipients' => 'test@example.com',
38
+ 'dontNotifyEveryUnstableBuild' => 'false',
39
+ 'sendToIndividuals' => 'false'
40
+ }.each do |k, v|
41
+ assert_equal v, actual.xpath("./project/publishers/hudson.tasks.Mailer/#{k}").text, k
42
+ end
43
+ end
44
+ end
data/test/test_flow.rb CHANGED
@@ -1,19 +1,19 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlFlow < Test::Unit::TestCase
4
- def test_flow
5
- groovy_code = <<EOS
6
- build("ops-" + params["GERRIT_BRANCH"], GERRIT_REFSPEC: "refs/heads/${params["GERRIT_BRANCH"]}",
7
- GERRIT_BRANCH: params["GERRIT_BRANCH"])
8
- EOS
9
- builder = JenkinsJob::Builder.new
10
- builder.flow 'foo' do
11
- dsl groovy_code
12
- end
13
-
14
- actual = builder.config_as_xml_node('foo')
15
- { 'buildNeedsWorkspace' => 'true', 'dsl' => groovy_code }.each do |k, v|
16
- assert_equal v, actual.xpath("./com.cloudbees.plugins.flow.BuildFlow/#{k}").text, k
17
- end
18
- end
19
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlFlow < Test::Unit::TestCase
4
+ def test_flow
5
+ groovy_code = <<EOS
6
+ build("ops-" + params["GERRIT_BRANCH"], GERRIT_REFSPEC: "refs/heads/${params["GERRIT_BRANCH"]}",
7
+ GERRIT_BRANCH: params["GERRIT_BRANCH"])
8
+ EOS
9
+ builder = JenkinsJob::Builder.new
10
+ builder.flow 'foo' do
11
+ dsl groovy_code
12
+ end
13
+
14
+ actual = builder.config_as_xml_node('foo')
15
+ { 'buildNeedsWorkspace' => 'true', 'dsl' => groovy_code }.each do |k, v|
16
+ assert_equal v, actual.xpath("./com.cloudbees.plugins.flow.BuildFlow/#{k}").text, k
17
+ end
18
+ end
19
+ end
@@ -1,52 +1,52 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlFreestyle < Test::Unit::TestCase
4
- def test_freestyle
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- desc 'this is a foo'
9
- workspace 'foo-$BUILD_NUMBER'
10
- node 'windows'
11
- quiet_period 5
12
- end
13
-
14
- actual = builder.config_as_xml_node('foo')
15
-
16
- assert_equal '', actual.xpath('./project/actions').text
17
- assert_equal 'this is a foo', actual.xpath('./project/description').text
18
- assert_equal 'false', actual.xpath('./project/keepDependencies').text
19
- assert_equal 'false', actual.xpath('./project/blockBuildWhenDownstreamBuilding').text
20
- assert_equal 'false', actual.xpath('./project/concurrentBuild').text
21
- assert_equal 'foo-$BUILD_NUMBER', actual.xpath('./project/customWorkspace').text
22
- assert_equal '5', actual.xpath('./project/quietPeriod').text
23
- assert_equal 'windows', actual.xpath('./project/assignedNode').text
24
- assert_equal 'false', actual.xpath('./project/canRoam').text
25
- assert_equal '', actual.xpath('./project/properties').text
26
- assert_equal 'hudson.scm.NullSCM', actual.xpath('./project/scm').attr('class').text
27
- assert_equal '', actual.xpath('./project/builders').text
28
- assert_equal '', actual.xpath('./project/publishers').text
29
- assert_equal '', actual.xpath('./project/buildWrappers').text
30
- end
31
-
32
- def test_builders
33
- builder = JenkinsJob::Builder.new
34
-
35
- builder.freestyle 'foo' do
36
- powershell 'Get-Service bar.* | foreach { sc.exe stop $_.Name }'
37
- shell 'rm -rf * || true'
38
- batch 'c:\Nuget\NuGet.exe Install ServiceTestRunner -source ArtifactoryBuildScripts -config c:\Nuget\NuGet.Config'
39
- end
40
-
41
- actual = builder.config_as_xml_node('foo')
42
-
43
- assert_equal 'Get-Service bar.* | foreach { sc.exe stop $_.Name }',
44
- actual.xpath('./project/builders/hudson.plugins.powershell.PowerShell/command').text
45
-
46
- assert_equal 'rm -rf * || true',
47
- actual.xpath('./project/builders/hudson.tasks.Shell/command').text
48
-
49
- assert_equal 'c:\Nuget\NuGet.exe Install ServiceTestRunner -source ArtifactoryBuildScripts -config c:\Nuget\NuGet.Config',
50
- actual.xpath('./project/builders/hudson.tasks.BatchFile/command').text
51
- end
52
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlFreestyle < Test::Unit::TestCase
4
+ def test_freestyle
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ desc 'this is a foo'
9
+ workspace 'foo-$BUILD_NUMBER'
10
+ node 'windows'
11
+ quiet_period 5
12
+ end
13
+
14
+ actual = builder.config_as_xml_node('foo')
15
+
16
+ assert_equal '', actual.xpath('./project/actions').text
17
+ assert_equal 'this is a foo', actual.xpath('./project/description').text
18
+ assert_equal 'false', actual.xpath('./project/keepDependencies').text
19
+ assert_equal 'false', actual.xpath('./project/blockBuildWhenDownstreamBuilding').text
20
+ assert_equal 'false', actual.xpath('./project/concurrentBuild').text
21
+ assert_equal 'foo-$BUILD_NUMBER', actual.xpath('./project/customWorkspace').text
22
+ assert_equal '5', actual.xpath('./project/quietPeriod').text
23
+ assert_equal 'windows', actual.xpath('./project/assignedNode').text
24
+ assert_equal 'false', actual.xpath('./project/canRoam').text
25
+ assert_equal '', actual.xpath('./project/properties').text
26
+ assert_equal 'hudson.scm.NullSCM', actual.xpath('./project/scm').attr('class').text
27
+ assert_equal '', actual.xpath('./project/builders').text
28
+ assert_equal '', actual.xpath('./project/publishers').text
29
+ assert_equal '', actual.xpath('./project/buildWrappers').text
30
+ end
31
+
32
+ def test_builders
33
+ builder = JenkinsJob::Builder.new
34
+
35
+ builder.freestyle 'foo' do
36
+ powershell 'Get-Service bar.* | foreach { sc.exe stop $_.Name }'
37
+ shell 'rm -rf * || true'
38
+ batch 'c:\Nuget\NuGet.exe Install ServiceTestRunner -source ArtifactoryBuildScripts -config c:\Nuget\NuGet.Config'
39
+ end
40
+
41
+ actual = builder.config_as_xml_node('foo')
42
+
43
+ assert_equal 'Get-Service bar.* | foreach { sc.exe stop $_.Name }',
44
+ actual.xpath('./project/builders/hudson.plugins.powershell.PowerShell/command').text
45
+
46
+ assert_equal 'rm -rf * || true',
47
+ actual.xpath('./project/builders/hudson.tasks.Shell/command').text
48
+
49
+ assert_equal 'c:\Nuget\NuGet.exe Install ServiceTestRunner -source ArtifactoryBuildScripts -config c:\Nuget\NuGet.Config',
50
+ actual.xpath('./project/builders/hudson.tasks.BatchFile/command').text
51
+ end
52
+ end
@@ -1,17 +1,17 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestGamePublisher < Test::Unit::TestCase
4
- def test_postbuild_game_publisher
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.freestyle 'foo' do
8
- postbuild do
9
- game
10
- end
11
- end
12
-
13
- actual = builder.config_as_xml_node('foo')
14
-
15
- assert actual.at('./project/publishers/hudson.plugins.cigame.GamePublisher')
16
- end
17
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestGamePublisher < Test::Unit::TestCase
4
+ def test_postbuild_game_publisher
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.freestyle 'foo' do
8
+ postbuild do
9
+ game
10
+ end
11
+ end
12
+
13
+ actual = builder.config_as_xml_node('foo')
14
+
15
+ assert actual.at('./project/publishers/hudson.plugins.cigame.GamePublisher')
16
+ end
17
+ end
data/test/test_gerrit.rb CHANGED
@@ -1,117 +1,117 @@
1
- require_relative './test_xml_generator'
2
-
3
- class TestXmlGerrit < Test::Unit::TestCase
4
- def test_gerrit_project
5
- builder = JenkinsJob::Builder.new
6
-
7
- builder.flow 'foo' do
8
- gerrit do
9
- patchset_uploaded
10
-
11
- project 'foo/bar' do
12
- branch 'master', 'release'
13
- file 'a/**',
14
- 'b/**'
15
- end
16
- end
17
- end
18
-
19
- actual = builder.config_as_xml_node('foo')
20
-
21
- { 'compareType' => 'PLAIN', 'pattern' => 'foo/bar' }.each do |k, v|
22
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
23
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
24
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/#{k}").text, k
25
- end
26
-
27
- { 1 => { 'compareType' => 'ANT', 'pattern' => 'master' },
28
- 2 => { 'compareType' => 'ANT', 'pattern' => 'release' } }.each do |item, data|
29
- data.each do |k, v|
30
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
31
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
32
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/branches/' \
33
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch[#{item}]/#{k}").text, "item #{item}, #{k}"
34
- end
35
- end
36
-
37
- { 1 => { 'compareType' => 'ANT', 'pattern' => 'a/**' },
38
- 2 => { 'compareType' => 'ANT', 'pattern' => 'b/**' } }.each do |item, data|
39
- data.each do |k, v|
40
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
41
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
42
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/filePaths/' \
43
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.FilePath[#{item}]/#{k}").text, "item #{item}, #{k}"
44
- end
45
- end
46
- end
47
-
48
- def test_patchset_uploaded
49
- builder = JenkinsJob::Builder.new
50
-
51
- builder.flow 'foo' do
52
- gerrit do
53
- patchset_uploaded
54
- end
55
- end
56
-
57
- actual = builder.config_as_xml_node('foo')
58
-
59
- assert actual.at('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
60
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
61
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent')
62
- end
63
-
64
- def test_gerrit_change_merged
65
- builder = JenkinsJob::Builder.new
66
-
67
- builder.flow 'foo' do
68
- gerrit do
69
- change_merged
70
- end
71
- end
72
-
73
- actual = builder.config_as_xml_node('foo')
74
- assert actual.at('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
75
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
76
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginChangeMergedEvent')
77
- end
78
-
79
- def test_gerrit_one_comment_added
80
- builder = JenkinsJob::Builder.new
81
-
82
- builder.flow 'foo' do
83
- gerrit do
84
- comment_added 'Code-Review' => '2'
85
- end
86
- end
87
-
88
- actual = builder.config_as_xml_node('foo')
89
- { 'verdictCategory' => 'Code-Review', 'commentAddedTriggerApprovalValue' => '2' }.each do |k, v|
90
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
91
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
92
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent/#{k}").text, k
93
- end
94
- end
95
-
96
- def test_gerrit_more_comment_added
97
- builder = JenkinsJob::Builder.new
98
-
99
- builder.flow 'foo' do
100
- gerrit do
101
- comment_added 'Code-Review' => '2', 'Verified' => '1'
102
- end
103
- end
104
-
105
- actual = builder.config_as_xml_node('foo')
106
-
107
- { 1 => { 'verdictCategory' => 'Code-Review', 'commentAddedTriggerApprovalValue' => '2' },
108
- 2 => { 'verdictCategory' => 'Verified', 'commentAddedTriggerApprovalValue' => '1' } }.each do |item, data|
109
- data.each do |k, v|
110
- assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
111
- 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
112
- "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent[#{item}]/#{k}").text,
113
- "item #{item}, #{k}"
114
- end
115
- end
116
- end
117
- end
1
+ require_relative './test_xml_generator'
2
+
3
+ class TestXmlGerrit < Test::Unit::TestCase
4
+ def test_gerrit_project
5
+ builder = JenkinsJob::Builder.new
6
+
7
+ builder.flow 'foo' do
8
+ gerrit do
9
+ patchset_uploaded
10
+
11
+ project 'foo/bar' do
12
+ branch 'master', 'release'
13
+ file 'a/**',
14
+ 'b/**'
15
+ end
16
+ end
17
+ end
18
+
19
+ actual = builder.config_as_xml_node('foo')
20
+
21
+ { 'compareType' => 'PLAIN', 'pattern' => 'foo/bar' }.each do |k, v|
22
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
23
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
24
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/#{k}").text, k
25
+ end
26
+
27
+ { 1 => { 'compareType' => 'ANT', 'pattern' => 'master' },
28
+ 2 => { 'compareType' => 'ANT', 'pattern' => 'release' } }.each do |item, data|
29
+ data.each do |k, v|
30
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
31
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
32
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/branches/' \
33
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch[#{item}]/#{k}").text, "item #{item}, #{k}"
34
+ end
35
+ end
36
+
37
+ { 1 => { 'compareType' => 'ANT', 'pattern' => 'a/**' },
38
+ 2 => { 'compareType' => 'ANT', 'pattern' => 'b/**' } }.each do |item, data|
39
+ data.each do |k, v|
40
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
41
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/gerritProjects/' \
42
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject/filePaths/' \
43
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.FilePath[#{item}]/#{k}").text, "item #{item}, #{k}"
44
+ end
45
+ end
46
+ end
47
+
48
+ def test_patchset_uploaded
49
+ builder = JenkinsJob::Builder.new
50
+
51
+ builder.flow 'foo' do
52
+ gerrit do
53
+ patchset_uploaded
54
+ end
55
+ end
56
+
57
+ actual = builder.config_as_xml_node('foo')
58
+
59
+ assert actual.at('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
60
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
61
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent')
62
+ end
63
+
64
+ def test_gerrit_change_merged
65
+ builder = JenkinsJob::Builder.new
66
+
67
+ builder.flow 'foo' do
68
+ gerrit do
69
+ change_merged
70
+ end
71
+ end
72
+
73
+ actual = builder.config_as_xml_node('foo')
74
+ assert actual.at('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
75
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
76
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginChangeMergedEvent')
77
+ end
78
+
79
+ def test_gerrit_one_comment_added
80
+ builder = JenkinsJob::Builder.new
81
+
82
+ builder.flow 'foo' do
83
+ gerrit do
84
+ comment_added 'Code-Review' => '2'
85
+ end
86
+ end
87
+
88
+ actual = builder.config_as_xml_node('foo')
89
+ { 'verdictCategory' => 'Code-Review', 'commentAddedTriggerApprovalValue' => '2' }.each do |k, v|
90
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
91
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
92
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent/#{k}").text, k
93
+ end
94
+ end
95
+
96
+ def test_gerrit_more_comment_added
97
+ builder = JenkinsJob::Builder.new
98
+
99
+ builder.flow 'foo' do
100
+ gerrit do
101
+ comment_added 'Code-Review' => '2', 'Verified' => '1'
102
+ end
103
+ end
104
+
105
+ actual = builder.config_as_xml_node('foo')
106
+
107
+ { 1 => { 'verdictCategory' => 'Code-Review', 'commentAddedTriggerApprovalValue' => '2' },
108
+ 2 => { 'verdictCategory' => 'Verified', 'commentAddedTriggerApprovalValue' => '1' } }.each do |item, data|
109
+ data.each do |k, v|
110
+ assert_equal v, actual.xpath('./com.cloudbees.plugins.flow.BuildFlow/triggers/' \
111
+ 'com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger/triggerOnEvents/' \
112
+ "com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent[#{item}]/#{k}").text,
113
+ "item #{item}, #{k}"
114
+ end
115
+ end
116
+ end
117
+ end