Module: Atom::Test

Defined in:
lib/atom/test.rb

Constant Summary collapse

@@tests_directory =
File.dirname(__FILE__) + '/../../tests'

Class Method Summary collapse

Class Method Details

.create_test_for!(what) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/atom/test.rb', line 7

def self.create_test_for!(what)
  test_case = Class.new(::Test::Unit::TestCase)

  self.collect_test_files_for(what).each do |test_file|
    test_case.class_eval do
      method_name = "test_#{File.basename(test_file).sub('.rb','')}"

      define_method(method_name) do
        test_file_content = File.read(test_file)
        test_data, assertion = eval("#{test_file_content};[xml, test]")

        element =
          if Atom::Feed.respond_to?(:parse)
            Atom::Feed.parse(test_data)
          else
            Atom::Feed.new(test_data)
          end

        assertion.call(element)
      end
    end
  end
end