ivy4r 0.12.7 → 0.12.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ Bundler.require(:default, :development)
3
+
4
+ # see https://github.com/rspec/rspec/wiki/autotest
5
+
6
+ Autotest.add_hook(:initialize) {|at|
7
+ at.add_exception %r{^\.git} # ignore Version Control System
8
+ at.add_exception %r{^./tmp} # ignore temp files, lest autotest will run again, and again...
9
+ at.clear_mappings # take out the default (test/test*rb)
10
+ at.add_mapping(%r{^lib/.*\.rb$}) {|f, _|
11
+ Dir['spec*/**/*.rb']
12
+ }
13
+ nil
14
+ }
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format nested
2
+ --color
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.12.8 / 2011-01-14
2
+ * Converted all tests to RSpec2 specs and grouped them according to functional and normal spec
3
+ * Started adding more specs to get a descent test coverage
4
+ * Fixed regression error on Ivy status for buildr, now the proc is used if given
5
+
1
6
  === 0.12.7 / 2011-01-06
2
7
  * Fixed error in manifest: module was organisation name.
3
8
  * info task uses the same ivy config as the other ivy tasks
data/Rakefile CHANGED
@@ -2,6 +2,7 @@ require "rubygems"
2
2
  require "bundler"
3
3
  require "rake"
4
4
  require "rake/testtask"
5
+ Bundler.require(:default, :development)
5
6
 
6
7
  $:.unshift File.join(File.dirname(__FILE__),'lib')
7
8
  require "ivy4r/version"
@@ -11,14 +12,7 @@ require "rspec/core/rake_task"
11
12
  RSpec::Core::RakeTask.new :spec
12
13
  #task :default => :spec
13
14
 
14
- desc "Functional test execution not that this only works under MRI and not with JRuby 1.5.1"
15
- Rake::TestTask.new :test_functional do |t|
16
- Bundler.require :development
17
- t.test_files = FileList['test-functional/**/test*.rb']
18
- t.verbose = true
19
- end
20
-
21
- task :build => :test_functional do
15
+ task :build do
22
16
  system "gem build ivy4r.gemspec"
23
17
  end
24
18
 
@@ -0,0 +1 @@
1
+ Autotest.add_discovery { "rspec2" }
@@ -23,7 +23,8 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency 'Antwrap', '>= 0.7.0'
24
24
  s.add_dependency 'ivy4r-jars', '>= 1.2.0'
25
25
 
26
- s.add_development_dependency 'rspec', '>= 2.0.0'
27
- s.add_development_dependency 'mocha', '>= 0.9.8'
28
- s.add_development_dependency 'rr' # for old functional tests
26
+ s.add_development_dependency 'autotest', '>=4.4.6'
27
+ s.add_development_dependency 'ZenTest', '>=4.4.2'
28
+ s.add_development_dependency 'rspec', '>= 2.4.0'
29
+ s.add_development_dependency 'rr', '>=1.0.2'
29
30
  end
@@ -268,7 +268,7 @@ module Buildr
268
268
  if @status_calc
269
269
  @status ||= @status_calc.call(self)
270
270
  else
271
- @status ||= Ivy.setting('status') || 'integration'
271
+ @status
272
272
  end
273
273
  elsif status.empty? && block.nil?
274
274
  raise "status value invalid #{status.join(', ')}" unless status.size == 1
@@ -1,3 +1,3 @@
1
1
  class Ivy4r
2
- VERSION = "0.12.7"
2
+ VERSION = "0.12.8"
3
3
  end
