Class: Cucumber::Query
- Inherits:
-
Object
- Object
- Cucumber::Query
- Includes:
- Messages::Helpers::TestStepResultComparator, Messages::Helpers::TimeConversion
- Defined in:
- lib/cucumber/query.rb
Overview
Provides lookup methods for related Cucumber messages stored in the Repository class.
Instance Method Summary collapse
- #count_test_cases_started ⇒ Integer
- #find_all_pickle_steps ⇒ Array<PickleStep>
- #find_all_pickles ⇒ Array<Pickle>
- #find_all_step_definitions ⇒ Array<StepDefinition>
-
#find_all_test_case_finished ⇒ Array<TestCaseFinished>
This finds all test cases that have finished AND will not be retried.
-
#find_all_test_case_started ⇒ Array<TestCaseStarted>
This finds all test cases from the following conditions (UNION) -> Test cases that have started, but not yet finished -> Test cases that have started, finished, but that will NOT be retried.
- #find_all_test_cases ⇒ Array<TestCase>
- #find_all_test_run_hook_finished ⇒ Array<TestRunHookFinished>
- #find_all_test_run_hook_started ⇒ Array<TestRunHookStarted>
- #find_all_test_step_finished ⇒ Array<TestStepFinished>
- #find_all_test_step_started ⇒ Array<TestStepStarted>
- #find_all_test_steps ⇒ Array<TestStep>
- #find_all_undefined_parameter_types ⇒ Array<UndefinedParameterType>
- #find_hook_by(message) ⇒ Array<Hook>?
- #find_meta ⇒ Meta
- #find_most_severe_test_step_result_by(message) ⇒ TestStepResult?
- #find_pickle_by(message) ⇒ Pickle
- #find_pickle_step_by(message) ⇒ PickleStep
- #find_step_by(message) ⇒ Step
- #find_step_definitions_by(message) ⇒ Array<StepDefinition>
- #find_suggestions_by(message) ⇒ Array<Suggestion>
- #find_test_case_by(message) ⇒ TestCase
- #find_test_case_finished_by(message) ⇒ TestCaseFinished
- #find_test_case_started_by(message) ⇒ TestCaseStarted
- #find_test_run_duration ⇒ Hash<String, Integer>?
- #find_test_run_finished ⇒ TestRunFinished
- #find_test_run_hook_finished_by(message) ⇒ TestRunHookFinished
- #find_test_run_hook_started_by(message) ⇒ TestRunHookStarted
- #find_test_run_started ⇒ TestRunStarted
- #find_test_step_by(message) ⇒ TestStep
- #find_test_steps_finished_by(message) ⇒ Array<TestStep>
- #find_test_steps_started_by(message) ⇒ Array<TestStep>
-
#initialize(repository) ⇒ Query
constructor
A new instance of Query.
Constructor Details
#initialize(repository) ⇒ Query
Returns a new instance of Query.
21 22 23 |
# File 'lib/cucumber/query.rb', line 21 def initialize(repository) @repository = repository end |
Instance Method Details
#count_test_cases_started ⇒ Integer
26 27 28 |
# File 'lib/cucumber/query.rb', line 26 def count_test_cases_started find_all_test_case_started.length end |
#find_all_pickle_steps ⇒ Array<PickleStep>
36 37 38 |
# File 'lib/cucumber/query.rb', line 36 def find_all_pickle_steps repository.pickle_step_by_id.values end |
#find_all_pickles ⇒ Array<Pickle>
31 32 33 |
# File 'lib/cucumber/query.rb', line 31 def find_all_pickles repository.pickle_by_id.values end |
#find_all_step_definitions ⇒ Array<StepDefinition>
41 42 43 |
# File 'lib/cucumber/query.rb', line 41 def find_all_step_definitions repository.step_definition_by_id.values end |
#find_all_test_case_finished ⇒ Array<TestCaseFinished>
This finds all test cases that have finished AND will not be retried
58 59 60 |
# File 'lib/cucumber/query.rb', line 58 def find_all_test_case_finished repository.test_case_finished_by_test_case_started_id.values.reject(&:will_be_retried) end |
#find_all_test_case_started ⇒ Array<TestCaseStarted>
This finds all test cases from the following conditions (UNION) -> Test cases that have started, but not yet finished -> Test cases that have started, finished, but that will NOT be retried
49 50 51 52 53 54 |
# File 'lib/cucumber/query.rb', line 49 def find_all_test_case_started repository.test_case_started_by_id.values.select do |test_case_started| test_case_finished = find_test_case_finished_by(test_case_started) test_case_finished.nil? || !test_case_finished.will_be_retried end end |
#find_all_test_cases ⇒ Array<TestCase>
63 64 65 |
# File 'lib/cucumber/query.rb', line 63 def find_all_test_cases repository.test_case_by_id.values end |
#find_all_test_run_hook_finished ⇒ Array<TestRunHookFinished>
73 74 75 |
# File 'lib/cucumber/query.rb', line 73 def find_all_test_run_hook_finished repository.test_run_hook_finished_by_test_run_hook_started_id.values end |
#find_all_test_run_hook_started ⇒ Array<TestRunHookStarted>
68 69 70 |
# File 'lib/cucumber/query.rb', line 68 def find_all_test_run_hook_started repository.test_run_hook_started_by_id.values end |
#find_all_test_step_finished ⇒ Array<TestStepFinished>
83 84 85 |
# File 'lib/cucumber/query.rb', line 83 def find_all_test_step_finished repository.test_steps_finished_by_test_case_started_id.values.flatten end |
#find_all_test_step_started ⇒ Array<TestStepStarted>
78 79 80 |
# File 'lib/cucumber/query.rb', line 78 def find_all_test_step_started repository.test_steps_started_by_test_case_started_id.values.flatten end |
#find_all_test_steps ⇒ Array<TestStep>
88 89 90 |
# File 'lib/cucumber/query.rb', line 88 def find_all_test_steps repository.test_step_by_id.values end |
#find_all_undefined_parameter_types ⇒ Array<UndefinedParameterType>
93 94 95 |
# File 'lib/cucumber/query.rb', line 93 def find_all_undefined_parameter_types repository.undefined_parameter_types end |
#find_hook_by(message) ⇒ Array<Hook>?
99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/cucumber/query.rb', line 99 def find_hook_by() ( , [Cucumber::Messages::TestStep, Cucumber::Messages::TestRunHookStarted, Cucumber::Messages::TestRunHookFinished], '#find_hook_by' ) if .is_a?(Cucumber::Messages::TestRunHookFinished) = find_test_run_hook_started_by() && find_hook_by() else repository.hook_by_id[.hook_id] end end |
#find_meta ⇒ Meta
115 116 117 |
# File 'lib/cucumber/query.rb', line 115 def repository. end |
#find_most_severe_test_step_result_by(message) ⇒ TestStepResult?
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/cucumber/query.rb', line 121 def find_most_severe_test_step_result_by() ( , [Cucumber::Messages::TestCaseStarted, Cucumber::Messages::TestCaseFinished], '#find_most_severe_test_step_result_by' ) if .is_a?(Cucumber::Messages::TestCaseStarted) find_test_steps_finished_by() .map(&:test_step_result) .max_by { |test_step_result| test_step_result_rankings[test_step_result.status] } else = find_test_case_started_by() && find_most_severe_test_step_result_by() end end |
#find_pickle_by(message) ⇒ Pickle
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/cucumber/query.rb', line 140 def find_pickle_by() ( , [ Cucumber::Messages::TestCase, Cucumber::Messages::TestCaseStarted, Cucumber::Messages::TestCaseFinished, Cucumber::Messages::TestStepStarted, Cucumber::Messages::TestStepFinished ], '#find_pickle_by' ) = .is_a?(Cucumber::Messages::TestCase) ? : find_test_case_by() repository.pickle_by_id[.pickle_id] end |
#find_pickle_step_by(message) ⇒ PickleStep
159 160 161 162 163 164 165 166 167 |
# File 'lib/cucumber/query.rb', line 159 def find_pickle_step_by() ( , [Cucumber::Messages::TestStep], '#find_pickle_step_by' ) repository.pickle_step_by_id[.pickle_step_id] end |
#find_step_by(message) ⇒ Step
171 172 173 174 175 176 177 178 179 |
# File 'lib/cucumber/query.rb', line 171 def find_step_by() ( , [Cucumber::Messages::PickleStep], '#find_step_by' ) repository.step_by_id[.ast_node_ids.first] end |
#find_step_definitions_by(message) ⇒ Array<StepDefinition>
183 184 185 186 187 188 189 190 191 192 |
# File 'lib/cucumber/query.rb', line 183 def find_step_definitions_by() ( , [Cucumber::Messages::TestStep], '#find_step_definitions_by' ) ids = .step_definition_ids.nil? ? [] : .step_definition_ids ids.filter_map { |id| repository.step_definition_by_id[id] } end |
#find_suggestions_by(message) ⇒ Array<Suggestion>
196 197 198 199 200 201 202 203 204 205 206 207 208 |
# File 'lib/cucumber/query.rb', line 196 def find_suggestions_by() ( , [Cucumber::Messages::Pickle, Cucumber::Messages::PickleStep], '#find_suggestions_by' ) if .is_a?(Cucumber::Messages::PickleStep) repository.suggestions_by_pickle_step_id[.id] else .steps.flat_map { |pickle_step| find_suggestions_by(pickle_step) } end end |
#find_test_case_by(message) ⇒ TestCase
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/cucumber/query.rb', line 212 def find_test_case_by() ( , [ Cucumber::Messages::TestCaseStarted, Cucumber::Messages::TestCaseFinished, Cucumber::Messages::TestStepStarted, Cucumber::Messages::TestStepFinished ], '#find_test_case_by' ) = .is_a?(Cucumber::Messages::TestCaseStarted) ? : find_test_case_started_by() repository.test_case_by_id[.test_case_id] end |
#find_test_case_finished_by(message) ⇒ TestCaseFinished
242 243 244 245 246 247 248 249 250 |
# File 'lib/cucumber/query.rb', line 242 def find_test_case_finished_by() ( , [Cucumber::Messages::TestCaseStarted], '#find_test_case_finished_by' ) repository.test_case_finished_by_test_case_started_id[.id] end |
#find_test_case_started_by(message) ⇒ TestCaseStarted
230 231 232 233 234 235 236 237 238 |
# File 'lib/cucumber/query.rb', line 230 def find_test_case_started_by() ( , [Cucumber::Messages::TestCaseFinished, Cucumber::Messages::TestStepStarted, Cucumber::Messages::TestStepFinished], '#find_test_case_started_by' ) repository.test_case_started_by_id[.test_case_started_id] end |
#find_test_run_duration ⇒ Hash<String, Integer>?
253 254 255 256 257 258 259 260 |
# File 'lib/cucumber/query.rb', line 253 def find_test_run_duration if repository.test_run_started.nil? || repository.test_run_finished.nil? nil else float_time = (repository.test_run_finished.) - (repository.test_run_started.) seconds_to_duration(float_time) end end |
#find_test_run_finished ⇒ TestRunFinished
292 293 294 |
# File 'lib/cucumber/query.rb', line 292 def find_test_run_finished repository.test_run_finished end |
#find_test_run_hook_finished_by(message) ⇒ TestRunHookFinished
276 277 278 279 280 281 282 283 284 |
# File 'lib/cucumber/query.rb', line 276 def find_test_run_hook_finished_by() ( , [Cucumber::Messages::TestRunHookStarted], '#find_test_run_hook_finished_by' ) repository.test_run_hook_finished_by_test_run_hook_started_id[.id] end |
#find_test_run_hook_started_by(message) ⇒ TestRunHookStarted
264 265 266 267 268 269 270 271 272 |
# File 'lib/cucumber/query.rb', line 264 def find_test_run_hook_started_by() ( , [Cucumber::Messages::TestRunHookFinished], '#find_test_run_hook_started_by' ) repository.test_run_hook_started_by_id[.test_run_hook_started_id] end |
#find_test_run_started ⇒ TestRunStarted
287 288 289 |
# File 'lib/cucumber/query.rb', line 287 def find_test_run_started repository.test_run_started end |
#find_test_step_by(message) ⇒ TestStep
298 299 300 301 302 303 304 305 306 |
# File 'lib/cucumber/query.rb', line 298 def find_test_step_by() ( , [Cucumber::Messages::TestStepStarted, Cucumber::Messages::TestStepFinished], '#find_test_step_by' ) repository.test_step_by_id[.test_step_id] end |
#find_test_steps_finished_by(message) ⇒ Array<TestStep>
323 324 325 326 327 328 329 330 331 332 333 334 335 336 |
# File 'lib/cucumber/query.rb', line 323 def find_test_steps_finished_by() ( , [Cucumber::Messages::TestCaseStarted, Cucumber::Messages::TestCaseFinished], '#find_test_steps_finished_by' ) if .is_a?(Cucumber::Messages::TestCaseStarted) repository.test_steps_finished_by_test_case_started_id.fetch(.id, []) else = find_test_case_started_by() .nil? ? [] : find_test_steps_finished_by() end end |
#find_test_steps_started_by(message) ⇒ Array<TestStep>
310 311 312 313 314 315 316 317 318 319 |
# File 'lib/cucumber/query.rb', line 310 def find_test_steps_started_by() ( , [Cucumber::Messages::TestCaseStarted, Cucumber::Messages::TestCaseFinished], '#find_test_steps_started_by' ) key = .is_a?(Cucumber::Messages::TestCaseStarted) ? .id : .test_case_started_id repository.test_steps_started_by_test_case_started_id.fetch(key, []) end |