You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by vb...@apache.org on 2008/09/01 21:18:47 UTC

svn commit: r691033 - /incubator/buildr/trunk/spec/java_packaging_spec.rb

Author: vborja
Date: Mon Sep  1 12:18:47 2008
New Revision: 691033

URL: http://svn.apache.org/viewvc?rev=691033&view=rev
Log:
BUILDR-129. Specs for manifest,

Modifing a project manifest entry should not alter parent
project's manifest.

Modified:
    incubator/buildr/trunk/spec/java_packaging_spec.rb

Modified: incubator/buildr/trunk/spec/java_packaging_spec.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/java_packaging_spec.rb?rev=691033&r1=691032&r2=691033&view=diff
==============================================================================
--- incubator/buildr/trunk/spec/java_packaging_spec.rb (original)
+++ incubator/buildr/trunk/spec/java_packaging_spec.rb Mon Sep  1 12:18:47 2008
@@ -66,8 +66,8 @@
     end
   end
 
-  def inspect_manifest
-    package = project('foo').package(@packaging)
+  def inspect_manifest(package = nil)
+    package ||= project('foo').package(@packaging)
     package.invoke
     yield Buildr::Packaging::Java::Manifest.from_zip(package)
   end
@@ -203,6 +203,67 @@
       zip.entries.map(&:to_s).should include('META-INF/')
     end
   end
+
+  it 'should inherit manifest from parent project' do
+    packaging = @packaging
+    package = nil
+    define('foo', :version => '1.0') do
+      manifest['Foo'] = '1'
+      package(packaging)
+      define('bar', :version => '1.0') do 
+        manifest['bar'] = 'Bar'
+        package(:jar)
+        package = packages.first
+      end
+    end
+    inspect_manifest(package) do |manifest|
+      manifest.sections.size.should be(1)
+      manifest.main['Manifest-Version'].should eql('1.0')
+      manifest.main['Created-By'].should eql('Buildr')
+      manifest.main['Foo'].should eql('1')
+      manifest.main['bar'].should eql('Bar')
+    end
+  end
+
+  it 'should not modify manifest of parent project' do
+    packaging = @packaging
+    define('foo', :version => '1.0') do
+      manifest['Foo'] = '1'
+      package(packaging)
+      define('bar', :version => '1.0') do 
+        manifest['bar'] = 'Bar'
+        package(:jar)
+      end
+      define('baz', :version => '1.0') do 
+        manifest['baz'] = 'Baz'
+        package(:jar)
+      end
+    end
+    inspect_manifest(project('foo').packages.first) do |manifest|
+      manifest.sections.size.should be(1)
+      manifest.main['Manifest-Version'].should eql('1.0')
+      manifest.main['Created-By'].should eql('Buildr')
+      manifest.main['Foo'].should eql('1')
+      manifest.main['bar'].should be_nil
+      manifest.main['baz'].should be_nil
+    end
+    inspect_manifest(project('foo:bar').packages.first) do |manifest|
+      manifest.sections.size.should be(1)
+      manifest.main['Manifest-Version'].should eql('1.0')
+      manifest.main['Created-By'].should eql('Buildr')
+      manifest.main['Foo'].should eql('1')
+      manifest.main['bar'].should eql('Bar')
+      manifest.main['baz'].should be_nil
+    end
+    inspect_manifest(project('foo:baz').packages.first) do |manifest|
+      manifest.sections.size.should be(1)
+      manifest.main['Manifest-Version'].should eql('1.0')
+      manifest.main['Created-By'].should eql('Buildr')
+      manifest.main['Foo'].should eql('1')
+      manifest.main['baz'].should eql('Baz')
+      manifest.main['bar'].should be_nil
+    end
+  end
 end