@@ -0,0 +1,86 @@
1
+ describe "Ivy::Target" do
2
+
3
+ before(:each) do
4
+ Ivy::Target.send(:public, :call_nested) # make tested method public
5
+ @ant = Object.new
6
+ @target = Ivy::Target.new(@ant)
7
+ end
8
+
9
+ it "#call_nested(single data) should make correct calls" do
10
+ nested = {
11
+ :fileset => {
12
+ :includes => 'bla',
13
+ :excludes => 'blub',
14
+ :dir => 'anything'
15
+ }
16
+ }
17
+ mock(@ant).fileset(nested[:fileset])
18
+
19
+ @target.call_nested(nested)
20
+ end
21
+
22
+ it "#call_nested(multi data) should make correct calls" do
23
+ nested = {
24
+ :fileset => {
25
+ :includes => 'bla',
26
+ :excludes => 'blub',
27
+ :dir => 'anything'
28
+ },
29
+ :other => {
30
+ :param => 'myparam'
31
+ }
32
+ }
33
+ mock(@ant).fileset nested[:fileset]
34
+ mock(@ant).other nested[:other]
35
+
36
+ @target.call_nested(nested)
37
+ end
38
+
39
+ it "#call_nested(single data list) should make correct calls" do
40
+ nested = {
41
+ :fileset => [
42
+ {
43
+ :includes => 'bla',
44
+ :excludes => 'blub',
45
+ :dir => 'anything'
46
+ },
47
+ {
48
+ :includes => 'otherbla',
49
+ :excludes => 'otherblub',
50
+ :dir => 'otheranything'
51
+ }
52
+ ]
53
+ }
54
+ mock(@ant).fileset nested[:fileset][0]
55
+ mock(@ant).fileset nested[:fileset][1]
56
+
57
+ @target.call_nested(nested)
58
+ end
59
+
60
+ it "#call_nested(recursive data) should make correct calls" do
61
+ nested = {
62
+ :taskdef =>
63
+ {
64
+ :name => 'bla',
65
+ :nested => {
66
+ :fileset => {
67
+ :includes => 'bla',
68
+ :excludes => 'blub',
69
+ :dir => 'anything'}
70
+ }
71
+ }
72
+ }
73
+
74
+ # define the method that yields if a block is given, to test the nested stuff
75
+ def @ant.taskdef(p)
76
+ raise "Invalid params to many" unless p.size == 1
77
+ raise "Wrong parameter value" unless 'bla' == p[:name]
78
+ raise "missing block for method" unless block_given?
79
+ yield
80
+ end
81
+ mock(@ant).fileset nested[:taskdef][:nested][:fileset]
82
+
83
+ @target.call_nested(nested)
84
+ end
85
+
86
+ end
@@ -0,0 +1,27 @@
1
+ describe "Ivy::Targets" do
2
+
3
+ before(:each) do
4
+ ivy4r = Ivy4r.new
5
+ @ivy_test_xml = File.join(File.dirname(__FILE__), '..', '..', 'spec_files', 'ivy.xml')
6
+ @info = Ivy::Info.new(ivy4r.ant)
7
+ end
8
+
9
+ it "#execute with empty parameters missing mandatory error" do
10
+ lambda{ @info.execute({}) }.should raise_error(ArgumentError)
11
+ end
12
+
13
+ it "#execute validate with unknown parameters error" do
14
+ lambda{ @info.execute(:unknown_parameter => 'unknown') }.should raise_error(ArgumentError)
15
+ end
16
+
17
+ it "#execute simple file correct return values" do
18
+ result = @info.execute(:file => @ivy_test_xml)
19
+
20
+ result.should_not be nil
21
+ %w[ivy.organisation ivy.revision ivy.module].each do |var|
22
+ result.keys.should include(var)
23
+ end
24
+ result['ivy.organisation'].should eq('blau')
25
+ end
26
+
27
+ end
@@ -0,0 +1,50 @@
1
+ describe "::Ivy4r" do
2
+
3
+ before(:each) do
4
+ @ivy4r = Ivy4r.new
5
+ @ivy_xml = File.join(File.dirname(__FILE__), '..', 'spec_files', 'ivy.xml')
6
+ @ivy_settings_xml = File.join(File.dirname(__FILE__), '..', 'spec_files', 'ivysettings.xml')
7
+ end
8
+
9
+ it "#ant returns default AntWrapper" do
10
+ @ivy4r.ant.should_not be nil
11
+ @ivy4r.ant.should be_kind_of(::Antwrap::AntProject)
12
+ @ivy4r.ant.basedir.should eq(Dir.pwd)
13
+ @ivy4r.ant.declarative.should be true
14
+ end
15
+
16
+ it "#ant returns always same instance" do
17
+ @ivy4r.ant.should be @ivy4r.ant
18
+ end
19
+
20
+ it "#ant returns provided instance if set previously" do
21
+ provided = "bla"
22
+ @ivy4r.ant = provided
23
+ @ivy4r.instance_eval("@init_done = true")
24
+ @ivy4r.ant.should be provided
25
+ end
26
+
27
+ it "#cleancache returns nil" do
28
+ @ivy4r.cleancache.should be nil
29
+ end
30
+
31
+ it "#info returns data from used ivy.xml" do
32
+ result = @ivy4r.info :file => @ivy_xml
33
+
34
+ result.should_not be nil
35
+ result['ivy.organisation'].should eq('blau')
36
+ result['ivy.module'].should eq('testmodule')
37
+ result['ivy.revision'].should eq('2.20.0')
38
+ end
39
+
40
+ it "#settings returns nil" do
41
+ @ivy4r.settings(:file => @ivy_settings_xml).should be nil
42
+ end
43
+
44
+ it "#configure returns custom properties" do
45
+ result = @ivy4r.configure(:file => @ivy_settings_xml)
46
+
47
+ result.should_not be nil
48
+ result['myparam.ivy.instance'].should eq('myvalue')
49
+ end
50
+ end
@@ -0,0 +1,10 @@
1
+ require 'ivy4r'
2
+ Bundler.require(:default, :development)
3
+
4
+ require 'rspec'
5
+
6
+ JRuby.objectspace = true if RUBY_PLATFORM == 'java'
7
+
8
+ Rspec.configure do |c|
9
+ c.mock_with :rr
10
+ end
@@ -0,0 +1,131 @@
1
+ describe "Test Functional ::Ivy4r" do
2
+
3
+ before(:each) do
4
+ @ivy4r = Ivy4r.new
5
+ spec_files = File.join(File.dirname(__FILE__), '..', 'spec_files')
6
+ @ivy_xml = File.join(spec_files, 'ivy.xml')
7
+ @ivy_settings_xml = File.join(spec_files, 'ivysettings.xml')
8
+ @buildlist_dir = File.join(spec_files, 'buildlist')
9
+ end
10
+
11
+ it "#buildnumber returns next version" do
12
+ result = @ivy4r.buildnumber :organisation => 'oro', :module => 'oro'
13
+
14
+ result.should_not be nil
15
+ result['ivy.revision'].should eq('2.0.8')
16
+ result['ivy.new.revision'].should eq('2.0.9')
17
+ result['ivy.build.number'].should eq('8')
18
+ result['ivy.new.build.number'].should eq('9')
19
+ end
20
+
21
+ it "#resolve returns resolve values as map" do
22
+ result = @ivy4r.resolve :file => @ivy_xml
23
+
24
+ result.should_not be nil
25
+ result['ivy.organisation'].should eq('blau')
26
+ result['ivy.resolved.configurations'].size.should eq(4)
27
+ end
28
+
29
+ it "#cachpath contains correct jars from previous resolve" do
30
+ @ivy4r.resolve :organisation => "oro", :module => "oro", :revision => "2.0.8", :keep => true, :inline => true
31
+ result = @ivy4r.cachepath :pathid => 'mytestpathid'
32
+
33
+ result.any? {|a| a =~ /.*oro.*\.jar/ && a =~ /.*2\.0\.8*/ }.should be true
34
+ end
35
+
36
+ it "#cachpath with inline resolve contains correct jars" do
37
+ result = @ivy4r.cachepath :organisation => "oro", :module => "oro", :revision => "2.0.8", :inline => true, :pathid => 'mytestpathid'
38
+
39
+ result.any? {|a| a =~ /.*oro.*\.jar/ && a =~ /.*2\.0\.8*/ }.should be true
40
+ end
41
+
42
+ it "#findrevision finds correct version" do
43
+ result = @ivy4r.findrevision :organisation => "oro", :module => "oro", :revision => "2.0.8"
44
+
45
+ result.should eq('2.0.8')
46
+ end
47
+
48
+ it "#findrevision returns nil for unknown revision on existing module" do
49
+ result = @ivy4r.findrevision :organisation => "oro", :module => "oro", :revision => "1unknown1"
50
+
51
+ result.should be nil
52
+ end
53
+
54
+ it "#artifactproperty dependencies are contained in result" do
55
+ @ivy4r.resolve :file => @ivy_xml
56
+ result = @ivy4r.artifactproperty :name => '[organisation]-[module]', :value => '[revision]'
57
+
58
+ result.any? {|k,v| k == 'oro-oro' && v == '2.0.8' }.should be true
59
+ end
60
+
61
+ it "#artifactreport creates xml report file" do
62
+ begin
63
+ target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
64
+ FileUtils.mkdir(target)
65
+ @ivy4r.resolve :file => @ivy_xml
66
+ result = @ivy4r.artifactreport :tofile => File.join(target, 'test.xml')
67
+
68
+ result.should_not be nil
69
+ result.should match(/.*<module organisation="oro".*/)
70
+ ensure
71
+ FileUtils.rm_rf target
72
+ end
73
+ end
74
+
75
+ it "#retrieve creates directory with artifacts" do
76
+ begin
77
+ target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
78
+ FileUtils.mkdir(target)
79
+ @ivy4r.resolve :file => @ivy_xml
80
+ @ivy4r.retrieve :pattern => "#{target}/[organisation]/[module].[ext]"
81
+
82
+ Dir.glob(File.join(target, '**/oro.jar')).size.should be > 0
83
+ ensure
84
+ FileUtils.rm_rf target
85
+ end
86
+ end
87
+
88
+ it "#report creates reports" do
89
+ begin
90
+ target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
91
+ FileUtils.mkdir(target)
92
+ @ivy4r.resolve :file => @ivy_xml
93
+ @ivy4r.report :todir => target
94
+
95
+ Dir.glob(File.join(target, '**/*')).size.should be > 0
96
+ ensure
97
+ FileUtils.rm_rf target
98
+ end
99
+ end
100
+
101
+ it "#buildlist returns list in correct order for linear build" do
102
+ target = @buildlist_dir
103
+ result = @ivy4r.buildlist :reference => 'testpath', :nested => {
104
+ :fileset => [
105
+ {:dir => File.join(target, "sub"), :includes => '**/buildfile'},
106
+ {:dir => File.join(target, "p1"), :includes => 'buildfile'}
107
+ ]
108
+ }
109
+
110
+ result.size.should be 3
111
+ result.map! { |file| File.expand_path(file) }
112
+ File.expand_path(File.join(target, "p1", "buildfile")).should eq(result[0])
113
+ File.expand_path(File.join(target, "sub", "p2", "buildfile")).should eq(result[1])
114
+ File.expand_path(File.join(target, "sub", "p3", "buildfile")).should eq(result[2])
115
+ end
116
+
117
+ it "#makepom creates a pom for ivy.xml" do
118
+ begin
119
+ target = File.join(File.dirname(__FILE__), "testpom.xml")
120
+ result = @ivy4r.makepom :ivyfile => @ivy_xml, :pomfile => target, :nested => {
121
+ :mapping => {:conf => 'default', :scope => 'runtime' }
122
+ }
123
+
124
+ IO.read(target).should eq(result)
125
+ ensure
126
+ FileUtils.rm target
127
+ end
128
+
129
+ end
130
+ end
131
+
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 12
8
- - 7
9
- version: 0.12.7
8
+ - 8
9
+ version: 0.12.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Klaas Reineke
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-01-06 00:00:00 +01:00
17
+ date: 2011-01-14 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -60,45 +60,61 @@ dependencies:
60
60
  prerelease: false
