Class: Rng::TestSuiteParser

Inherits:
Object
  • Object
show all
Defined in:
lib/rng/test_suite_parser.rb

Overview

Parses RELAX NG test suite XML files (like compacttest.xml)

Defined Under Namespace

Classes: TestCase

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xml_content) ⇒ TestSuiteParser

Returns a new instance of TestSuiteParser.



55
56
57
58
59
# File 'lib/rng/test_suite_parser.rb', line 55

def initialize(xml_content)
  @doc = Nokogiri::XML(xml_content)
  @test_cases = []
  parse_test_cases
end

Instance Attribute Details

#test_casesObject (readonly)

Returns the value of attribute test_cases.



53
54
55
# File 'lib/rng/test_suite_parser.rb', line 53

def test_cases
  @test_cases
end

Class Method Details

.load(file_path) ⇒ Object

Load test suite from file path



62
63
64
65
# File 'lib/rng/test_suite_parser.rb', line 62

def self.load(file_path)
  content = File.read(file_path)
  new(content)
end

Instance Method Details

#invalid_rnc_casesObject

Get test cases with invalid RNC that should fail



73
74
75
# File 'lib/rng/test_suite_parser.rb', line 73

def invalid_rnc_cases
  test_cases.select(&:invalid_rnc?)
end

#resource_casesObject

Get test cases with resources (external files)



83
84
85
# File 'lib/rng/test_suite_parser.rb', line 83

def resource_cases
  test_cases.select(&:has_resources?)
end

#roundtrip_casesObject

Get test cases with both RNC and RNG for round-trip testing



78
79
80
# File 'lib/rng/test_suite_parser.rb', line 78

def roundtrip_cases
  test_cases.select { |tc| tc.valid_rnc? && tc.valid_rng? }
end

#valid_rnc_casesObject

Get test cases with valid RNC that should parse



68
69
70
# File 'lib/rng/test_suite_parser.rb', line 68

def valid_rnc_cases
  test_cases.select(&:valid_rnc?)
end