class Gem::TestCase

def util_gem(name, version, deps = nil, &block)

def util_gem(name, version, deps = nil, &block)
  # TODO: deprecate
  raise "deps or block, not both" if deps and block
  if deps then
    block = proc do |s|
      # Since Hash#each is unordered in 1.8, sort
      # the keys and iterate that way so the tests are
      # deterministic on all implementations.
      deps.keys.sort.each do |n|
        s.add_dependency n, (deps[n] || '>= 0')
      end
    end
  end
  spec = quick_gem(name, version, &block)
  util_build_gem spec
  cache_file = File.join @tempdir, 'gems', "#{spec.original_name}.gem"
  FileUtils.mkdir_p File.dirname cache_file
  FileUtils.mv spec.cache_file, cache_file
  FileUtils.rm spec.spec_file
  spec.loaded_from = nil
  [spec, cache_file]
end