61
61
  type: :runtime
62
62
  - !ruby/object:Gem::Dependency
63
- name: rspec
63
+ name: autotest
64
64
  version_requirements: &id004 !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  segments:
69
- - 2
70
- - 0
71
- - 0
72
- version: 2.0.0
69
+ - 4
70
+ - 4
71
+ - 6
72
+ version: 4.4.6
73
73
  requirement: *id004
74
74
  prerelease: false
75
75
  type: :development
76
76
  - !ruby/object:Gem::Dependency
77
- name: mocha
77
+ name: ZenTest
78
78
  version_requirements: &id005 !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  segments:
83
- - 0
84
- - 9
85
- - 8
86
- version: 0.9.8
83
+ - 4
84
+ - 4
85
+ - 2
86
+ version: 4.4.2
87
87
  requirement: *id005
88
88
  prerelease: false
89
89
  type: :development
90
90
  - !ruby/object:Gem::Dependency
91
- name: rr
91
+ name: rspec
92
92
  version_requirements: &id006 !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  segments:
97
+ - 2
98
+ - 4
97
99
  - 0
98
- version: "0"
100
+ version: 2.4.0
99
101
  requirement: *id006
100
102
  prerelease: false
101
103
  type: :development
104
+ - !ruby/object:Gem::Dependency
105
+ name: rr
106
+ version_requirements: &id007 !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ segments:
111
+ - 1
112
+ - 0
113
+ - 2
114
+ version: 1.0.2
115
+ requirement: *id007
116
+ prerelease: false
117
+ type: :development
102
118
  description: Ivy4r is a Ruby interface for Apache Ivy dependency management library. Offers support for using Ivy with Buildr and Rake.
