test/clojurescript_engine_test.rb in clementine-0.0.1 vs test/clojurescript_engine_test.rb in clementine-0.0.2

- old
+ new

@@ -1,9 +1,17 @@ require "test/unit" class ClojureScriptEngineTest < Test::Unit::TestCase + def self.jruby? + defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby" + end + + def jruby? + self.class.jruby? + end + # Called before every test method runs. Can be used # to set up fixture information. def setup require "#{File.join(File.dirname(__FILE__), "..", "lib", "clementine")}" require "#{File.join(File.dirname(__FILE__), "..", "lib", "clementine", "clojurescript_engine")}" @@ -21,26 +29,40 @@ engine = Clementine::ClojureScriptEngine.new("", "") assert_equal expect, engine.default_opts end def test_convert_options - options = {:optimizations => :advanced, :output_dir => "#{Dir.pwd}"} + options = {:optimizations => :advanced, :output_dir => "#{Dir.pwd}", :pretty_print => true} engine = Clementine::ClojureScriptEngine.new("", "") opts = engine.convert_options(options) - opts.each do |k, v| - assert_equal Java::clojure.lang.Keyword, k.class - assert k.to_s == ":optimizations" || k.to_s == ":output-dir" - assert v.to_s == ":advanced" || v.to_s == "#{Dir.pwd}" + + if jruby? + assert_equal 3, opts.length + opts.keys.each {|k| assert_equal Java::clojure.lang.Keyword, k.class } + assert_equal [":optimizations", ":output-dir", ":pretty-print"], opts.keys.map(&:to_s).sort + + opts.each do |k, v| + case k.to_s + when ":optimizations" then assert_equal ":advanced", v.to_s + when ":output-dir" then assert_equal "#{Dir.pwd}", v.to_s + when ":pretty-print" then assert_equal "true", v.to_s + end + end + else + assert_equal %Q{{:optimizations :advanced :output-dir \"/home/mike/code/oss/clementine\" :pretty-print true}}, opts end end - def test_created_clojure_map - options = {:optimizations => :advanced, :output_dir => "#{Dir.pwd}"} - engine = Clementine::ClojureScriptEngine.new("", "") - opts = engine.convert_options(options) - map = PersistentHashMap.create(convert_options(opts)) - map.each do |k, v| - assert_equal Java::clojure.lang.Keyword, k.class - assert k.to_s == ":optimizations" || k.to_s == ":output-dir" + if jruby? + def test_created_clojure_map + options = {:optimizations => :advanced, :output_dir => "#{Dir.pwd}", :pretty_print => true} + engine = Clementine::ClojureScriptEngine.new("", "") + opts = engine.convert_options(options) + map = PersistentHashMap.create(opts) + assert_equal 3, map.length + map.each do |k, v| + assert_equal Java::clojure.lang.Keyword, k.class + assert [":optimizations", ":output-dir", ":pretty-print"].include? k.to_s + end end end -end \ No newline at end of file +end