@@ -7,6 +7,10 @@ def setup
77 @test_result_file = OpenscapParser ::TestResultFile . new (
88 file_fixture ( 'xccdf_report.xml' ) . read
99 )
10+
11+ @arf_result_file = OpenscapParser ::TestResultFile . new (
12+ file_fixture ( 'arf_report_cs2.xml' ) . read
13+ )
1014 end
1115
1216 context 'benchmark' do
@@ -93,6 +97,43 @@ def setup
9397 end
9498
9599 context 'rules' do
100+ test 'should parse rules for xccdf report' do
101+ parse_rules @test_result_file
102+ end
103+
104+ test 'should parse rules for arf report' do
105+ parse_rules @arf_result_file
106+ end
107+ end
108+
109+ context 'set values' do
110+ test 'should parse set values for xccdf report' do
111+ parse_set_values @test_result_file
112+ end
113+
114+ test 'should parse set values for arf report' do
115+ parse_set_values @arf_result_file
116+ end
96117 end
97118 end
119+
120+ def parse_set_values ( result_file )
121+ set_values = result_file . test_result . set_values . map ( &:to_h )
122+ idrefs = set_values . map { |val | val [ :id ] }
123+ texts = set_values . map { | val | val [ :text ] }
124+ refute_empty set_values
125+ assert_equal idrefs , idrefs . compact
126+ assert_equal texts , texts . compact
127+ end
128+
129+ def parse_rules ( result_file )
130+ rules = result_file . benchmark . rules . map ( &:to_h )
131+ ids = rules . map { |rule | rule [ :id ] }
132+ titles = rules . map { |rule | rule [ :title ] }
133+ selected = rules . map { |rule | rule [ :selected ] }
134+ refute_empty rules
135+ assert_equal ids , ids . compact
136+ assert_equal titles , titles . compact
137+ assert_equal selected , selected . compact
138+ end
98139end
0 commit comments