103
119
  email:
104
120
  - klaas.reineke@googlemail.com
@@ -109,12 +125,15 @@ extensions: []
109
125
  extra_rdoc_files: []
110
126
 
111
127
  files:
128
+ - .autotest
112
129
  - .gitignore
113
130
  - .project
131
+ - .rspec
114
132
  - CHANGELOG
115
133
  - Gemfile
116
134
  - README.txt
117
135
  - Rakefile
136
+ - autotest/discover.rb
118
137
  - ivy4r.gemspec
119
138
  - lib/buildr/ivy_extension.rb
120
139
  - lib/ivy/artifactproperty.rb
@@ -141,17 +160,19 @@ files:
141
160
  - lib/ivy4r/version.rb
142
161
  - lib/ivy4r_java_extensions.rb
143
162
  - lib/rake/ivy_extension.rb
144
- - test-functional/buildlist/p1/buildfile
145
- - test-functional/buildlist/p1/ivy.xml
146
- - test-functional/buildlist/sub/p2/buildfile
147
- - test-functional/buildlist/sub/p2/ivy.xml
148
- - test-functional/buildlist/sub/p3/buildfile
149
- - test-functional/buildlist/sub/p3/ivy.xml
150
- - test-functional/ivy/ivysettings.xml
151
- - test-functional/ivy/ivytest.xml
152
- - test-functional/ivy/test_target.rb
153
- - test-functional/ivy/test_targets.rb
154
- - test-functional/test_ivy4r.rb
163
+ - spec/ivy/target_spec.rb
164
+ - spec/ivy/targets_spec.rb
165
+ - spec/ivy4r_spec.rb
166
+ - spec/spec_helper.rb
167
+ - spec_files/buildlist/p1/buildfile
168
+ - spec_files/buildlist/p1/ivy.xml
169
+ - spec_files/buildlist/sub/p2/buildfile
170
+ - spec_files/buildlist/sub/p2/ivy.xml
171
+ - spec_files/buildlist/sub/p3/buildfile
172
+ - spec_files/buildlist/sub/p3/ivy.xml
173
+ - spec_files/ivy.xml
174
+ - spec_files/ivysettings.xml
175
+ - spec_functional/ivy4r_spec.rb
155
176
  has_rdoc: true
