aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/java_requirement_test.rb
blob: d0b51f92cfe72357bb500af330b88119eee9b826 (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
require "testing_env"
require "requirements/java_requirement"

class JavaRequirementTests < Homebrew::TestCase
  def setup
    super
    ENV["JAVA_HOME"] = nil
  end

  def test_message
    a = JavaRequirement.new([])
    assert_match(/Java is required to install this formula./, a.message)
  end

  def test_inspect
    a = JavaRequirement.new(%w[1.7+])
    assert_equal a.inspect, '#<JavaRequirement: "java" [] version="1.7+">'
  end

  def test_display_s
    x = JavaRequirement.new([])
    assert_equal x.display_s, "java"
    y = JavaRequirement.new(%w[1.8])
    assert_equal y.display_s, "java = 1.8"
    z = JavaRequirement.new(%w[1.8+])
    assert_equal z.display_s, "java >= 1.8"
  end

  def test_satisfied?
    a = JavaRequirement.new(%w[1.8])
    File.stubs(:executable?).returns(false)
    refute_predicate a, :satisfied?

    b = JavaRequirement.new([])
    b.stubs(:preferred_java).returns(Pathname.new("/usr/bin/java"))
    assert_predicate b, :satisfied?

    c = JavaRequirement.new(%w[1.7+])
    c.stubs(:possible_javas).returns([Pathname.new("/usr/bin/java")])
    Utils.stubs(:popen_read).returns('java version "1.6.0_5"')
    refute_predicate c, :satisfied?
    Utils.stubs(:popen_read).returns('java version "1.8.0_5"')
    assert_predicate c, :satisfied?

    d = JavaRequirement.new(%w[1.7])
    d.stubs(:possible_javas).returns([Pathname.new("/usr/bin/java")])
    Utils.stubs(:popen_read).returns('java version "1.8.0_5"')
    refute_predicate d, :satisfied?
  end
end