aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2013-01-13 20:05:09 -0600
committerJack Nagel2013-01-13 21:01:15 -0600
commitfe4f39dcee409c8b9b164f20d86024ae02a792b2 (patch)
tree38e57a5cf2915f6b991450e07be506e0e495ea39 /Library
parente629f14d56b803ffbc7f3470175f2b021a8816eb (diff)
downloadbrew-fe4f39dcee409c8b9b164f20d86024ae02a792b2.tar.bz2
Split up dependency test coverage
The DependencyCollector tests are really integration tests, while the rest are closer to real unit tests. Split them up so that the tests can be run in isolation on a per-class basis.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/test_dependencies.rb83
-rw-r--r--Library/Homebrew/test/test_dependency.rb51
-rw-r--r--Library/Homebrew/test/test_dependency_collector.rb (renamed from Library/Homebrew/test/test_requirements.rb)44
-rw-r--r--Library/Homebrew/test/test_requirement.rb28
4 files changed, 109 insertions, 97 deletions
diff --git a/Library/Homebrew/test/test_dependencies.rb b/Library/Homebrew/test/test_dependencies.rb
index 68c4043cb..acf613b3d 100644
--- a/Library/Homebrew/test/test_dependencies.rb
+++ b/Library/Homebrew/test/test_dependencies.rb
@@ -1,40 +1,6 @@
require 'testing_env'
-require 'test/testball'
require 'dependencies'
-module DependencyCollectorTestExtension
- def find_dependency(name)
- deps.find { |dep| dep.name == name }
- end
-end
-
-class DependencyCollectorTests < Test::Unit::TestCase
- def setup
- @d = DependencyCollector.new.extend(DependencyCollectorTestExtension)
- end
-
- def test_dependency_creation
- @d.add 'foo' => :build
- @d.add 'bar' => ['--universal', :optional]
- assert_not_nil @d.find_dependency('foo')
- assert_equal 2, @d.find_dependency('bar').tags.length
- end
-
- def test_dependency_tags
- assert Dependency.new('foo', :build).build?
- assert Dependency.new('foo', [:build, :optional]).optional?
- assert Dependency.new('foo', [:universal]).options.include? '--universal'
- assert_empty Dependency.new('foo').tags
- end
-
- def test_no_duplicate_dependencies
- @d.add 'foo'
- @d.add 'foo' => :build
- assert_equal 1, @d.deps.count
- assert_empty @d.find_dependency('foo').tags
- end
-end
-
class DependenciesTests < Test::Unit::TestCase
def setup
@deps = Dependencies.new
@@ -71,52 +37,3 @@ class DependenciesTests < Test::Unit::TestCase
assert_instance_of Array, @deps.to_ary
end
end
-
-class DependableTests < Test::Unit::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.sort
- end
-
- def test_interrogation
- assert @dep.build?
- assert !@dep.optional?
- assert !@dep.recommended?
- end
-end
-
-class DependencyTests < Test::Unit::TestCase
- def test_accepts_single_tag
- dep = Dependency.new("foo", "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 foo1.eql?(foo2)
- assert_not_equal foo1, bar
- assert !foo1.eql?(bar)
- end
-end
diff --git a/Library/Homebrew/test/test_dependency.rb b/Library/Homebrew/test/test_dependency.rb
new file mode 100644
index 000000000..a043c1bd5
--- /dev/null
+++ b/Library/Homebrew/test/test_dependency.rb
@@ -0,0 +1,51 @@
+require 'testing_env'
+require 'dependencies'
+
+class DependableTests < Test::Unit::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.sort
+ end
+
+ def test_interrogation
+ assert @dep.build?
+ assert !@dep.optional?
+ assert !@dep.recommended?
+ end
+end
+
+class DependencyTests < Test::Unit::TestCase
+ def test_accepts_single_tag
+ dep = Dependency.new("foo", "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 foo1.eql?(foo2)
+ assert_not_equal foo1, bar
+ assert !foo1.eql?(bar)
+ end
+end
diff --git a/Library/Homebrew/test/test_requirements.rb b/Library/Homebrew/test/test_dependency_collector.rb
index c8a8e1ba8..ded49f91f 100644
--- a/Library/Homebrew/test/test_requirements.rb
+++ b/Library/Homebrew/test/test_dependency_collector.rb
@@ -1,18 +1,41 @@
require 'testing_env'
-require 'test/testball'
require 'dependencies'
+require 'extend/set'
+
+module DependencyCollectorTestExtension
+ def find_dependency(name)
+ deps.find { |dep| dep.name == name }
+ end
-class DependencyCollector
def find_requirement(klass)
- requirements.find do |req|
- klass === req
- end
+ requirements.find { |req| klass === req }
end
end
-class RequirementTests < Test::Unit::TestCase
+class DependencyCollectorTests < Test::Unit::TestCase
def setup
- @d = DependencyCollector.new
+ @d = DependencyCollector.new.extend(DependencyCollectorTestExtension)
+ end
+
+ def test_dependency_creation
+ @d.add 'foo' => :build
+ @d.add 'bar' => ['--universal', :optional]
+ assert_not_nil @d.find_dependency('foo')
+ assert_equal 2, @d.find_dependency('bar').tags.length
+ end
+
+ def test_dependency_tags
+ assert Dependency.new('foo', :build).build?
+ assert Dependency.new('foo', [:build, :optional]).optional?
+ assert Dependency.new('foo', [:universal]).options.include? '--universal'
+ assert_empty Dependency.new('foo').tags
+ end
+
+ def test_no_duplicate_dependencies
+ @d.add 'foo'
+ @d.add 'foo' => :build
+ assert_equal 1, @d.deps.count
+ assert_empty @d.find_dependency('foo').tags
end
def test_requirement_creation
@@ -20,17 +43,10 @@ class RequirementTests < Test::Unit::TestCase
assert_not_nil @d.find_requirement(X11Dependency)
end
-
def test_no_duplicate_requirements
2.times { @d.add :x11 }
assert_equal 1, @d.requirements.length
end
-end
-
-class RequirementTagTests < Test::Unit::TestCase
- def setup
- @d = DependencyCollector.new
- end
def test_requirement_tags
@d.add :x11 => '2.5.1'
diff --git a/Library/Homebrew/test/test_requirement.rb b/Library/Homebrew/test/test_requirement.rb
new file mode 100644
index 000000000..fabada066
--- /dev/null
+++ b/Library/Homebrew/test/test_requirement.rb
@@ -0,0 +1,28 @@
+require 'testing_env'
+require 'dependencies'
+
+class RequirementTests < Test::Unit::TestCase
+ def test_accepts_single_tag
+ dep = Requirement.new("bar")
+ assert_equal %w{bar}, dep.tags
+ end
+
+ def test_accepts_multiple_tags
+ dep = Requirement.new(%w{bar baz})
+ assert_equal %w{bar baz}.sort, dep.tags.sort
+ dep = Requirement.new(*%w{bar baz})
+ assert_equal %w{bar baz}.sort, dep.tags.sort
+ end
+
+ def test_preserves_symbol_tags
+ dep = Requirement.new(:build)
+ assert_equal [:build], dep.tags
+ end
+
+ def test_accepts_symbol_and_string_tags
+ dep = Requirement.new([:build, "bar"])
+ assert_equal [:build, "bar"], dep.tags
+ dep = Requirement.new(:build, "bar")
+ assert_equal [:build, "bar"], dep.tags
+ end
+end