#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'test/unit'
require 'rubygems'
Gem::manage_gems
require 'test/mockgemui'

class TestBuilder < Test::Unit::TestCase
  def setup
    @ui = MockGemUi.new
    Gem::DefaultUserInteraction.ui = @ui
  end
  
  def test_valid_specification_builds_successfully
    spec = Gem::Specification.load(File.join(File.dirname(__FILE__), '/data/post_install.gemspec'))
    builder = Gem::Builder.new(spec)
    assert_nothing_raised {
      builder.build
    }
    assert_match(/Successfully built RubyGem\n  Name: PostMessage/, @ui.output)
  end
  
  def test_invalid_spec_does_not_build
    spec = Gem::Specification.new 
    builder = Gem::Builder.new(spec)
    assert_raises(Gem::InvalidSpecificationException) {
      builder.build
   }
  end
end


syntax highlighted by Code2HTML, v. 0.9.1