aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/test_dependency.rb
blob: 6f9038eaec93d4b1df90f573ca22ac37bae88dbd (plain)
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
require 'testing_env'
require 'dependency'

class DependableTests < Homebrew::TestCase
  def setup
    @tags = ["foo", "bar", :build]
    @dep = Struct.new(:tags).new(@tags).extend(Dependable)
  end

  def test_options
    assert_equal %w{--foo --bar}.sort, @dep.options.as_flags.sort
  end

  def test_interrogation
    assert_predicate @dep, :build?
    refute_predicate @dep, :optional?
    refute_predicate @dep, :recommended?
  end
end

class DependencyTests < Homebrew::TestCase
  def test_accepts_single_tag
    dep = Dependency.new("foo", %w{bar})
    assert_equal %w{bar}, dep.tags
  end

  def test_accepts_multiple_tags
    dep = Dependency.new("foo", %w{bar baz})
    assert_equal %w{bar baz}.sort, dep.tags.sort
  end

  def test_preserves_symbol_tags
    dep = Dependency.new("foo", [:build])
    assert_equal [:build], dep.tags
  end

  def test_accepts_symbol_and_string_tags
    dep = Dependency.new("foo", [:build, "bar"])
    assert_equal [:build, "bar"], dep.tags
  end

  def test_equality
    foo1 = Dependency.new("foo")
    foo2 = Dependency.new("foo")
    bar = Dependency.new("bar")
    assert_equal foo1, foo2
    assert_eql foo1, foo2
    refute_equal foo1, bar
    refute_eql foo1, bar
    foo3 = Dependency.new("foo", [:build])
    refute_equal foo1, foo3
    refute_eql foo1, foo3
  end
end