aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/gem_dependency_test.rb
blob: b5946aa7b834b7dcb62eaa3264371b1ab8f64072 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
require 'plugin_test_helper'

class Rails::GemDependency
  public :install_command, :unpack_command
end

uses_mocha "Plugin Tests" do
  class GemDependencyTest < Test::Unit::TestCase
    def setup
      @gem              = Rails::GemDependency.new "hpricot"
      @gem_with_source  = Rails::GemDependency.new "hpricot", :source => "http://code.whytheluckystiff.net"
      @gem_with_version = Rails::GemDependency.new "hpricot", :version => "= 0.6"
      @gem_with_lib     = Rails::GemDependency.new "aws-s3", :lib => "aws/s3"
    end

    def test_configuration_adds_gem_dependency
      config = Rails::Configuration.new
      config.gem "aws-s3", :lib => "aws/s3", :version => "0.4.0"
      assert_equal [["install", "aws-s3", "--version", '"= 0.4.0"']], config.gems.collect(&:install_command)
    end

    def test_gem_creates_install_command
      assert_equal %w(install hpricot), @gem.install_command
    end

    def test_gem_with_source_creates_install_command
      assert_equal %w(install hpricot --source http://code.whytheluckystiff.net), @gem_with_source.install_command
    end

    def test_gem_with_version_creates_install_command
      assert_equal ["install", "hpricot", "--version", '"= 0.6"'], @gem_with_version.install_command
    end

    def test_gem_creates_unpack_command
      assert_equal %w(unpack hpricot), @gem.unpack_command
    end

    def test_gem_with_version_unpack_install_command
      assert_equal ["unpack", "hpricot", "--version", '"= 0.6"'], @gem_with_version.unpack_command
    end

    def test_gem_adds_load_paths
      @gem.expects(:gem).with(@gem.name)
      @gem.add_load_paths
    end

    def test_gem_with_version_adds_load_paths
      @gem_with_version.expects(:gem).with(@gem_with_version.name, @gem_with_version.requirement.to_s)
      @gem_with_version.add_load_paths
    end

    def test_gem_loading
      @gem.expects(:gem).with(@gem.name)
      @gem.expects(:require).with(@gem.name)
      @gem.add_load_paths
      @gem.load
    end

    def test_gem_with_lib_loading
      @gem_with_lib.expects(:gem).with(@gem_with_lib.name)
      @gem_with_lib.expects(:require).with(@gem_with_lib.lib)
      @gem_with_lib.add_load_paths
      @gem_with_lib.load
    end
  end
end