156
177
  homepage: http://github.com/klaas1979/ivy4r
157
178
  licenses: []
@@ -1,99 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__),'..','..','lib')
2
-
3
- JRuby.objectspace = true if RUBY_PLATFORM == 'java'
4
-
5
- require 'test/unit'
6
- require 'rr'
7
- require 'ivy/target'
8
-
9
- class Test::Unit::TestCase
10
- include RR::Adapters::TestUnit
11
- end
12
-
13
- module Ivy
14
- class TargetTest < Test::Unit::TestCase
15
-
16
- def setup
17
- Ivy::Target.send(:public, :call_nested) # make tested method public
18
- @ant = Object.new
19
- @target = Ivy::Target.new(@ant)
20
- end
21
-
22
- def test_call_nested_simple
23
- nested = {
24
- :fileset => {
25
- :includes => 'bla',
26
- :excludes => 'blub',
27
- :dir => 'anything'
28
- }
29
- }
30
- mock(@ant).fileset(nested[:fileset])
31
-
32
- @target.call_nested(nested)
33
- end
34
-
35
- def test_call_nested_multiply
36
- nested = {
37
- :fileset => {
38
- :includes => 'bla',
39
- :excludes => 'blub',
40
- :dir => 'anything'
41
- },
42
- :other => {
43
- :param => 'myparam'
44
- }
45
- }
46
- mock(@ant).fileset nested[:fileset]
47
- mock(@ant).other nested[:other]
48
-
49
- @target.call_nested(nested)
50
- end
51
-
52
- def test_call_nested_list_with_same_method
53
- nested = {
54
- :fileset => [
55
- {
56
- :includes => 'bla',
57
- :excludes => 'blub',
58
- :dir => 'anything'
59
- },
60
- {
61
- :includes => 'otherbla',
62
- :excludes => 'otherblub',
63
- :dir => 'otheranything'
64
- }
65
- ]
66
- }
67
- mock(@ant).fileset nested[:fileset][0]
68
- mock(@ant).fileset nested[:fileset][1]
69
-
70
- @target.call_nested(nested)
71
- end
72
-
73
- def test_call_recursive_nested
74
- nested = {
75
- :taskdef =>
76
- {
77
- :name => 'bla',
78
- :nested => {
79
- :fileset => {
80
- :includes => 'bla',
81
- :excludes => 'blub',
82
- :dir => 'anything'}
83
- }
84
- }
85
- }
86
-
87
- # define the method that yields if a block is given, to test the nested stuff
88
- def @ant.taskdef(p)
89
- raise "Invalid params to many" unless p.size == 1
90
- raise "Wrong parameter value" unless 'bla' == p[:name]
91
- raise "missing block for method" unless block_given?
92
- yield
93
- end
94
- mock(@ant).fileset nested[:taskdef][:nested][:fileset]
95
-
96
- @target.call_nested(nested)
97
- end
98
- end
99
- end
@@ -1,34 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__),'..','..','lib')
2
-
3
- require 'test/unit'
4
- require 'ivy/targets'
5
- require 'ivy4r'
6
-
7
- module Ivy
8
- class TargetsTest < Test::Unit::TestCase
9
-
10
- def setup
11
- ivy4r = Ivy4r.new
12
- @ivy_test_xml = File.join(File.dirname(__FILE__), 'ivytest.xml')
13
- @info = Ivy::Info.new(ivy4r.ant)
14
- end
15
-
16
- def test_execute_empty_parameters_missing_mandatory_exception
17
- assert_raise(ArgumentError) { @info.execute({}) }
18
- end
19
-
20
- def test_execute_validate_with_unkown_parameter_exception
21
- assert_raise(ArgumentError) { @info.execute(:unknown_parameter => 'unknown') }
22
- end
23
-
24
- def test_execute_simple_file_correct_return_values
25
- result = @info.execute(:file => @ivy_test_xml)
26
-
27
- assert_not_nil result
28
- %w[ivy.organisation ivy.revision ivy.module].each do |var|
29
- assert_equal true, result.keys.member?(var), "Contains key '#{var}', has '#{result.keys.join(', ')}'"
30
- end
31
- assert_equal 'blau', result['ivy.organisation']
32
- end
33
- end
34
- end
@@ -1,196 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__),'..','..','lib')
2
-
3
- require 'rubygems'
4
- require 'test/unit'
5
- require 'ivy4r'
6
- require 'antwrap'
7
- require 'fileutils'
8
-
9
- module Ivy
10
- class Ivy4rTest < Test::Unit::TestCase
11
-
12
- def setup
13
- @ivy4r = Ivy4r.new
14
- @ivy_test_xml = File.join(File.dirname(__FILE__), 'ivy', 'ivytest.xml')
15
- end
16
-
17
- def test_ant_returns_default_wrapper
18
- assert_not_nil @ivy4r.ant
19
- assert_kind_of ::Antwrap::AntProject, @ivy4r.ant
20
- assert_equal Dir.pwd, @ivy4r.ant.basedir
21
- assert_equal true, @ivy4r.ant.declarative
22
- end
23
-
24
- def test_ant_returns_always_same_instance
25
- first = @ivy4r.ant
26
- second = @ivy4r.ant
27
- assert_same first, second
28
- end
29
-
30
- def test_ant_returns_set_instance_if_provided
31
- provided = "bla"
32
- @ivy4r.ant = provided
33
- @ivy4r.instance_eval("@init_done = true")
34
- assert_equal provided, @ivy4r.ant
35
- end
36
-
37
- def test_cleancache_returns_nil
38
- result = @ivy4r.cleancache
39
-
40
- assert_nil result
41
- end
42
-
43
- def test_info_returns_values_for_file
44
- result = @ivy4r.info :file => @ivy_test_xml
45
-
46
- assert_not_nil result
47
- assert_equal 'blau', result['ivy.organisation']
48
- end
49
-
50
- def test_buildnumber_returns_infos
51
- result = @ivy4r.buildnumber :organisation => 'oro', :module => 'oro'
52
-
53
- assert_not_nil result
54
- assert_equal '2.0.8', result['ivy.revision']
55
- assert_equal '2.0.9', result['ivy.new.revision']
56
- assert_equal '8', result['ivy.build.number']
57
- assert_equal '9', result['ivy.new.build.number']
58
- end
59
-
60
- def test_settings_returns_nil
61
- result = @ivy4r.settings :file => File.join(File.dirname(__FILE__), 'ivy', 'ivysettings.xml')
62
-
63
- assert_nil result
64
- end
65
-
66
- def test_configure_returns_custom_properties
67
- result = @ivy4r.configure :file => File.join(File.dirname(__FILE__), 'ivy', 'ivysettings.xml')
68
-
69
- assert_not_nil result
70
- assert_equal 'myvalue', result['myparam.ivy.instance']
71
- end
72
-
73
- =begin
74
- def test_property_setting_getting_to_from_ant
75
- # use a java hashmap for testing!!
76
- @ivy4r.instance_eval("def ant_properties;@ant_properties||=java.util.HashMap.new;end")
77
- name, value = 'name', 'value'
78
- @ivy4r.property[name] = value
79
-
80
- assert_equal value, @ivy4r.property[name]
81
- end
82
-
83
- =end
84
- def test_resolve_values_for_file
85
- result = @ivy4r.resolve :file => @ivy_test_xml
86
-
87
- assert_not_nil result
88
- assert_equal 'blau', result['ivy.organisation']
89
- assert_equal 4, result['ivy.resolved.configurations'].size, "has: #{result['ivy.resolved.configurations'].join(', ')}"
90
- end
91
-
92
- def test_cachepath_using_previous_resolve_contains_jar
93
- @ivy4r.resolve :organisation => "oro", :module => "oro", :revision => "2.0.8", :keep => true, :inline => true
94
- result = @ivy4r.cachepath :pathid => 'mytestpathid'
95
-
96
- assert_not_nil result
97
- assert result.any? {|a| a =~ /.*oro.*\.jar/ && a =~ /.*2\.0\.8*/ }
98
- end
99
-
100
- def test_cachepath_with_resolve_contains_jars
101
- result = @ivy4r.cachepath :organisation => "oro", :module => "oro", :revision => "2.0.8", :inline => true, :pathid => 'mytestpathid'
102
-
103
- assert_not_nil result
104
- assert result.any? {|a| a =~ /.*oro.*\.jar/ && a =~ /.*2\.0\.8*/ }
105
- end
106
-
107
- def test_findrevision_found_correct_version
108
- result = @ivy4r.findrevision :organisation => "oro", :module => "oro", :revision => "2.0.8"
109
-
110
- assert_equal '2.0.8', result
111
- end
112
-
113
- def test_findrevision_not_found_nil
114
- result = @ivy4r.findrevision :organisation => "oro", :module => "oro", :revision => "1unknown1"
115
-
116
- assert_nil result
117
- end
118
-
119
- def test_artifactproperty_deps_contained
120
- @ivy4r.resolve :file => @ivy_test_xml
121
- result = @ivy4r.artifactproperty :name => '[organisation]-[module]', :value => '[revision]'
122
-
123
- assert_not_nil result
124
- assert result.any? {|k,v| k == 'oro-oro' && v == '2.0.8' }
125
- end
126
-
127
- def test_artifactreport_xml_returned
128
- target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
129
- FileUtils.mkdir(target)
130
- @ivy4r.resolve :file => @ivy_test_xml
131
- result = @ivy4r.artifactreport :tofile => File.join(target, 'test.xml')
132
-
133
- assert_not_nil result
134
- assert result =~ /.*<module organisation="oro".*/
135
- ensure
136
- FileUtils.rm_rf target
137
- end
138
-
139
- def test_retrieve_created_dir_with_artifacts
140
- target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
141
- FileUtils.mkdir(target)
142
- @ivy4r.resolve :file => @ivy_test_xml
143
- result = @ivy4r.retrieve :pattern => "#{target}/[organisation]/[module].[ext]"
144
-
145
- assert_nil result
146
- assert Dir.glob(File.join(target, '**/oro.jar')).size > 0, "Contains the artifacts"
147
- ensure
148
- FileUtils.rm_rf target
149
- end
150
-
151
- def test_report_created_reports
152
- target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
153
- FileUtils.mkdir(target)
154
- @ivy4r.resolve :file => @ivy_test_xml
155
- result = @ivy4r.report :todir => target
156
-
157
- assert_nil result
158
- assert Dir.glob(File.join(target, '**/*')).size > 0, "Contains the reports"
159
- ensure
160
- FileUtils.rm_rf target
161
- end
162
-
163
- def test_buildlist_correct_list
164
- target = File.join(File.dirname(__FILE__), "buildlist")
165
- result = @ivy4r.buildlist :reference => 'testpath', :nested => {
166
- :fileset => [
167
- {:dir => File.join(target, "sub"), :includes => '**/buildfile'},
168
- {:dir => File.join(target, "p1"), :includes => 'buildfile'}
169
- ]
170
- }
171
-
172
- assert_equal 3, result.size
173
- result.map! { |file| File.expand_path(file) }
174
- assert_equal File.expand_path(File.join(target, "p1", "buildfile")), result[0]
175
- assert_equal File.expand_path(File.join(target, "sub", "p2", "buildfile")), result[1]
176
- assert_equal File.expand_path(File.join(target, "sub", "p3", "buildfile")), result[2]
177
- end
178
-
179
- def test_makepom_returns_content
180
- target = File.join(File.dirname(__FILE__), "testpom.xml")
181
- result = @ivy4r.makepom :ivyfile => @ivy_test_xml, :pomfile => target, :nested => {
182
- :mapping => {:conf => 'default', :scope => 'runtime' }
183
- }
184
-
185
- assert_equal IO.read(target), result
186
- ensure
187
- FileUtils.rm target
188
- end
189
-
190
- #def test_listmodules_lists_ivy_stuff
191
- # result = @antwrap.listmodules :organisation => '*apache*', :module => '*ivy*', :revision => '2.*',
192
- # :matcher => 'glob', :property => 'rums-[organisation][module]', :value => 'found'
193
- # assert result.find {|k,v| k =~ /rums-/ && v == 'found'}, "found: #{result.inspect}"
194
- #end
195
- end
196
- end