Fix for JRUBY-2882. Handle error messages related to constructors better
[jruby.git] / test / test_marshal_gemspec.rb
blob41c1003bcfd89045f3f41fc1cd3a5dd5499af775
1 require 'test/unit'
2 require 'rubygems'
3 require 'yaml'
5 # This test demonstrates and verifies the marshalling fix for JRUBY-1877.
6 class TestMarshalGemspec < Test::Unit::TestCase
7   def setup
8     @index = YAML::load <<-YAML
9 --- !ruby/object:Gem::Cache
10 gems:
11   activerecord-jdbcderby-adapter-0.6: !ruby/object:Gem::Specification
12     rubygems_version: 0.9.4
13     specification_version: 1
14     name: activerecord-jdbcderby-adapter
15     version: !ruby/object:Gem::Version
16       version: "0.6"
17     date: 2007-11-04 22:00:00 -08:00
18     summary: Derby JDBC adapter for JRuby on Rails.
19     require_paths:
20     - lib
21     email: nick@nicksieger.com, ola.bini@gmail.com
22     homepage: http://jruby-extras.rubyforge.org/ActiveRecord-JDBC
23     rubyforge_project: jruby-extras
24     description: Install this gem to use Derby with JRuby on Rails.
25     autorequire:
26     default_executable:
27     bindir: bin
28     has_rdoc: true
29     required_ruby_version: !ruby/object:Gem::Version::Requirement
30       requirements:
31       - - ">"
32         - !ruby/object:Gem::Version
33           version: 0.0.0
34       version:
35     platform: ruby
36     signing_key:
37     cert_chain: []
39     post_install_message:
40     authors:
41     - Nick Sieger, Ola Bini and JRuby contributors
42     files: []
44     test_files: []
46     rdoc_options: []
48     extra_rdoc_files: []
50     executables: []
52     extensions: []
54     requirements: []
56     dependencies:
57     - !ruby/object:Gem::Dependency
58       name: activerecord-jdbc-adapter
59       version_requirement:
60       version_requirements: !ruby/object:Gem::Version::Requirement
61         requirements:
62         - - ">="
63           - !ruby/object:Gem::Version
64             version: "0.6"
65         version:
66     - !ruby/object:Gem::Dependency
67       name: jdbc-derby
68       version_requirement:
69       version_requirements: !ruby/object:Gem::Version::Requirement
70         requirements:
71         - - ">="
72           - !ruby/object:Gem::Version
73             version: 10.2.2.0
74         version:
75 YAML
76     @gemspec = @index.search("activerecord-jdbcderby-adapter").first
77   end
79   def assert_gemspec(newspec)
80     assert @gemspec
81     assert newspec
82     assert_equal @gemspec.name, newspec.name
83     assert_equal @gemspec.dependencies.size, newspec.dependencies.size
84     assert_equal @gemspec.dependencies[0], newspec.dependencies[0]
85     assert_equal @gemspec.dependencies[1], newspec.dependencies[1]
86   end
88   def test_dump_and_load_gemspec_from_yaml
89     assert_gemspec(Marshal.load(Marshal.dump(@gemspec)))
90   end
92   def test_dump_and_load_index_from_yaml
93     newindex = Marshal.load(Marshal.dump(@index))
94     newspec = newindex.search("activerecord-jdbcderby-adapter").first
95     assert_gemspec(newspec)
96   end
98   def test_dump_and_load_from_source
99     @gemspec = Gem::Specification.new do |s|
100       s.name = %q{activerecord-jdbcderby-adapter}
101       s.version = "0.6"
102       s.specification_version = 1 if s.respond_to? :specification_version=
103       s.required_rubygems_version = nil if s.respond_to? :required_rubygems_version=
104       s.authors = ["Nick Sieger, Ola Bini and JRuby contributors"]
105       s.date = %q{2007-11-04}
106       s.description = %q{Install this gem to use Derby with JRuby on Rails.}
107       s.email = %q{nick@nicksieger.com, ola.bini@gmail.com}
108       s.has_rdoc = true
109       s.homepage = %q{http://jruby-extras.rubyforge.org/ActiveRecord-JDBC}
110       s.require_paths = ["lib"]
111       s.required_ruby_version = Gem::Requirement.new("> 0.0.0")
112       s.rubyforge_project = %q{jruby-extras}
113       s.rubygems_version = %q{1.0.1}
114       s.summary = %q{Derby JDBC adapter for JRuby on Rails.}
115       s.add_dependency(%q<activerecord-jdbc-adapter>, [">= 0.6"])
116       s.add_dependency(%q<jdbc-derby>, [">= 10.2.2.0"])
117     end
118     test_dump_and_load_gemspec_from_yaml
119   end