cucumber-messages 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +3 -0
- data/VERSION +1 -0
- data/lib/cucumber/messages/id_generator.rb +24 -0
- data/lib/cucumber/messages/message/deserialization.rb +37 -0
- data/lib/cucumber/messages/message/serialization.rb +70 -0
- data/lib/cucumber/messages/message/utils.rb +45 -0
- data/lib/cucumber/messages/message.rb +11 -0
- data/lib/cucumber/messages/ndjson_to_message_enumerator.rb +21 -0
- data/lib/cucumber/messages/time_conversion.rb +33 -0
- data/lib/cucumber/messages.deserializers.rb +1208 -0
- data/lib/cucumber/messages.dtos.rb +1782 -0
- data/lib/cucumber/messages.rb +10 -0
- metadata +136 -0
@@ -0,0 +1,1208 @@
|
|
1
|
+
require 'cucumber/messages.dtos'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
# The code was auto-generated by {this script}[https://github.com/cucumber/messages/blob/main/jsonschema/scripts/codegen.rb]
|
5
|
+
#
|
6
|
+
|
7
|
+
module Cucumber
|
8
|
+
module Messages
|
9
|
+
|
10
|
+
class Attachment
|
11
|
+
|
12
|
+
##
|
13
|
+
# Returns a new Attachment from the given hash.
|
14
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
15
|
+
# corresponding snake_cased attributes.
|
16
|
+
#
|
17
|
+
# Cucumber::Messages::Attachment.from_h(some_hash) # => #<Cucumber::Messages::Attachment:0x... ...>
|
18
|
+
#
|
19
|
+
|
20
|
+
def self.from_h(hash)
|
21
|
+
return nil if hash.nil?
|
22
|
+
|
23
|
+
self.new(
|
24
|
+
body: hash[:body],
|
25
|
+
content_encoding: hash[:contentEncoding],
|
26
|
+
file_name: hash[:fileName],
|
27
|
+
media_type: hash[:mediaType],
|
28
|
+
source: Source.from_h(hash[:source]),
|
29
|
+
test_case_started_id: hash[:testCaseStartedId],
|
30
|
+
test_step_id: hash[:testStepId],
|
31
|
+
url: hash[:url],
|
32
|
+
)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class Duration
|
37
|
+
|
38
|
+
##
|
39
|
+
# Returns a new Duration from the given hash.
|
40
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
41
|
+
# corresponding snake_cased attributes.
|
42
|
+
#
|
43
|
+
# Cucumber::Messages::Duration.from_h(some_hash) # => #<Cucumber::Messages::Duration:0x... ...>
|
44
|
+
#
|
45
|
+
|
46
|
+
def self.from_h(hash)
|
47
|
+
return nil if hash.nil?
|
48
|
+
|
49
|
+
self.new(
|
50
|
+
seconds: hash[:seconds],
|
51
|
+
nanos: hash[:nanos],
|
52
|
+
)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
class Envelope
|
57
|
+
|
58
|
+
##
|
59
|
+
# Returns a new Envelope from the given hash.
|
60
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
61
|
+
# corresponding snake_cased attributes.
|
62
|
+
#
|
63
|
+
# Cucumber::Messages::Envelope.from_h(some_hash) # => #<Cucumber::Messages::Envelope:0x... ...>
|
64
|
+
#
|
65
|
+
|
66
|
+
def self.from_h(hash)
|
67
|
+
return nil if hash.nil?
|
68
|
+
|
69
|
+
self.new(
|
70
|
+
attachment: Attachment.from_h(hash[:attachment]),
|
71
|
+
gherkin_document: GherkinDocument.from_h(hash[:gherkinDocument]),
|
72
|
+
hook: Hook.from_h(hash[:hook]),
|
73
|
+
meta: Meta.from_h(hash[:meta]),
|
74
|
+
parameter_type: ParameterType.from_h(hash[:parameterType]),
|
75
|
+
parse_error: ParseError.from_h(hash[:parseError]),
|
76
|
+
pickle: Pickle.from_h(hash[:pickle]),
|
77
|
+
source: Source.from_h(hash[:source]),
|
78
|
+
step_definition: StepDefinition.from_h(hash[:stepDefinition]),
|
79
|
+
test_case: TestCase.from_h(hash[:testCase]),
|
80
|
+
test_case_finished: TestCaseFinished.from_h(hash[:testCaseFinished]),
|
81
|
+
test_case_started: TestCaseStarted.from_h(hash[:testCaseStarted]),
|
82
|
+
test_run_finished: TestRunFinished.from_h(hash[:testRunFinished]),
|
83
|
+
test_run_started: TestRunStarted.from_h(hash[:testRunStarted]),
|
84
|
+
test_step_finished: TestStepFinished.from_h(hash[:testStepFinished]),
|
85
|
+
test_step_started: TestStepStarted.from_h(hash[:testStepStarted]),
|
86
|
+
undefined_parameter_type: UndefinedParameterType.from_h(hash[:undefinedParameterType]),
|
87
|
+
)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
class Exception
|
92
|
+
|
93
|
+
##
|
94
|
+
# Returns a new Exception from the given hash.
|
95
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
96
|
+
# corresponding snake_cased attributes.
|
97
|
+
#
|
98
|
+
# Cucumber::Messages::Exception.from_h(some_hash) # => #<Cucumber::Messages::Exception:0x... ...>
|
99
|
+
#
|
100
|
+
|
101
|
+
def self.from_h(hash)
|
102
|
+
return nil if hash.nil?
|
103
|
+
|
104
|
+
self.new(
|
105
|
+
type: hash[:type],
|
106
|
+
message: hash[:message],
|
107
|
+
stack_trace: hash[:stackTrace],
|
108
|
+
)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
class GherkinDocument
|
113
|
+
|
114
|
+
##
|
115
|
+
# Returns a new GherkinDocument from the given hash.
|
116
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
117
|
+
# corresponding snake_cased attributes.
|
118
|
+
#
|
119
|
+
# Cucumber::Messages::GherkinDocument.from_h(some_hash) # => #<Cucumber::Messages::GherkinDocument:0x... ...>
|
120
|
+
#
|
121
|
+
|
122
|
+
def self.from_h(hash)
|
123
|
+
return nil if hash.nil?
|
124
|
+
|
125
|
+
self.new(
|
126
|
+
uri: hash[:uri],
|
127
|
+
feature: Feature.from_h(hash[:feature]),
|
128
|
+
comments: hash[:comments]&.map { |item| Comment.from_h(item) },
|
129
|
+
)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
class Background
|
134
|
+
|
135
|
+
##
|
136
|
+
# Returns a new Background from the given hash.
|
137
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
138
|
+
# corresponding snake_cased attributes.
|
139
|
+
#
|
140
|
+
# Cucumber::Messages::Background.from_h(some_hash) # => #<Cucumber::Messages::Background:0x... ...>
|
141
|
+
#
|
142
|
+
|
143
|
+
def self.from_h(hash)
|
144
|
+
return nil if hash.nil?
|
145
|
+
|
146
|
+
self.new(
|
147
|
+
location: Location.from_h(hash[:location]),
|
148
|
+
keyword: hash[:keyword],
|
149
|
+
name: hash[:name],
|
150
|
+
description: hash[:description],
|
151
|
+
steps: hash[:steps]&.map { |item| Step.from_h(item) },
|
152
|
+
id: hash[:id],
|
153
|
+
)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
class Comment
|
158
|
+
|
159
|
+
##
|
160
|
+
# Returns a new Comment from the given hash.
|
161
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
162
|
+
# corresponding snake_cased attributes.
|
163
|
+
#
|
164
|
+
# Cucumber::Messages::Comment.from_h(some_hash) # => #<Cucumber::Messages::Comment:0x... ...>
|
165
|
+
#
|
166
|
+
|
167
|
+
def self.from_h(hash)
|
168
|
+
return nil if hash.nil?
|
169
|
+
|
170
|
+
self.new(
|
171
|
+
location: Location.from_h(hash[:location]),
|
172
|
+
text: hash[:text],
|
173
|
+
)
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
class DataTable
|
178
|
+
|
179
|
+
##
|
180
|
+
# Returns a new DataTable from the given hash.
|
181
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
182
|
+
# corresponding snake_cased attributes.
|
183
|
+
#
|
184
|
+
# Cucumber::Messages::DataTable.from_h(some_hash) # => #<Cucumber::Messages::DataTable:0x... ...>
|
185
|
+
#
|
186
|
+
|
187
|
+
def self.from_h(hash)
|
188
|
+
return nil if hash.nil?
|
189
|
+
|
190
|
+
self.new(
|
191
|
+
location: Location.from_h(hash[:location]),
|
192
|
+
rows: hash[:rows]&.map { |item| TableRow.from_h(item) },
|
193
|
+
)
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
class DocString
|
198
|
+
|
199
|
+
##
|
200
|
+
# Returns a new DocString from the given hash.
|
201
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
202
|
+
# corresponding snake_cased attributes.
|
203
|
+
#
|
204
|
+
# Cucumber::Messages::DocString.from_h(some_hash) # => #<Cucumber::Messages::DocString:0x... ...>
|
205
|
+
#
|
206
|
+
|
207
|
+
def self.from_h(hash)
|
208
|
+
return nil if hash.nil?
|
209
|
+
|
210
|
+
self.new(
|
211
|
+
location: Location.from_h(hash[:location]),
|
212
|
+
media_type: hash[:mediaType],
|
213
|
+
content: hash[:content],
|
214
|
+
delimiter: hash[:delimiter],
|
215
|
+
)
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
class Examples
|
220
|
+
|
221
|
+
##
|
222
|
+
# Returns a new Examples from the given hash.
|
223
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
224
|
+
# corresponding snake_cased attributes.
|
225
|
+
#
|
226
|
+
# Cucumber::Messages::Examples.from_h(some_hash) # => #<Cucumber::Messages::Examples:0x... ...>
|
227
|
+
#
|
228
|
+
|
229
|
+
def self.from_h(hash)
|
230
|
+
return nil if hash.nil?
|
231
|
+
|
232
|
+
self.new(
|
233
|
+
location: Location.from_h(hash[:location]),
|
234
|
+
tags: hash[:tags]&.map { |item| Tag.from_h(item) },
|
235
|
+
keyword: hash[:keyword],
|
236
|
+
name: hash[:name],
|
237
|
+
description: hash[:description],
|
238
|
+
table_header: TableRow.from_h(hash[:tableHeader]),
|
239
|
+
table_body: hash[:tableBody]&.map { |item| TableRow.from_h(item) },
|
240
|
+
id: hash[:id],
|
241
|
+
)
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
class Feature
|
246
|
+
|
247
|
+
##
|
248
|
+
# Returns a new Feature from the given hash.
|
249
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
250
|
+
# corresponding snake_cased attributes.
|
251
|
+
#
|
252
|
+
# Cucumber::Messages::Feature.from_h(some_hash) # => #<Cucumber::Messages::Feature:0x... ...>
|
253
|
+
#
|
254
|
+
|
255
|
+
def self.from_h(hash)
|
256
|
+
return nil if hash.nil?
|
257
|
+
|
258
|
+
self.new(
|
259
|
+
location: Location.from_h(hash[:location]),
|
260
|
+
tags: hash[:tags]&.map { |item| Tag.from_h(item) },
|
261
|
+
language: hash[:language],
|
262
|
+
keyword: hash[:keyword],
|
263
|
+
name: hash[:name],
|
264
|
+
description: hash[:description],
|
265
|
+
children: hash[:children]&.map { |item| FeatureChild.from_h(item) },
|
266
|
+
)
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
class FeatureChild
|
271
|
+
|
272
|
+
##
|
273
|
+
# Returns a new FeatureChild from the given hash.
|
274
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
275
|
+
# corresponding snake_cased attributes.
|
276
|
+
#
|
277
|
+
# Cucumber::Messages::FeatureChild.from_h(some_hash) # => #<Cucumber::Messages::FeatureChild:0x... ...>
|
278
|
+
#
|
279
|
+
|
280
|
+
def self.from_h(hash)
|
281
|
+
return nil if hash.nil?
|
282
|
+
|
283
|
+
self.new(
|
284
|
+
rule: Rule.from_h(hash[:rule]),
|
285
|
+
background: Background.from_h(hash[:background]),
|
286
|
+
scenario: Scenario.from_h(hash[:scenario]),
|
287
|
+
)
|
288
|
+
end
|
289
|
+
end
|
290
|
+
|
291
|
+
class Rule
|
292
|
+
|
293
|
+
##
|
294
|
+
# Returns a new Rule from the given hash.
|
295
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
296
|
+
# corresponding snake_cased attributes.
|
297
|
+
#
|
298
|
+
# Cucumber::Messages::Rule.from_h(some_hash) # => #<Cucumber::Messages::Rule:0x... ...>
|
299
|
+
#
|
300
|
+
|
301
|
+
def self.from_h(hash)
|
302
|
+
return nil if hash.nil?
|
303
|
+
|
304
|
+
self.new(
|
305
|
+
location: Location.from_h(hash[:location]),
|
306
|
+
tags: hash[:tags]&.map { |item| Tag.from_h(item) },
|
307
|
+
keyword: hash[:keyword],
|
308
|
+
name: hash[:name],
|
309
|
+
description: hash[:description],
|
310
|
+
children: hash[:children]&.map { |item| RuleChild.from_h(item) },
|
311
|
+
id: hash[:id],
|
312
|
+
)
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
class RuleChild
|
317
|
+
|
318
|
+
##
|
319
|
+
# Returns a new RuleChild from the given hash.
|
320
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
321
|
+
# corresponding snake_cased attributes.
|
322
|
+
#
|
323
|
+
# Cucumber::Messages::RuleChild.from_h(some_hash) # => #<Cucumber::Messages::RuleChild:0x... ...>
|
324
|
+
#
|
325
|
+
|
326
|
+
def self.from_h(hash)
|
327
|
+
return nil if hash.nil?
|
328
|
+
|
329
|
+
self.new(
|
330
|
+
background: Background.from_h(hash[:background]),
|
331
|
+
scenario: Scenario.from_h(hash[:scenario]),
|
332
|
+
)
|
333
|
+
end
|
334
|
+
end
|
335
|
+
|
336
|
+
class Scenario
|
337
|
+
|
338
|
+
##
|
339
|
+
# Returns a new Scenario from the given hash.
|
340
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
341
|
+
# corresponding snake_cased attributes.
|
342
|
+
#
|
343
|
+
# Cucumber::Messages::Scenario.from_h(some_hash) # => #<Cucumber::Messages::Scenario:0x... ...>
|
344
|
+
#
|
345
|
+
|
346
|
+
def self.from_h(hash)
|
347
|
+
return nil if hash.nil?
|
348
|
+
|
349
|
+
self.new(
|
350
|
+
location: Location.from_h(hash[:location]),
|
351
|
+
tags: hash[:tags]&.map { |item| Tag.from_h(item) },
|
352
|
+
keyword: hash[:keyword],
|
353
|
+
name: hash[:name],
|
354
|
+
description: hash[:description],
|
355
|
+
steps: hash[:steps]&.map { |item| Step.from_h(item) },
|
356
|
+
examples: hash[:examples]&.map { |item| Examples.from_h(item) },
|
357
|
+
id: hash[:id],
|
358
|
+
)
|
359
|
+
end
|
360
|
+
end
|
361
|
+
|
362
|
+
class Step
|
363
|
+
|
364
|
+
##
|
365
|
+
# Returns a new Step from the given hash.
|
366
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
367
|
+
# corresponding snake_cased attributes.
|
368
|
+
#
|
369
|
+
# Cucumber::Messages::Step.from_h(some_hash) # => #<Cucumber::Messages::Step:0x... ...>
|
370
|
+
#
|
371
|
+
|
372
|
+
def self.from_h(hash)
|
373
|
+
return nil if hash.nil?
|
374
|
+
|
375
|
+
self.new(
|
376
|
+
location: Location.from_h(hash[:location]),
|
377
|
+
keyword: hash[:keyword],
|
378
|
+
keyword_type: hash[:keywordType],
|
379
|
+
text: hash[:text],
|
380
|
+
doc_string: DocString.from_h(hash[:docString]),
|
381
|
+
data_table: DataTable.from_h(hash[:dataTable]),
|
382
|
+
id: hash[:id],
|
383
|
+
)
|
384
|
+
end
|
385
|
+
end
|
386
|
+
|
387
|
+
class TableCell
|
388
|
+
|
389
|
+
##
|
390
|
+
# Returns a new TableCell from the given hash.
|
391
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
392
|
+
# corresponding snake_cased attributes.
|
393
|
+
#
|
394
|
+
# Cucumber::Messages::TableCell.from_h(some_hash) # => #<Cucumber::Messages::TableCell:0x... ...>
|
395
|
+
#
|
396
|
+
|
397
|
+
def self.from_h(hash)
|
398
|
+
return nil if hash.nil?
|
399
|
+
|
400
|
+
self.new(
|
401
|
+
location: Location.from_h(hash[:location]),
|
402
|
+
value: hash[:value],
|
403
|
+
)
|
404
|
+
end
|
405
|
+
end
|
406
|
+
|
407
|
+
class TableRow
|
408
|
+
|
409
|
+
##
|
410
|
+
# Returns a new TableRow from the given hash.
|
411
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
412
|
+
# corresponding snake_cased attributes.
|
413
|
+
#
|
414
|
+
# Cucumber::Messages::TableRow.from_h(some_hash) # => #<Cucumber::Messages::TableRow:0x... ...>
|
415
|
+
#
|
416
|
+
|
417
|
+
def self.from_h(hash)
|
418
|
+
return nil if hash.nil?
|
419
|
+
|
420
|
+
self.new(
|
421
|
+
location: Location.from_h(hash[:location]),
|
422
|
+
cells: hash[:cells]&.map { |item| TableCell.from_h(item) },
|
423
|
+
id: hash[:id],
|
424
|
+
)
|
425
|
+
end
|
426
|
+
end
|
427
|
+
|
428
|
+
class Tag
|
429
|
+
|
430
|
+
##
|
431
|
+
# Returns a new Tag from the given hash.
|
432
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
433
|
+
# corresponding snake_cased attributes.
|
434
|
+
#
|
435
|
+
# Cucumber::Messages::Tag.from_h(some_hash) # => #<Cucumber::Messages::Tag:0x... ...>
|
436
|
+
#
|
437
|
+
|
438
|
+
def self.from_h(hash)
|
439
|
+
return nil if hash.nil?
|
440
|
+
|
441
|
+
self.new(
|
442
|
+
location: Location.from_h(hash[:location]),
|
443
|
+
name: hash[:name],
|
444
|
+
id: hash[:id],
|
445
|
+
)
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
class Hook
|
450
|
+
|
451
|
+
##
|
452
|
+
# Returns a new Hook from the given hash.
|
453
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
454
|
+
# corresponding snake_cased attributes.
|
455
|
+
#
|
456
|
+
# Cucumber::Messages::Hook.from_h(some_hash) # => #<Cucumber::Messages::Hook:0x... ...>
|
457
|
+
#
|
458
|
+
|
459
|
+
def self.from_h(hash)
|
460
|
+
return nil if hash.nil?
|
461
|
+
|
462
|
+
self.new(
|
463
|
+
id: hash[:id],
|
464
|
+
name: hash[:name],
|
465
|
+
source_reference: SourceReference.from_h(hash[:sourceReference]),
|
466
|
+
tag_expression: hash[:tagExpression],
|
467
|
+
)
|
468
|
+
end
|
469
|
+
end
|
470
|
+
|
471
|
+
class Location
|
472
|
+
|
473
|
+
##
|
474
|
+
# Returns a new Location from the given hash.
|
475
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
476
|
+
# corresponding snake_cased attributes.
|
477
|
+
#
|
478
|
+
# Cucumber::Messages::Location.from_h(some_hash) # => #<Cucumber::Messages::Location:0x... ...>
|
479
|
+
#
|
480
|
+
|
481
|
+
def self.from_h(hash)
|
482
|
+
return nil if hash.nil?
|
483
|
+
|
484
|
+
self.new(
|
485
|
+
line: hash[:line],
|
486
|
+
column: hash[:column],
|
487
|
+
)
|
488
|
+
end
|
489
|
+
end
|
490
|
+
|
491
|
+
class Meta
|
492
|
+
|
493
|
+
##
|
494
|
+
# Returns a new Meta from the given hash.
|
495
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
496
|
+
# corresponding snake_cased attributes.
|
497
|
+
#
|
498
|
+
# Cucumber::Messages::Meta.from_h(some_hash) # => #<Cucumber::Messages::Meta:0x... ...>
|
499
|
+
#
|
500
|
+
|
501
|
+
def self.from_h(hash)
|
502
|
+
return nil if hash.nil?
|
503
|
+
|
504
|
+
self.new(
|
505
|
+
protocol_version: hash[:protocolVersion],
|
506
|
+
implementation: Product.from_h(hash[:implementation]),
|
507
|
+
runtime: Product.from_h(hash[:runtime]),
|
508
|
+
os: Product.from_h(hash[:os]),
|
509
|
+
cpu: Product.from_h(hash[:cpu]),
|
510
|
+
ci: Ci.from_h(hash[:ci]),
|
511
|
+
)
|
512
|
+
end
|
513
|
+
end
|
514
|
+
|
515
|
+
class Ci
|
516
|
+
|
517
|
+
##
|
518
|
+
# Returns a new Ci from the given hash.
|
519
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
520
|
+
# corresponding snake_cased attributes.
|
521
|
+
#
|
522
|
+
# Cucumber::Messages::Ci.from_h(some_hash) # => #<Cucumber::Messages::Ci:0x... ...>
|
523
|
+
#
|
524
|
+
|
525
|
+
def self.from_h(hash)
|
526
|
+
return nil if hash.nil?
|
527
|
+
|
528
|
+
self.new(
|
529
|
+
name: hash[:name],
|
530
|
+
url: hash[:url],
|
531
|
+
build_number: hash[:buildNumber],
|
532
|
+
git: Git.from_h(hash[:git]),
|
533
|
+
)
|
534
|
+
end
|
535
|
+
end
|
536
|
+
|
537
|
+
class Git
|
538
|
+
|
539
|
+
##
|
540
|
+
# Returns a new Git from the given hash.
|
541
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
542
|
+
# corresponding snake_cased attributes.
|
543
|
+
#
|
544
|
+
# Cucumber::Messages::Git.from_h(some_hash) # => #<Cucumber::Messages::Git:0x... ...>
|
545
|
+
#
|
546
|
+
|
547
|
+
def self.from_h(hash)
|
548
|
+
return nil if hash.nil?
|
549
|
+
|
550
|
+
self.new(
|
551
|
+
remote: hash[:remote],
|
552
|
+
revision: hash[:revision],
|
553
|
+
branch: hash[:branch],
|
554
|
+
tag: hash[:tag],
|
555
|
+
)
|
556
|
+
end
|
557
|
+
end
|
558
|
+
|
559
|
+
class Product
|
560
|
+
|
561
|
+
##
|
562
|
+
# Returns a new Product from the given hash.
|
563
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
564
|
+
# corresponding snake_cased attributes.
|
565
|
+
#
|
566
|
+
# Cucumber::Messages::Product.from_h(some_hash) # => #<Cucumber::Messages::Product:0x... ...>
|
567
|
+
#
|
568
|
+
|
569
|
+
def self.from_h(hash)
|
570
|
+
return nil if hash.nil?
|
571
|
+
|
572
|
+
self.new(
|
573
|
+
name: hash[:name],
|
574
|
+
version: hash[:version],
|
575
|
+
)
|
576
|
+
end
|
577
|
+
end
|
578
|
+
|
579
|
+
class ParameterType
|
580
|
+
|
581
|
+
##
|
582
|
+
# Returns a new ParameterType from the given hash.
|
583
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
584
|
+
# corresponding snake_cased attributes.
|
585
|
+
#
|
586
|
+
# Cucumber::Messages::ParameterType.from_h(some_hash) # => #<Cucumber::Messages::ParameterType:0x... ...>
|
587
|
+
#
|
588
|
+
|
589
|
+
def self.from_h(hash)
|
590
|
+
return nil if hash.nil?
|
591
|
+
|
592
|
+
self.new(
|
593
|
+
name: hash[:name],
|
594
|
+
regular_expressions: hash[:regularExpressions],
|
595
|
+
prefer_for_regular_expression_match: hash[:preferForRegularExpressionMatch],
|
596
|
+
use_for_snippets: hash[:useForSnippets],
|
597
|
+
id: hash[:id],
|
598
|
+
source_reference: SourceReference.from_h(hash[:sourceReference]),
|
599
|
+
)
|
600
|
+
end
|
601
|
+
end
|
602
|
+
|
603
|
+
class ParseError
|
604
|
+
|
605
|
+
##
|
606
|
+
# Returns a new ParseError from the given hash.
|
607
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
608
|
+
# corresponding snake_cased attributes.
|
609
|
+
#
|
610
|
+
# Cucumber::Messages::ParseError.from_h(some_hash) # => #<Cucumber::Messages::ParseError:0x... ...>
|
611
|
+
#
|
612
|
+
|
613
|
+
def self.from_h(hash)
|
614
|
+
return nil if hash.nil?
|
615
|
+
|
616
|
+
self.new(
|
617
|
+
source: SourceReference.from_h(hash[:source]),
|
618
|
+
message: hash[:message],
|
619
|
+
)
|
620
|
+
end
|
621
|
+
end
|
622
|
+
|
623
|
+
class Pickle
|
624
|
+
|
625
|
+
##
|
626
|
+
# Returns a new Pickle from the given hash.
|
627
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
628
|
+
# corresponding snake_cased attributes.
|
629
|
+
#
|
630
|
+
# Cucumber::Messages::Pickle.from_h(some_hash) # => #<Cucumber::Messages::Pickle:0x... ...>
|
631
|
+
#
|
632
|
+
|
633
|
+
def self.from_h(hash)
|
634
|
+
return nil if hash.nil?
|
635
|
+
|
636
|
+
self.new(
|
637
|
+
id: hash[:id],
|
638
|
+
uri: hash[:uri],
|
639
|
+
name: hash[:name],
|
640
|
+
language: hash[:language],
|
641
|
+
steps: hash[:steps]&.map { |item| PickleStep.from_h(item) },
|
642
|
+
tags: hash[:tags]&.map { |item| PickleTag.from_h(item) },
|
643
|
+
ast_node_ids: hash[:astNodeIds],
|
644
|
+
)
|
645
|
+
end
|
646
|
+
end
|
647
|
+
|
648
|
+
class PickleDocString
|
649
|
+
|
650
|
+
##
|
651
|
+
# Returns a new PickleDocString from the given hash.
|
652
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
653
|
+
# corresponding snake_cased attributes.
|
654
|
+
#
|
655
|
+
# Cucumber::Messages::PickleDocString.from_h(some_hash) # => #<Cucumber::Messages::PickleDocString:0x... ...>
|
656
|
+
#
|
657
|
+
|
658
|
+
def self.from_h(hash)
|
659
|
+
return nil if hash.nil?
|
660
|
+
|
661
|
+
self.new(
|
662
|
+
media_type: hash[:mediaType],
|
663
|
+
content: hash[:content],
|
664
|
+
)
|
665
|
+
end
|
666
|
+
end
|
667
|
+
|
668
|
+
class PickleStep
|
669
|
+
|
670
|
+
##
|
671
|
+
# Returns a new PickleStep from the given hash.
|
672
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
673
|
+
# corresponding snake_cased attributes.
|
674
|
+
#
|
675
|
+
# Cucumber::Messages::PickleStep.from_h(some_hash) # => #<Cucumber::Messages::PickleStep:0x... ...>
|
676
|
+
#
|
677
|
+
|
678
|
+
def self.from_h(hash)
|
679
|
+
return nil if hash.nil?
|
680
|
+
|
681
|
+
self.new(
|
682
|
+
argument: PickleStepArgument.from_h(hash[:argument]),
|
683
|
+
ast_node_ids: hash[:astNodeIds],
|
684
|
+
id: hash[:id],
|
685
|
+
type: hash[:type],
|
686
|
+
text: hash[:text],
|
687
|
+
)
|
688
|
+
end
|
689
|
+
end
|
690
|
+
|
691
|
+
class PickleStepArgument
|
692
|
+
|
693
|
+
##
|
694
|
+
# Returns a new PickleStepArgument from the given hash.
|
695
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
696
|
+
# corresponding snake_cased attributes.
|
697
|
+
#
|
698
|
+
# Cucumber::Messages::PickleStepArgument.from_h(some_hash) # => #<Cucumber::Messages::PickleStepArgument:0x... ...>
|
699
|
+
#
|
700
|
+
|
701
|
+
def self.from_h(hash)
|
702
|
+
return nil if hash.nil?
|
703
|
+
|
704
|
+
self.new(
|
705
|
+
doc_string: PickleDocString.from_h(hash[:docString]),
|
706
|
+
data_table: PickleTable.from_h(hash[:dataTable]),
|
707
|
+
)
|
708
|
+
end
|
709
|
+
end
|
710
|
+
|
711
|
+
class PickleTable
|
712
|
+
|
713
|
+
##
|
714
|
+
# Returns a new PickleTable from the given hash.
|
715
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
716
|
+
# corresponding snake_cased attributes.
|
717
|
+
#
|
718
|
+
# Cucumber::Messages::PickleTable.from_h(some_hash) # => #<Cucumber::Messages::PickleTable:0x... ...>
|
719
|
+
#
|
720
|
+
|
721
|
+
def self.from_h(hash)
|
722
|
+
return nil if hash.nil?
|
723
|
+
|
724
|
+
self.new(
|
725
|
+
rows: hash[:rows]&.map { |item| PickleTableRow.from_h(item) },
|
726
|
+
)
|
727
|
+
end
|
728
|
+
end
|
729
|
+
|
730
|
+
class PickleTableCell
|
731
|
+
|
732
|
+
##
|
733
|
+
# Returns a new PickleTableCell from the given hash.
|
734
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
735
|
+
# corresponding snake_cased attributes.
|
736
|
+
#
|
737
|
+
# Cucumber::Messages::PickleTableCell.from_h(some_hash) # => #<Cucumber::Messages::PickleTableCell:0x... ...>
|
738
|
+
#
|
739
|
+
|
740
|
+
def self.from_h(hash)
|
741
|
+
return nil if hash.nil?
|
742
|
+
|
743
|
+
self.new(
|
744
|
+
value: hash[:value],
|
745
|
+
)
|
746
|
+
end
|
747
|
+
end
|
748
|
+
|
749
|
+
class PickleTableRow
|
750
|
+
|
751
|
+
##
|
752
|
+
# Returns a new PickleTableRow from the given hash.
|
753
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
754
|
+
# corresponding snake_cased attributes.
|
755
|
+
#
|
756
|
+
# Cucumber::Messages::PickleTableRow.from_h(some_hash) # => #<Cucumber::Messages::PickleTableRow:0x... ...>
|
757
|
+
#
|
758
|
+
|
759
|
+
def self.from_h(hash)
|
760
|
+
return nil if hash.nil?
|
761
|
+
|
762
|
+
self.new(
|
763
|
+
cells: hash[:cells]&.map { |item| PickleTableCell.from_h(item) },
|
764
|
+
)
|
765
|
+
end
|
766
|
+
end
|
767
|
+
|
768
|
+
class PickleTag
|
769
|
+
|
770
|
+
##
|
771
|
+
# Returns a new PickleTag from the given hash.
|
772
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
773
|
+
# corresponding snake_cased attributes.
|
774
|
+
#
|
775
|
+
# Cucumber::Messages::PickleTag.from_h(some_hash) # => #<Cucumber::Messages::PickleTag:0x... ...>
|
776
|
+
#
|
777
|
+
|
778
|
+
def self.from_h(hash)
|
779
|
+
return nil if hash.nil?
|
780
|
+
|
781
|
+
self.new(
|
782
|
+
name: hash[:name],
|
783
|
+
ast_node_id: hash[:astNodeId],
|
784
|
+
)
|
785
|
+
end
|
786
|
+
end
|
787
|
+
|
788
|
+
class Source
|
789
|
+
|
790
|
+
##
|
791
|
+
# Returns a new Source from the given hash.
|
792
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
793
|
+
# corresponding snake_cased attributes.
|
794
|
+
#
|
795
|
+
# Cucumber::Messages::Source.from_h(some_hash) # => #<Cucumber::Messages::Source:0x... ...>
|
796
|
+
#
|
797
|
+
|
798
|
+
def self.from_h(hash)
|
799
|
+
return nil if hash.nil?
|
800
|
+
|
801
|
+
self.new(
|
802
|
+
uri: hash[:uri],
|
803
|
+
data: hash[:data],
|
804
|
+
media_type: hash[:mediaType],
|
805
|
+
)
|
806
|
+
end
|
807
|
+
end
|
808
|
+
|
809
|
+
class SourceReference
|
810
|
+
|
811
|
+
##
|
812
|
+
# Returns a new SourceReference from the given hash.
|
813
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
814
|
+
# corresponding snake_cased attributes.
|
815
|
+
#
|
816
|
+
# Cucumber::Messages::SourceReference.from_h(some_hash) # => #<Cucumber::Messages::SourceReference:0x... ...>
|
817
|
+
#
|
818
|
+
|
819
|
+
def self.from_h(hash)
|
820
|
+
return nil if hash.nil?
|
821
|
+
|
822
|
+
self.new(
|
823
|
+
uri: hash[:uri],
|
824
|
+
java_method: JavaMethod.from_h(hash[:javaMethod]),
|
825
|
+
java_stack_trace_element: JavaStackTraceElement.from_h(hash[:javaStackTraceElement]),
|
826
|
+
location: Location.from_h(hash[:location]),
|
827
|
+
)
|
828
|
+
end
|
829
|
+
end
|
830
|
+
|
831
|
+
class JavaMethod
|
832
|
+
|
833
|
+
##
|
834
|
+
# Returns a new JavaMethod from the given hash.
|
835
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
836
|
+
# corresponding snake_cased attributes.
|
837
|
+
#
|
838
|
+
# Cucumber::Messages::JavaMethod.from_h(some_hash) # => #<Cucumber::Messages::JavaMethod:0x... ...>
|
839
|
+
#
|
840
|
+
|
841
|
+
def self.from_h(hash)
|
842
|
+
return nil if hash.nil?
|
843
|
+
|
844
|
+
self.new(
|
845
|
+
class_name: hash[:className],
|
846
|
+
method_name: hash[:methodName],
|
847
|
+
method_parameter_types: hash[:methodParameterTypes],
|
848
|
+
)
|
849
|
+
end
|
850
|
+
end
|
851
|
+
|
852
|
+
class JavaStackTraceElement
|
853
|
+
|
854
|
+
##
|
855
|
+
# Returns a new JavaStackTraceElement from the given hash.
|
856
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
857
|
+
# corresponding snake_cased attributes.
|
858
|
+
#
|
859
|
+
# Cucumber::Messages::JavaStackTraceElement.from_h(some_hash) # => #<Cucumber::Messages::JavaStackTraceElement:0x... ...>
|
860
|
+
#
|
861
|
+
|
862
|
+
def self.from_h(hash)
|
863
|
+
return nil if hash.nil?
|
864
|
+
|
865
|
+
self.new(
|
866
|
+
class_name: hash[:className],
|
867
|
+
file_name: hash[:fileName],
|
868
|
+
method_name: hash[:methodName],
|
869
|
+
)
|
870
|
+
end
|
871
|
+
end
|
872
|
+
|
873
|
+
class StepDefinition
|
874
|
+
|
875
|
+
##
|
876
|
+
# Returns a new StepDefinition from the given hash.
|
877
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
878
|
+
# corresponding snake_cased attributes.
|
879
|
+
#
|
880
|
+
# Cucumber::Messages::StepDefinition.from_h(some_hash) # => #<Cucumber::Messages::StepDefinition:0x... ...>
|
881
|
+
#
|
882
|
+
|
883
|
+
def self.from_h(hash)
|
884
|
+
return nil if hash.nil?
|
885
|
+
|
886
|
+
self.new(
|
887
|
+
id: hash[:id],
|
888
|
+
pattern: StepDefinitionPattern.from_h(hash[:pattern]),
|
889
|
+
source_reference: SourceReference.from_h(hash[:sourceReference]),
|
890
|
+
)
|
891
|
+
end
|
892
|
+
end
|
893
|
+
|
894
|
+
class StepDefinitionPattern
|
895
|
+
|
896
|
+
##
|
897
|
+
# Returns a new StepDefinitionPattern from the given hash.
|
898
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
899
|
+
# corresponding snake_cased attributes.
|
900
|
+
#
|
901
|
+
# Cucumber::Messages::StepDefinitionPattern.from_h(some_hash) # => #<Cucumber::Messages::StepDefinitionPattern:0x... ...>
|
902
|
+
#
|
903
|
+
|
904
|
+
def self.from_h(hash)
|
905
|
+
return nil if hash.nil?
|
906
|
+
|
907
|
+
self.new(
|
908
|
+
source: hash[:source],
|
909
|
+
type: hash[:type],
|
910
|
+
)
|
911
|
+
end
|
912
|
+
end
|
913
|
+
|
914
|
+
class TestCase
|
915
|
+
|
916
|
+
##
|
917
|
+
# Returns a new TestCase from the given hash.
|
918
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
919
|
+
# corresponding snake_cased attributes.
|
920
|
+
#
|
921
|
+
# Cucumber::Messages::TestCase.from_h(some_hash) # => #<Cucumber::Messages::TestCase:0x... ...>
|
922
|
+
#
|
923
|
+
|
924
|
+
def self.from_h(hash)
|
925
|
+
return nil if hash.nil?
|
926
|
+
|
927
|
+
self.new(
|
928
|
+
id: hash[:id],
|
929
|
+
pickle_id: hash[:pickleId],
|
930
|
+
test_steps: hash[:testSteps]&.map { |item| TestStep.from_h(item) },
|
931
|
+
)
|
932
|
+
end
|
933
|
+
end
|
934
|
+
|
935
|
+
class Group
|
936
|
+
|
937
|
+
##
|
938
|
+
# Returns a new Group from the given hash.
|
939
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
940
|
+
# corresponding snake_cased attributes.
|
941
|
+
#
|
942
|
+
# Cucumber::Messages::Group.from_h(some_hash) # => #<Cucumber::Messages::Group:0x... ...>
|
943
|
+
#
|
944
|
+
|
945
|
+
def self.from_h(hash)
|
946
|
+
return nil if hash.nil?
|
947
|
+
|
948
|
+
self.new(
|
949
|
+
children: hash[:children]&.map { |item| Group.from_h(item) },
|
950
|
+
start: hash[:start],
|
951
|
+
value: hash[:value],
|
952
|
+
)
|
953
|
+
end
|
954
|
+
end
|
955
|
+
|
956
|
+
class StepMatchArgument
|
957
|
+
|
958
|
+
##
|
959
|
+
# Returns a new StepMatchArgument from the given hash.
|
960
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
961
|
+
# corresponding snake_cased attributes.
|
962
|
+
#
|
963
|
+
# Cucumber::Messages::StepMatchArgument.from_h(some_hash) # => #<Cucumber::Messages::StepMatchArgument:0x... ...>
|
964
|
+
#
|
965
|
+
|
966
|
+
def self.from_h(hash)
|
967
|
+
return nil if hash.nil?
|
968
|
+
|
969
|
+
self.new(
|
970
|
+
group: Group.from_h(hash[:group]),
|
971
|
+
parameter_type_name: hash[:parameterTypeName],
|
972
|
+
)
|
973
|
+
end
|
974
|
+
end
|
975
|
+
|
976
|
+
class StepMatchArgumentsList
|
977
|
+
|
978
|
+
##
|
979
|
+
# Returns a new StepMatchArgumentsList from the given hash.
|
980
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
981
|
+
# corresponding snake_cased attributes.
|
982
|
+
#
|
983
|
+
# Cucumber::Messages::StepMatchArgumentsList.from_h(some_hash) # => #<Cucumber::Messages::StepMatchArgumentsList:0x... ...>
|
984
|
+
#
|
985
|
+
|
986
|
+
def self.from_h(hash)
|
987
|
+
return nil if hash.nil?
|
988
|
+
|
989
|
+
self.new(
|
990
|
+
step_match_arguments: hash[:stepMatchArguments]&.map { |item| StepMatchArgument.from_h(item) },
|
991
|
+
)
|
992
|
+
end
|
993
|
+
end
|
994
|
+
|
995
|
+
class TestStep
|
996
|
+
|
997
|
+
##
|
998
|
+
# Returns a new TestStep from the given hash.
|
999
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1000
|
+
# corresponding snake_cased attributes.
|
1001
|
+
#
|
1002
|
+
# Cucumber::Messages::TestStep.from_h(some_hash) # => #<Cucumber::Messages::TestStep:0x... ...>
|
1003
|
+
#
|
1004
|
+
|
1005
|
+
def self.from_h(hash)
|
1006
|
+
return nil if hash.nil?
|
1007
|
+
|
1008
|
+
self.new(
|
1009
|
+
hook_id: hash[:hookId],
|
1010
|
+
id: hash[:id],
|
1011
|
+
pickle_step_id: hash[:pickleStepId],
|
1012
|
+
step_definition_ids: hash[:stepDefinitionIds],
|
1013
|
+
step_match_arguments_lists: hash[:stepMatchArgumentsLists]&.map { |item| StepMatchArgumentsList.from_h(item) },
|
1014
|
+
)
|
1015
|
+
end
|
1016
|
+
end
|
1017
|
+
|
1018
|
+
class TestCaseFinished
|
1019
|
+
|
1020
|
+
##
|
1021
|
+
# Returns a new TestCaseFinished from the given hash.
|
1022
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1023
|
+
# corresponding snake_cased attributes.
|
1024
|
+
#
|
1025
|
+
# Cucumber::Messages::TestCaseFinished.from_h(some_hash) # => #<Cucumber::Messages::TestCaseFinished:0x... ...>
|
1026
|
+
#
|
1027
|
+
|
1028
|
+
def self.from_h(hash)
|
1029
|
+
return nil if hash.nil?
|
1030
|
+
|
1031
|
+
self.new(
|
1032
|
+
test_case_started_id: hash[:testCaseStartedId],
|
1033
|
+
timestamp: Timestamp.from_h(hash[:timestamp]),
|
1034
|
+
will_be_retried: hash[:willBeRetried],
|
1035
|
+
)
|
1036
|
+
end
|
1037
|
+
end
|
1038
|
+
|
1039
|
+
class TestCaseStarted
|
1040
|
+
|
1041
|
+
##
|
1042
|
+
# Returns a new TestCaseStarted from the given hash.
|
1043
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1044
|
+
# corresponding snake_cased attributes.
|
1045
|
+
#
|
1046
|
+
# Cucumber::Messages::TestCaseStarted.from_h(some_hash) # => #<Cucumber::Messages::TestCaseStarted:0x... ...>
|
1047
|
+
#
|
1048
|
+
|
1049
|
+
def self.from_h(hash)
|
1050
|
+
return nil if hash.nil?
|
1051
|
+
|
1052
|
+
self.new(
|
1053
|
+
attempt: hash[:attempt],
|
1054
|
+
id: hash[:id],
|
1055
|
+
test_case_id: hash[:testCaseId],
|
1056
|
+
worker_id: hash[:workerId],
|
1057
|
+
timestamp: Timestamp.from_h(hash[:timestamp]),
|
1058
|
+
)
|
1059
|
+
end
|
1060
|
+
end
|
1061
|
+
|
1062
|
+
class TestRunFinished
|
1063
|
+
|
1064
|
+
##
|
1065
|
+
# Returns a new TestRunFinished from the given hash.
|
1066
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1067
|
+
# corresponding snake_cased attributes.
|
1068
|
+
#
|
1069
|
+
# Cucumber::Messages::TestRunFinished.from_h(some_hash) # => #<Cucumber::Messages::TestRunFinished:0x... ...>
|
1070
|
+
#
|
1071
|
+
|
1072
|
+
def self.from_h(hash)
|
1073
|
+
return nil if hash.nil?
|
1074
|
+
|
1075
|
+
self.new(
|
1076
|
+
message: hash[:message],
|
1077
|
+
success: hash[:success],
|
1078
|
+
timestamp: Timestamp.from_h(hash[:timestamp]),
|
1079
|
+
exception: Exception.from_h(hash[:exception]),
|
1080
|
+
)
|
1081
|
+
end
|
1082
|
+
end
|
1083
|
+
|
1084
|
+
class TestRunStarted
|
1085
|
+
|
1086
|
+
##
|
1087
|
+
# Returns a new TestRunStarted from the given hash.
|
1088
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1089
|
+
# corresponding snake_cased attributes.
|
1090
|
+
#
|
1091
|
+
# Cucumber::Messages::TestRunStarted.from_h(some_hash) # => #<Cucumber::Messages::TestRunStarted:0x... ...>
|
1092
|
+
#
|
1093
|
+
|
1094
|
+
def self.from_h(hash)
|
1095
|
+
return nil if hash.nil?
|
1096
|
+
|
1097
|
+
self.new(
|
1098
|
+
timestamp: Timestamp.from_h(hash[:timestamp]),
|
1099
|
+
)
|
1100
|
+
end
|
1101
|
+
end
|
1102
|
+
|
1103
|
+
class TestStepFinished
|
1104
|
+
|
1105
|
+
##
|
1106
|
+
# Returns a new TestStepFinished from the given hash.
|
1107
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1108
|
+
# corresponding snake_cased attributes.
|
1109
|
+
#
|
1110
|
+
# Cucumber::Messages::TestStepFinished.from_h(some_hash) # => #<Cucumber::Messages::TestStepFinished:0x... ...>
|
1111
|
+
#
|
1112
|
+
|
1113
|
+
def self.from_h(hash)
|
1114
|
+
return nil if hash.nil?
|
1115
|
+
|
1116
|
+
self.new(
|
1117
|
+
test_case_started_id: hash[:testCaseStartedId],
|
1118
|
+
test_step_id: hash[:testStepId],
|
1119
|
+
test_step_result: TestStepResult.from_h(hash[:testStepResult]),
|
1120
|
+
timestamp: Timestamp.from_h(hash[:timestamp]),
|
1121
|
+
)
|
1122
|
+
end
|
1123
|
+
end
|
1124
|
+
|
1125
|
+
class TestStepResult
|
1126
|
+
|
1127
|
+
##
|
1128
|
+
# Returns a new TestStepResult from the given hash.
|
1129
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1130
|
+
# corresponding snake_cased attributes.
|
1131
|
+
#
|
1132
|
+
# Cucumber::Messages::TestStepResult.from_h(some_hash) # => #<Cucumber::Messages::TestStepResult:0x... ...>
|
1133
|
+
#
|
1134
|
+
|
1135
|
+
def self.from_h(hash)
|
1136
|
+
return nil if hash.nil?
|
1137
|
+
|
1138
|
+
self.new(
|
1139
|
+
duration: Duration.from_h(hash[:duration]),
|
1140
|
+
message: hash[:message],
|
1141
|
+
status: hash[:status],
|
1142
|
+
exception: Exception.from_h(hash[:exception]),
|
1143
|
+
)
|
1144
|
+
end
|
1145
|
+
end
|
1146
|
+
|
1147
|
+
class TestStepStarted
|
1148
|
+
|
1149
|
+
##
|
1150
|
+
# Returns a new TestStepStarted from the given hash.
|
1151
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1152
|
+
# corresponding snake_cased attributes.
|
1153
|
+
#
|
1154
|
+
# Cucumber::Messages::TestStepStarted.from_h(some_hash) # => #<Cucumber::Messages::TestStepStarted:0x... ...>
|
1155
|
+
#
|
1156
|
+
|
1157
|
+
def self.from_h(hash)
|
1158
|
+
return nil if hash.nil?
|
1159
|
+
|
1160
|
+
self.new(
|
1161
|
+
test_case_started_id: hash[:testCaseStartedId],
|
1162
|
+
test_step_id: hash[:testStepId],
|
1163
|
+
timestamp: Timestamp.from_h(hash[:timestamp]),
|
1164
|
+
)
|
1165
|
+
end
|
1166
|
+
end
|
1167
|
+
|
1168
|
+
class Timestamp
|
1169
|
+
|
1170
|
+
##
|
1171
|
+
# Returns a new Timestamp from the given hash.
|
1172
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1173
|
+
# corresponding snake_cased attributes.
|
1174
|
+
#
|
1175
|
+
# Cucumber::Messages::Timestamp.from_h(some_hash) # => #<Cucumber::Messages::Timestamp:0x... ...>
|
1176
|
+
#
|
1177
|
+
|
1178
|
+
def self.from_h(hash)
|
1179
|
+
return nil if hash.nil?
|
1180
|
+
|
1181
|
+
self.new(
|
1182
|
+
seconds: hash[:seconds],
|
1183
|
+
nanos: hash[:nanos],
|
1184
|
+
)
|
1185
|
+
end
|
1186
|
+
end
|
1187
|
+
|
1188
|
+
class UndefinedParameterType
|
1189
|
+
|
1190
|
+
##
|
1191
|
+
# Returns a new UndefinedParameterType from the given hash.
|
1192
|
+
# If the hash keys are camelCased, they are properly assigned to the
|
1193
|
+
# corresponding snake_cased attributes.
|
1194
|
+
#
|
1195
|
+
# Cucumber::Messages::UndefinedParameterType.from_h(some_hash) # => #<Cucumber::Messages::UndefinedParameterType:0x... ...>
|
1196
|
+
#
|
1197
|
+
|
1198
|
+
def self.from_h(hash)
|
1199
|
+
return nil if hash.nil?
|
1200
|
+
|
1201
|
+
self.new(
|
1202
|
+
expression: hash[:expression],
|
1203
|
+
name: hash[:name],
|
1204
|
+
)
|
1205
|
+
end
|
1206
|
+
end
|
1207
|
+
end
|
1208
|
+
end
|