| 
									
										
										
										
											2013-04-02 15:33:34 -05:00
										 |  |  | require 'testing_env' | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:35 -05:00
										 |  |  | require 'requirements/language_module_dependency' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 20:32:51 -05:00
										 |  |  | class LanguageModuleDependencyTests < Homebrew::TestCase | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:34 -05:00
										 |  |  |   def assert_deps_fail(spec) | 
					
						
							| 
									
										
										
										
											2014-06-11 12:21:03 -05:00
										 |  |  |     refute_predicate LanguageModuleDependency.new(*spec.shift.reverse), :satisfied? | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:34 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def assert_deps_pass(spec) | 
					
						
							| 
									
										
										
										
											2014-06-11 12:21:03 -05:00
										 |  |  |     assert_predicate LanguageModuleDependency.new(*spec.shift.reverse), :satisfied? | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:34 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_unique_deps_are_not_eql | 
					
						
							|  |  |  |     x = LanguageModuleDependency.new(:node, "less") | 
					
						
							|  |  |  |     y = LanguageModuleDependency.new(:node, "coffee-script") | 
					
						
							| 
									
										
										
										
											2014-06-10 22:43:47 -05:00
										 |  |  |     refute_equal x.hash, y.hash | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:34 -05:00
										 |  |  |     assert !x.eql?(y) | 
					
						
							|  |  |  |     assert !y.eql?(x) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-02 15:41:51 -05:00
										 |  |  |   def test_differing_module_and_import_name | 
					
						
							|  |  |  |     mod_name = "foo" | 
					
						
							|  |  |  |     import_name = "bar" | 
					
						
							|  |  |  |     l = LanguageModuleDependency.new(:python, mod_name, import_name) | 
					
						
							| 
									
										
										
										
											2014-06-11 13:03:06 -05:00
										 |  |  |     assert_includes l.message, mod_name | 
					
						
							| 
									
										
										
										
											2013-04-02 15:41:51 -05:00
										 |  |  |     assert l.the_test.one? { |c| c.include?(import_name) } | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-02 15:33:34 -05:00
										 |  |  |   def test_bad_perl_deps | 
					
						
							|  |  |  |     assert_deps_fail "notapackage" => :perl | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_good_perl_deps | 
					
						
							|  |  |  |     assert_deps_pass "ENV" => :perl | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_bad_python_deps | 
					
						
							|  |  |  |     assert_deps_fail "notapackage" => :python | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_good_python_deps | 
					
						
							|  |  |  |     assert_deps_pass "datetime" => :python | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_bad_ruby_deps | 
					
						
							|  |  |  |     assert_deps_fail "notapackage" => :ruby | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_good_ruby_deps | 
					
						
							|  |  |  |     assert_deps_pass "date" => :ruby | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if which("rbx") | 
					
						
							|  |  |  |     def test_bad_rubinius_deps | 
					
						
							|  |  |  |       assert_deps_fail "notapackage" => :rbx | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_good_rubinius_deps | 
					
						
							|  |  |  |       assert_deps_pass "date" => :rbx | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if which("csc") | 
					
						
							|  |  |  |     def test_bad_chicken_deps | 
					
						
							|  |  |  |       assert_deps_fail "notapackage" => :chicken | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_good_chicken_deps | 
					
						
							|  |  |  |       assert_deps_pass "extras" => :chicken | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if which("node") | 
					
						
							|  |  |  |     def test_bad_node_deps | 
					
						
							|  |  |  |       assert_deps_fail "notapackage" => :node | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_good_node_deps | 
					
						
							|  |  |  |       assert_deps_pass "util" => :node | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |