ondc-code-generator 0.8.6 → 0.8.8

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.
Files changed (111) hide show
  1. package/alpha/golang/newPkg/go.mod +3 -0
  2. package/alpha/golang/newPkg/jsonvalidations/cancel.go +1289 -0
  3. package/alpha/golang/newPkg/jsonvalidations/confirm.go +9121 -0
  4. package/alpha/golang/newPkg/jsonvalidations/init.go +4864 -0
  5. package/alpha/golang/newPkg/jsonvalidations/issue.go +4868 -0
  6. package/alpha/golang/newPkg/jsonvalidations/on_cancel.go +7111 -0
  7. package/alpha/golang/newPkg/jsonvalidations/on_confirm.go +8903 -0
  8. package/alpha/golang/newPkg/jsonvalidations/on_init.go +4445 -0
  9. package/alpha/golang/newPkg/jsonvalidations/on_issue.go +2828 -0
  10. package/alpha/golang/newPkg/jsonvalidations/on_issue_status.go +1938 -0
  11. package/alpha/golang/newPkg/jsonvalidations/on_search.go +3356 -0
  12. package/alpha/golang/newPkg/jsonvalidations/on_status.go +8129 -0
  13. package/alpha/golang/newPkg/jsonvalidations/on_track.go +1415 -0
  14. package/alpha/golang/newPkg/jsonvalidations/on_update.go +8700 -0
  15. package/alpha/golang/newPkg/jsonvalidations/search.go +3585 -0
  16. package/alpha/golang/newPkg/jsonvalidations/status.go +1073 -0
  17. package/alpha/golang/newPkg/jsonvalidations/track.go +1073 -0
  18. package/alpha/golang/newPkg/jsonvalidations/update.go +3012 -0
  19. package/alpha/golang/newPkg/main-validator.go +196 -0
  20. package/alpha/golang/newPkg/main-validator_test.go +165 -0
  21. package/alpha/golang/newPkg/storageutils/api_save_utils.go +83 -0
  22. package/alpha/golang/newPkg/storageutils/cancel.go +30 -0
  23. package/alpha/golang/newPkg/storageutils/confirm.go +30 -0
  24. package/alpha/golang/newPkg/storageutils/index.go +132 -0
  25. package/alpha/golang/newPkg/storageutils/init.go +30 -0
  26. package/alpha/golang/newPkg/storageutils/issue.go +30 -0
  27. package/alpha/golang/newPkg/storageutils/on_cancel.go +30 -0
  28. package/alpha/golang/newPkg/storageutils/on_confirm.go +30 -0
  29. package/alpha/golang/newPkg/storageutils/on_init.go +30 -0
  30. package/alpha/golang/newPkg/storageutils/on_issue.go +30 -0
  31. package/alpha/golang/newPkg/storageutils/on_issue_status.go +30 -0
  32. package/alpha/golang/newPkg/storageutils/on_search.go +30 -0
  33. package/alpha/golang/newPkg/storageutils/on_status.go +30 -0
  34. package/alpha/golang/newPkg/storageutils/on_track.go +30 -0
  35. package/alpha/golang/newPkg/storageutils/on_update.go +30 -0
  36. package/alpha/golang/newPkg/storageutils/save_utils.go +75 -0
  37. package/alpha/golang/newPkg/storageutils/search.go +30 -0
  38. package/alpha/golang/newPkg/storageutils/status.go +30 -0
  39. package/alpha/golang/newPkg/storageutils/track.go +30 -0
  40. package/alpha/golang/newPkg/storageutils/update.go +30 -0
  41. package/alpha/golang/newPkg/validationutils/json_normalizer.go +152 -0
  42. package/alpha/golang/newPkg/validationutils/json_path_utils.go +173 -0
  43. package/alpha/golang/newPkg/validationutils/storage-interface.go +107 -0
  44. package/alpha/golang/newPkg/validationutils/test-config.go +69 -0
  45. package/alpha/golang/newPkg/validationutils/validation_utils.go +429 -0
  46. package/alpha/golang/page/index.html +6137 -0
  47. package/alpha/golang/page/style.css +204 -0
  48. package/alpha/golang/readme.md +5939 -0
  49. package/alpha/golang/validPaths.json +14351 -0
  50. package/alpha/golang/validationpkg/go.mod +3 -0
  51. package/alpha/golang/validationpkg/jsonvalidations/cancel.go +1289 -0
  52. package/alpha/golang/validationpkg/jsonvalidations/confirm.go +9121 -0
  53. package/alpha/golang/validationpkg/jsonvalidations/init.go +4864 -0
  54. package/alpha/golang/validationpkg/jsonvalidations/issue.go +4868 -0
  55. package/alpha/golang/validationpkg/jsonvalidations/on_cancel.go +7111 -0
  56. package/alpha/golang/validationpkg/jsonvalidations/on_confirm.go +8903 -0
  57. package/alpha/golang/validationpkg/jsonvalidations/on_init.go +4445 -0
  58. package/alpha/golang/validationpkg/jsonvalidations/on_issue.go +2828 -0
  59. package/alpha/golang/validationpkg/jsonvalidations/on_issue_status.go +1938 -0
  60. package/alpha/golang/validationpkg/jsonvalidations/on_search.go +3356 -0
  61. package/alpha/golang/validationpkg/jsonvalidations/on_status.go +8129 -0
  62. package/alpha/golang/validationpkg/jsonvalidations/on_track.go +1415 -0
  63. package/alpha/golang/validationpkg/jsonvalidations/on_update.go +8700 -0
  64. package/alpha/golang/validationpkg/jsonvalidations/search.go +3585 -0
  65. package/alpha/golang/validationpkg/jsonvalidations/status.go +1073 -0
  66. package/alpha/golang/validationpkg/jsonvalidations/track.go +1073 -0
  67. package/alpha/golang/validationpkg/jsonvalidations/update.go +3012 -0
  68. package/alpha/golang/validationpkg/main-validator.go +196 -0
  69. package/alpha/golang/validationpkg/main-validator_test.go +165 -0
  70. package/alpha/golang/validationpkg/storageutils/api_save_utils.go +83 -0
  71. package/alpha/golang/validationpkg/storageutils/cancel.go +30 -0
  72. package/alpha/golang/validationpkg/storageutils/confirm.go +30 -0
  73. package/alpha/golang/validationpkg/storageutils/index.go +132 -0
  74. package/alpha/golang/validationpkg/storageutils/init.go +30 -0
  75. package/alpha/golang/validationpkg/storageutils/issue.go +30 -0
  76. package/alpha/golang/validationpkg/storageutils/on_cancel.go +30 -0
  77. package/alpha/golang/validationpkg/storageutils/on_confirm.go +30 -0
  78. package/alpha/golang/validationpkg/storageutils/on_init.go +30 -0
  79. package/alpha/golang/validationpkg/storageutils/on_issue.go +30 -0
  80. package/alpha/golang/validationpkg/storageutils/on_issue_status.go +30 -0
  81. package/alpha/golang/validationpkg/storageutils/on_search.go +30 -0
  82. package/alpha/golang/validationpkg/storageutils/on_status.go +30 -0
  83. package/alpha/golang/validationpkg/storageutils/on_track.go +30 -0
  84. package/alpha/golang/validationpkg/storageutils/on_update.go +30 -0
  85. package/alpha/golang/validationpkg/storageutils/save_utils.go +75 -0
  86. package/alpha/golang/validationpkg/storageutils/search.go +30 -0
  87. package/alpha/golang/validationpkg/storageutils/status.go +30 -0
  88. package/alpha/golang/validationpkg/storageutils/track.go +30 -0
  89. package/alpha/golang/validationpkg/storageutils/update.go +30 -0
  90. package/alpha/golang/validationpkg/validationutils/json_normalizer.go +152 -0
  91. package/alpha/golang/validationpkg/validationutils/json_path_utils.go +173 -0
  92. package/alpha/golang/validationpkg/validationutils/storage-interface.go +107 -0
  93. package/alpha/golang/validationpkg/validationutils/test-config.go +69 -0
  94. package/alpha/golang/validationpkg/validationutils/validation_utils.go +429 -0
  95. package/dist/bin/cli.js +4 -2
  96. package/dist/constants/syntax.js +1 -0
  97. package/dist/generator/config-compiler.d.ts +2 -2
  98. package/dist/generator/config-compiler.js +6 -4
  99. package/dist/generator/generators/classes/abstract-generator.d.ts +1 -0
  100. package/dist/generator/generators/go/go-generator.js +34 -17
  101. package/dist/generator/generators/go/templates/api-tests.mustache +1 -1
  102. package/dist/generator/generators/go/templates/go-mod.mustache +1 -1
  103. package/dist/generator/generators/go/templates/index.mustache +1 -1
  104. package/dist/generator/generators/go/templates/storage-templates/api-save-utils.mustache +1 -1
  105. package/dist/generator/generators/go/templates/storage-templates/api-save.mustache +1 -1
  106. package/dist/generator/generators/go/templates/storage-templates/index.mustache +1 -1
  107. package/dist/generator/generators/go/templates/storage-templates/save-utils.mustache +1 -1
  108. package/dist/generator/generators/go/templates/test-templates/validator-test.mustache +6 -6
  109. package/package.json +1 -1
  110. package/alpha/possible-json-paths.json +0 -248
  111. package/alpha/validPaths.json +0 -248
@@ -0,0 +1,3585 @@
1
+ // Code generated by github.com/ONDC-Official/automation-validation-compiler, DO NOT EDIT.
2
+
3
+ package jsonvalidations
4
+
5
+ import (
6
+ "validationpkg/validationutils"
7
+ )
8
+
9
+ func Search_Tests(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
10
+ totalResults, err := SearchValidations(input)
11
+ if err != nil {
12
+ return nil, err
13
+ }
14
+
15
+ if !input.Config.Debug {
16
+ for i := range totalResults {
17
+ totalResults[i].DebugInfo = nil
18
+ }
19
+ }
20
+
21
+ if input.Config.HideParentErrors {
22
+ // Delete results with valid false and no description
23
+ filtered := make([]validationutils.ValidationOutput, 0)
24
+ for _, r := range totalResults {
25
+ if !r.Valid && r.Description == "" {
26
+ continue
27
+ }
28
+ filtered = append(filtered, r)
29
+ }
30
+ totalResults = filtered
31
+ }
32
+
33
+ if input.Config.OnlyInvalid {
34
+ res := make([]validationutils.ValidationOutput, 0)
35
+ for _, r := range totalResults {
36
+ if !r.Valid {
37
+ res = append(res, r)
38
+ }
39
+ }
40
+
41
+ if len(res) == 0 {
42
+ // Find the overall test result
43
+ var targetSuccess *validationutils.ValidationOutput
44
+ for i := range totalResults {
45
+ if totalResults[i].TestName == "SearchValidations" {
46
+ targetSuccess = &totalResults[i]
47
+ break
48
+ }
49
+ }
50
+
51
+ if targetSuccess == nil {
52
+ panic("Critical: Overall test result not found")
53
+ }
54
+
55
+ return []validationutils.ValidationOutput{*targetSuccess}, nil
56
+ }
57
+
58
+ return res, nil
59
+ }
60
+
61
+ return totalResults, nil
62
+ }
63
+
64
+ var SearchValidations = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
65
+
66
+ if input.Config.SkipTestsDict != nil {
67
+ if _, skip := input.Config.SkipTestsDict["SearchValidations"]; skip {
68
+ return []validationutils.ValidationOutput{}, nil
69
+ }
70
+ }
71
+
72
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
73
+
74
+ subResults := make([]validationutils.ValidationOutput, 0)
75
+ valid := true
76
+ configureDebugInfo := ""
77
+ for _, testObjMap := range scope {
78
+ validationutils.UnusedFunction(testObjMap)
79
+
80
+ var REQUIRED_CONTEXT_DOMAIN = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
81
+
82
+ if input.Config.SkipTestsDict != nil {
83
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_DOMAIN"]; skip {
84
+ return []validationutils.ValidationOutput{}, nil
85
+ }
86
+ }
87
+
88
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
89
+
90
+ subResults := make([]validationutils.ValidationOutput, 0)
91
+ valid := true
92
+ configureDebugInfo := ""
93
+ for _, testObjMap := range scope {
94
+ validationutils.UnusedFunction(testObjMap)
95
+
96
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.domain", true)
97
+ validationutils.UnusedFunction(attr)
98
+ enumList := validationutils.StringSliceToInterface([]string{`ONDC:LOG10`, `ONDC:LOG11`, `nic2004:60232`})
99
+ validationutils.UnusedFunction(enumList)
100
+
101
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
102
+
103
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_DOMAIN","attr":"$.context.domain","_RETURN_":"attr are present && attr all in enumList","enumList":["ONDC:LOG10","ONDC:LOG11","nic2004:60232"]}`
104
+
105
+ if !validate {
106
+ result := validationutils.ValidationOutput{
107
+ TestName: "REQUIRED_CONTEXT_DOMAIN",
108
+ Valid: false,
109
+ Code: 30000,
110
+ Description: `#### **REQUIRED_CONTEXT_DOMAIN**
111
+
112
+ **All of the following must be true:**
113
+ - $.context.domain must be present in the payload
114
+ - All elements of $.context.domain must be in ["ONDC:LOG10", "ONDC:LOG11", "nic2004:60232"]`,
115
+ DebugInfo: &validationutils.DebugInfo{
116
+ FedConfig: configureDebugInfo,
117
+ },
118
+ }
119
+ return []validationutils.ValidationOutput{result}, nil
120
+ }
121
+
122
+ }
123
+
124
+ result := validationutils.ValidationOutput{
125
+ TestName: "REQUIRED_CONTEXT_DOMAIN",
126
+ Valid: valid,
127
+ Code: 0,
128
+ DebugInfo: &validationutils.DebugInfo{
129
+ FedConfig: configureDebugInfo,
130
+ },
131
+ }
132
+
133
+ if valid {
134
+ result.Code = 200
135
+ } else {
136
+ result.Code = 30000
137
+ }
138
+
139
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
140
+ results = append(results, result)
141
+ results = append(results, subResults...)
142
+
143
+ return results, nil
144
+ }
145
+ var REQUIRED_CONTEXT_COUNTRY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
146
+
147
+ if input.Config.SkipTestsDict != nil {
148
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_COUNTRY"]; skip {
149
+ return []validationutils.ValidationOutput{}, nil
150
+ }
151
+ }
152
+
153
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
154
+
155
+ subResults := make([]validationutils.ValidationOutput, 0)
156
+ valid := true
157
+ configureDebugInfo := ""
158
+ for _, testObjMap := range scope {
159
+ validationutils.UnusedFunction(testObjMap)
160
+
161
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.country", true)
162
+ validationutils.UnusedFunction(attr)
163
+ enumList := validationutils.StringSliceToInterface([]string{`IND`})
164
+ validationutils.UnusedFunction(enumList)
165
+
166
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
167
+
168
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_COUNTRY","attr":"$.context.country","enumList":["IND"],"_RETURN_":"attr are present && attr all in enumList"}`
169
+
170
+ if !validate {
171
+ result := validationutils.ValidationOutput{
172
+ TestName: "REQUIRED_CONTEXT_COUNTRY",
173
+ Valid: false,
174
+ Code: 30000,
175
+ Description: `#### **REQUIRED_CONTEXT_COUNTRY**
176
+
177
+ **All of the following must be true:**
178
+ - $.context.country must be present in the payload
179
+ - All elements of $.context.country must be in ["IND"]`,
180
+ DebugInfo: &validationutils.DebugInfo{
181
+ FedConfig: configureDebugInfo,
182
+ },
183
+ }
184
+ return []validationutils.ValidationOutput{result}, nil
185
+ }
186
+
187
+ }
188
+
189
+ result := validationutils.ValidationOutput{
190
+ TestName: "REQUIRED_CONTEXT_COUNTRY",
191
+ Valid: valid,
192
+ Code: 0,
193
+ DebugInfo: &validationutils.DebugInfo{
194
+ FedConfig: configureDebugInfo,
195
+ },
196
+ }
197
+
198
+ if valid {
199
+ result.Code = 200
200
+ } else {
201
+ result.Code = 30000
202
+ }
203
+
204
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
205
+ results = append(results, result)
206
+ results = append(results, subResults...)
207
+
208
+ return results, nil
209
+ }
210
+ var REQUIRED_CONTEXT_CITY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
211
+
212
+ if input.Config.SkipTestsDict != nil {
213
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_CITY"]; skip {
214
+ return []validationutils.ValidationOutput{}, nil
215
+ }
216
+ }
217
+
218
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
219
+
220
+ subResults := make([]validationutils.ValidationOutput, 0)
221
+ valid := true
222
+ configureDebugInfo := ""
223
+ for _, testObjMap := range scope {
224
+ validationutils.UnusedFunction(testObjMap)
225
+
226
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.city", true)
227
+ validationutils.UnusedFunction(attr)
228
+
229
+ validate := validationutils.ArePresent(attr)
230
+
231
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_CITY","attr":"$.context.city","_RETURN_":"attr are present"}`
232
+
233
+ if !validate {
234
+ result := validationutils.ValidationOutput{
235
+ TestName: "REQUIRED_CONTEXT_CITY",
236
+ Valid: false,
237
+ Code: 30000,
238
+ Description: `#### **REQUIRED_CONTEXT_CITY**
239
+
240
+ - $.context.city must be present in the payload`,
241
+ DebugInfo: &validationutils.DebugInfo{
242
+ FedConfig: configureDebugInfo,
243
+ },
244
+ }
245
+ return []validationutils.ValidationOutput{result}, nil
246
+ }
247
+
248
+ }
249
+
250
+ result := validationutils.ValidationOutput{
251
+ TestName: "REQUIRED_CONTEXT_CITY",
252
+ Valid: valid,
253
+ Code: 0,
254
+ DebugInfo: &validationutils.DebugInfo{
255
+ FedConfig: configureDebugInfo,
256
+ },
257
+ }
258
+
259
+ if valid {
260
+ result.Code = 200
261
+ } else {
262
+ result.Code = 30000
263
+ }
264
+
265
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
266
+ results = append(results, result)
267
+ results = append(results, subResults...)
268
+
269
+ return results, nil
270
+ }
271
+ var REQUIRED_CONTEXT_ACTION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
272
+
273
+ if input.Config.SkipTestsDict != nil {
274
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_ACTION"]; skip {
275
+ return []validationutils.ValidationOutput{}, nil
276
+ }
277
+ }
278
+
279
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
280
+
281
+ subResults := make([]validationutils.ValidationOutput, 0)
282
+ valid := true
283
+ configureDebugInfo := ""
284
+ for _, testObjMap := range scope {
285
+ validationutils.UnusedFunction(testObjMap)
286
+
287
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.action", true)
288
+ validationutils.UnusedFunction(attr)
289
+
290
+ validate := validationutils.ArePresent(attr)
291
+
292
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_ACTION","attr":"$.context.action","_RETURN_":"attr are present"}`
293
+
294
+ if !validate {
295
+ result := validationutils.ValidationOutput{
296
+ TestName: "REQUIRED_CONTEXT_ACTION",
297
+ Valid: false,
298
+ Code: 30000,
299
+ Description: `#### **REQUIRED_CONTEXT_ACTION**
300
+
301
+ - $.context.action must be present in the payload`,
302
+ DebugInfo: &validationutils.DebugInfo{
303
+ FedConfig: configureDebugInfo,
304
+ },
305
+ }
306
+ return []validationutils.ValidationOutput{result}, nil
307
+ }
308
+
309
+ }
310
+
311
+ result := validationutils.ValidationOutput{
312
+ TestName: "REQUIRED_CONTEXT_ACTION",
313
+ Valid: valid,
314
+ Code: 0,
315
+ DebugInfo: &validationutils.DebugInfo{
316
+ FedConfig: configureDebugInfo,
317
+ },
318
+ }
319
+
320
+ if valid {
321
+ result.Code = 200
322
+ } else {
323
+ result.Code = 30000
324
+ }
325
+
326
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
327
+ results = append(results, result)
328
+ results = append(results, subResults...)
329
+
330
+ return results, nil
331
+ }
332
+ var REQUIRED_CONTEXT_CORE_VERSION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
333
+
334
+ if input.Config.SkipTestsDict != nil {
335
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_CORE_VERSION"]; skip {
336
+ return []validationutils.ValidationOutput{}, nil
337
+ }
338
+ }
339
+
340
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
341
+
342
+ subResults := make([]validationutils.ValidationOutput, 0)
343
+ valid := true
344
+ configureDebugInfo := ""
345
+ for _, testObjMap := range scope {
346
+ validationutils.UnusedFunction(testObjMap)
347
+
348
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.core_version", true)
349
+ validationutils.UnusedFunction(attr)
350
+
351
+ validate := validationutils.ArePresent(attr)
352
+
353
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_CORE_VERSION","attr":"$.context.core_version","_RETURN_":"attr are present"}`
354
+
355
+ if !validate {
356
+ result := validationutils.ValidationOutput{
357
+ TestName: "REQUIRED_CONTEXT_CORE_VERSION",
358
+ Valid: false,
359
+ Code: 30000,
360
+ Description: `#### **REQUIRED_CONTEXT_CORE_VERSION**
361
+
362
+ - $.context.core_version must be present in the payload`,
363
+ DebugInfo: &validationutils.DebugInfo{
364
+ FedConfig: configureDebugInfo,
365
+ },
366
+ }
367
+ return []validationutils.ValidationOutput{result}, nil
368
+ }
369
+
370
+ }
371
+
372
+ result := validationutils.ValidationOutput{
373
+ TestName: "REQUIRED_CONTEXT_CORE_VERSION",
374
+ Valid: valid,
375
+ Code: 0,
376
+ DebugInfo: &validationutils.DebugInfo{
377
+ FedConfig: configureDebugInfo,
378
+ },
379
+ }
380
+
381
+ if valid {
382
+ result.Code = 200
383
+ } else {
384
+ result.Code = 30000
385
+ }
386
+
387
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
388
+ results = append(results, result)
389
+ results = append(results, subResults...)
390
+
391
+ return results, nil
392
+ }
393
+ var REQUIRED_CONTEXT_BAP_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
394
+
395
+ if input.Config.SkipTestsDict != nil {
396
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BAP_ID"]; skip {
397
+ return []validationutils.ValidationOutput{}, nil
398
+ }
399
+ }
400
+
401
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
402
+
403
+ subResults := make([]validationutils.ValidationOutput, 0)
404
+ valid := true
405
+ configureDebugInfo := ""
406
+ for _, testObjMap := range scope {
407
+ validationutils.UnusedFunction(testObjMap)
408
+
409
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bap_id", true)
410
+ validationutils.UnusedFunction(attr)
411
+
412
+ validate := validationutils.ArePresent(attr)
413
+
414
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BAP_ID","attr":"$.context.bap_id","_RETURN_":"attr are present"}`
415
+
416
+ if !validate {
417
+ result := validationutils.ValidationOutput{
418
+ TestName: "REQUIRED_CONTEXT_BAP_ID",
419
+ Valid: false,
420
+ Code: 30000,
421
+ Description: `#### **REQUIRED_CONTEXT_BAP_ID**
422
+
423
+ - $.context.bap_id must be present in the payload`,
424
+ DebugInfo: &validationutils.DebugInfo{
425
+ FedConfig: configureDebugInfo,
426
+ },
427
+ }
428
+ return []validationutils.ValidationOutput{result}, nil
429
+ }
430
+
431
+ }
432
+
433
+ result := validationutils.ValidationOutput{
434
+ TestName: "REQUIRED_CONTEXT_BAP_ID",
435
+ Valid: valid,
436
+ Code: 0,
437
+ DebugInfo: &validationutils.DebugInfo{
438
+ FedConfig: configureDebugInfo,
439
+ },
440
+ }
441
+
442
+ if valid {
443
+ result.Code = 200
444
+ } else {
445
+ result.Code = 30000
446
+ }
447
+
448
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
449
+ results = append(results, result)
450
+ results = append(results, subResults...)
451
+
452
+ return results, nil
453
+ }
454
+ var REQUIRED_CONTEXT_BAP_URI = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
455
+
456
+ if input.Config.SkipTestsDict != nil {
457
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BAP_URI"]; skip {
458
+ return []validationutils.ValidationOutput{}, nil
459
+ }
460
+ }
461
+
462
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
463
+
464
+ subResults := make([]validationutils.ValidationOutput, 0)
465
+ valid := true
466
+ configureDebugInfo := ""
467
+ for _, testObjMap := range scope {
468
+ validationutils.UnusedFunction(testObjMap)
469
+
470
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bap_uri", true)
471
+ validationutils.UnusedFunction(attr)
472
+
473
+ validate := validationutils.ArePresent(attr)
474
+
475
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BAP_URI","attr":"$.context.bap_uri","_RETURN_":"attr are present"}`
476
+
477
+ if !validate {
478
+ result := validationutils.ValidationOutput{
479
+ TestName: "REQUIRED_CONTEXT_BAP_URI",
480
+ Valid: false,
481
+ Code: 30000,
482
+ Description: `#### **REQUIRED_CONTEXT_BAP_URI**
483
+
484
+ - $.context.bap_uri must be present in the payload`,
485
+ DebugInfo: &validationutils.DebugInfo{
486
+ FedConfig: configureDebugInfo,
487
+ },
488
+ }
489
+ return []validationutils.ValidationOutput{result}, nil
490
+ }
491
+
492
+ }
493
+
494
+ result := validationutils.ValidationOutput{
495
+ TestName: "REQUIRED_CONTEXT_BAP_URI",
496
+ Valid: valid,
497
+ Code: 0,
498
+ DebugInfo: &validationutils.DebugInfo{
499
+ FedConfig: configureDebugInfo,
500
+ },
501
+ }
502
+
503
+ if valid {
504
+ result.Code = 200
505
+ } else {
506
+ result.Code = 30000
507
+ }
508
+
509
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
510
+ results = append(results, result)
511
+ results = append(results, subResults...)
512
+
513
+ return results, nil
514
+ }
515
+ var REQUIRED_CONTEXT_TRANSACTION_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
516
+
517
+ if input.Config.SkipTestsDict != nil {
518
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TRANSACTION_ID"]; skip {
519
+ return []validationutils.ValidationOutput{}, nil
520
+ }
521
+ }
522
+
523
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
524
+
525
+ subResults := make([]validationutils.ValidationOutput, 0)
526
+ valid := true
527
+ configureDebugInfo := ""
528
+ for _, testObjMap := range scope {
529
+ validationutils.UnusedFunction(testObjMap)
530
+
531
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.transaction_id", true)
532
+ validationutils.UnusedFunction(attr)
533
+
534
+ validate := validationutils.ArePresent(attr)
535
+
536
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TRANSACTION_ID","attr":"$.context.transaction_id","_RETURN_":"attr are present"}`
537
+
538
+ if !validate {
539
+ result := validationutils.ValidationOutput{
540
+ TestName: "REQUIRED_CONTEXT_TRANSACTION_ID",
541
+ Valid: false,
542
+ Code: 30000,
543
+ Description: `#### **REQUIRED_CONTEXT_TRANSACTION_ID**
544
+
545
+ - $.context.transaction_id must be present in the payload`,
546
+ DebugInfo: &validationutils.DebugInfo{
547
+ FedConfig: configureDebugInfo,
548
+ },
549
+ }
550
+ return []validationutils.ValidationOutput{result}, nil
551
+ }
552
+
553
+ }
554
+
555
+ result := validationutils.ValidationOutput{
556
+ TestName: "REQUIRED_CONTEXT_TRANSACTION_ID",
557
+ Valid: valid,
558
+ Code: 0,
559
+ DebugInfo: &validationutils.DebugInfo{
560
+ FedConfig: configureDebugInfo,
561
+ },
562
+ }
563
+
564
+ if valid {
565
+ result.Code = 200
566
+ } else {
567
+ result.Code = 30000
568
+ }
569
+
570
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
571
+ results = append(results, result)
572
+ results = append(results, subResults...)
573
+
574
+ return results, nil
575
+ }
576
+ var REQUIRED_CONTEXT_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
577
+
578
+ if input.Config.SkipTestsDict != nil {
579
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_MESSAGE_ID"]; skip {
580
+ return []validationutils.ValidationOutput{}, nil
581
+ }
582
+ }
583
+
584
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
585
+
586
+ subResults := make([]validationutils.ValidationOutput, 0)
587
+ valid := true
588
+ configureDebugInfo := ""
589
+ for _, testObjMap := range scope {
590
+ validationutils.UnusedFunction(testObjMap)
591
+
592
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.message_id", true)
593
+ validationutils.UnusedFunction(attr)
594
+
595
+ validate := validationutils.ArePresent(attr)
596
+
597
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_MESSAGE_ID","attr":"$.context.message_id","_RETURN_":"attr are present"}`
598
+
599
+ if !validate {
600
+ result := validationutils.ValidationOutput{
601
+ TestName: "REQUIRED_CONTEXT_MESSAGE_ID",
602
+ Valid: false,
603
+ Code: 30000,
604
+ Description: `#### **REQUIRED_CONTEXT_MESSAGE_ID**
605
+
606
+ - $.context.message_id must be present in the payload`,
607
+ DebugInfo: &validationutils.DebugInfo{
608
+ FedConfig: configureDebugInfo,
609
+ },
610
+ }
611
+ return []validationutils.ValidationOutput{result}, nil
612
+ }
613
+
614
+ }
615
+
616
+ result := validationutils.ValidationOutput{
617
+ TestName: "REQUIRED_CONTEXT_MESSAGE_ID",
618
+ Valid: valid,
619
+ Code: 0,
620
+ DebugInfo: &validationutils.DebugInfo{
621
+ FedConfig: configureDebugInfo,
622
+ },
623
+ }
624
+
625
+ if valid {
626
+ result.Code = 200
627
+ } else {
628
+ result.Code = 30000
629
+ }
630
+
631
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
632
+ results = append(results, result)
633
+ results = append(results, subResults...)
634
+
635
+ return results, nil
636
+ }
637
+ var REQUIRED_CONTEXT_TIMESTAMP = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
638
+
639
+ if input.Config.SkipTestsDict != nil {
640
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TIMESTAMP"]; skip {
641
+ return []validationutils.ValidationOutput{}, nil
642
+ }
643
+ }
644
+
645
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
646
+
647
+ subResults := make([]validationutils.ValidationOutput, 0)
648
+ valid := true
649
+ configureDebugInfo := ""
650
+ for _, testObjMap := range scope {
651
+ validationutils.UnusedFunction(testObjMap)
652
+
653
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.timestamp", true)
654
+ validationutils.UnusedFunction(attr)
655
+
656
+ validate := validationutils.ArePresent(attr)
657
+
658
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TIMESTAMP","attr":"$.context.timestamp","_RETURN_":"attr are present"}`
659
+
660
+ if !validate {
661
+ result := validationutils.ValidationOutput{
662
+ TestName: "REQUIRED_CONTEXT_TIMESTAMP",
663
+ Valid: false,
664
+ Code: 30000,
665
+ Description: `#### **REQUIRED_CONTEXT_TIMESTAMP**
666
+
667
+ - $.context.timestamp must be present in the payload`,
668
+ DebugInfo: &validationutils.DebugInfo{
669
+ FedConfig: configureDebugInfo,
670
+ },
671
+ }
672
+ return []validationutils.ValidationOutput{result}, nil
673
+ }
674
+
675
+ }
676
+
677
+ result := validationutils.ValidationOutput{
678
+ TestName: "REQUIRED_CONTEXT_TIMESTAMP",
679
+ Valid: valid,
680
+ Code: 0,
681
+ DebugInfo: &validationutils.DebugInfo{
682
+ FedConfig: configureDebugInfo,
683
+ },
684
+ }
685
+
686
+ if valid {
687
+ result.Code = 200
688
+ } else {
689
+ result.Code = 30000
690
+ }
691
+
692
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
693
+ results = append(results, result)
694
+ results = append(results, subResults...)
695
+
696
+ return results, nil
697
+ }
698
+ var REQUIRED_CONTEXT_TTL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
699
+
700
+ if input.Config.SkipTestsDict != nil {
701
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TTL"]; skip {
702
+ return []validationutils.ValidationOutput{}, nil
703
+ }
704
+ }
705
+
706
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
707
+
708
+ subResults := make([]validationutils.ValidationOutput, 0)
709
+ valid := true
710
+ configureDebugInfo := ""
711
+ for _, testObjMap := range scope {
712
+ validationutils.UnusedFunction(testObjMap)
713
+
714
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.ttl", true)
715
+ validationutils.UnusedFunction(attr)
716
+
717
+ validate := validationutils.ArePresent(attr)
718
+
719
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TTL","attr":"$.context.ttl","_RETURN_":"attr are present"}`
720
+
721
+ if !validate {
722
+ result := validationutils.ValidationOutput{
723
+ TestName: "REQUIRED_CONTEXT_TTL",
724
+ Valid: false,
725
+ Code: 30000,
726
+ Description: `#### **REQUIRED_CONTEXT_TTL**
727
+
728
+ - $.context.ttl must be present in the payload`,
729
+ DebugInfo: &validationutils.DebugInfo{
730
+ FedConfig: configureDebugInfo,
731
+ },
732
+ }
733
+ return []validationutils.ValidationOutput{result}, nil
734
+ }
735
+
736
+ }
737
+
738
+ result := validationutils.ValidationOutput{
739
+ TestName: "REQUIRED_CONTEXT_TTL",
740
+ Valid: valid,
741
+ Code: 0,
742
+ DebugInfo: &validationutils.DebugInfo{
743
+ FedConfig: configureDebugInfo,
744
+ },
745
+ }
746
+
747
+ if valid {
748
+ result.Code = 200
749
+ } else {
750
+ result.Code = 30000
751
+ }
752
+
753
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
754
+ results = append(results, result)
755
+ results = append(results, subResults...)
756
+
757
+ return results, nil
758
+ }
759
+ var REQUIRED_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
760
+
761
+ if input.Config.SkipTestsDict != nil {
762
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID"]; skip {
763
+ return []validationutils.ValidationOutput{}, nil
764
+ }
765
+ }
766
+
767
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
768
+
769
+ subResults := make([]validationutils.ValidationOutput, 0)
770
+ valid := true
771
+ configureDebugInfo := ""
772
+ for _, testObjMap := range scope {
773
+ validationutils.UnusedFunction(testObjMap)
774
+
775
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.category.id", true)
776
+ validationutils.UnusedFunction(attr)
777
+ enumList := validationutils.StringSliceToInterface([]string{`Express Delivery`, `Standard Delivery`, `Immediate Delivery`, `Next Day Delivery`, `Same Day Delivery`, `Instant Delivery`})
778
+ validationutils.UnusedFunction(enumList)
779
+
780
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
781
+
782
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID","attr":"$.message.intent.category.id","_RETURN_":"attr are present && attr all in enumList","enumList":["Express Delivery","Standard Delivery","Immediate Delivery","Next Day Delivery","Same Day Delivery","Instant Delivery"]}`
783
+
784
+ if !validate {
785
+ result := validationutils.ValidationOutput{
786
+ TestName: "REQUIRED_MESSAGE_ID",
787
+ Valid: false,
788
+ Code: 30000,
789
+ Description: `#### **REQUIRED_MESSAGE_ID**
790
+
791
+ **All of the following must be true:**
792
+ - $.message.intent.category.id must be present in the payload
793
+ - All elements of $.message.intent.category.id must be in ["Express Delivery", "Standard Delivery", "Immediate Delivery", "Next Day Delivery", "Same Day Delivery", "Instant Delivery"]`,
794
+ DebugInfo: &validationutils.DebugInfo{
795
+ FedConfig: configureDebugInfo,
796
+ },
797
+ }
798
+ return []validationutils.ValidationOutput{result}, nil
799
+ }
800
+
801
+ }
802
+
803
+ result := validationutils.ValidationOutput{
804
+ TestName: "REQUIRED_MESSAGE_ID",
805
+ Valid: valid,
806
+ Code: 0,
807
+ DebugInfo: &validationutils.DebugInfo{
808
+ FedConfig: configureDebugInfo,
809
+ },
810
+ }
811
+
812
+ if valid {
813
+ result.Code = 200
814
+ } else {
815
+ result.Code = 30000
816
+ }
817
+
818
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
819
+ results = append(results, result)
820
+ results = append(results, subResults...)
821
+
822
+ return results, nil
823
+ }
824
+ var REQUIRED_MESSAGE_DAYS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
825
+
826
+ if input.Config.SkipTestsDict != nil {
827
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_DAYS"]; skip {
828
+ return []validationutils.ValidationOutput{}, nil
829
+ }
830
+ }
831
+
832
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
833
+
834
+ subResults := make([]validationutils.ValidationOutput, 0)
835
+ valid := true
836
+ configureDebugInfo := ""
837
+ for _, testObjMap := range scope {
838
+ validationutils.UnusedFunction(testObjMap)
839
+
840
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.provider.time.days", true)
841
+ validationutils.UnusedFunction(attr)
842
+
843
+ validate := validationutils.ArePresent(attr)
844
+
845
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_DAYS","attr":"$.message.intent.provider.time.days","_RETURN_":"attr are present"}`
846
+
847
+ if !validate {
848
+ result := validationutils.ValidationOutput{
849
+ TestName: "REQUIRED_MESSAGE_DAYS",
850
+ Valid: false,
851
+ Code: 30000,
852
+ Description: `#### **REQUIRED_MESSAGE_DAYS**
853
+
854
+ - $.message.intent.provider.time.days must be present in the payload`,
855
+ DebugInfo: &validationutils.DebugInfo{
856
+ FedConfig: configureDebugInfo,
857
+ },
858
+ }
859
+ return []validationutils.ValidationOutput{result}, nil
860
+ }
861
+
862
+ }
863
+
864
+ result := validationutils.ValidationOutput{
865
+ TestName: "REQUIRED_MESSAGE_DAYS",
866
+ Valid: valid,
867
+ Code: 0,
868
+ DebugInfo: &validationutils.DebugInfo{
869
+ FedConfig: configureDebugInfo,
870
+ },
871
+ }
872
+
873
+ if valid {
874
+ result.Code = 200
875
+ } else {
876
+ result.Code = 30000
877
+ }
878
+
879
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
880
+ results = append(results, result)
881
+ results = append(results, subResults...)
882
+
883
+ return results, nil
884
+ }
885
+ var REQUIRED_MESSAGE_HOLIDAYS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
886
+
887
+ if input.Config.SkipTestsDict != nil {
888
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_HOLIDAYS"]; skip {
889
+ return []validationutils.ValidationOutput{}, nil
890
+ }
891
+ }
892
+
893
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
894
+
895
+ subResults := make([]validationutils.ValidationOutput, 0)
896
+ valid := true
897
+ configureDebugInfo := ""
898
+ for _, testObjMap := range scope {
899
+ validationutils.UnusedFunction(testObjMap)
900
+
901
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.provider.time.schedule.holidays[*]", true)
902
+ validationutils.UnusedFunction(attr)
903
+ reg := validationutils.StringSliceToInterface([]string{`^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$`})
904
+ validationutils.UnusedFunction(reg)
905
+
906
+ skipCheck := !(validationutils.ArePresent(attr))
907
+ if skipCheck {
908
+ continue
909
+ }
910
+
911
+ validate := validationutils.FollowRegex(attr, reg)
912
+
913
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_HOLIDAYS","attr":"$.message.intent.provider.time.schedule.holidays[*]","reg":["^\\\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01])$"],"_CONTINUE_":"!(attr are present)","_RETURN_":"attr follow regex reg"}`
914
+
915
+ if !validate {
916
+ result := validationutils.ValidationOutput{
917
+ TestName: "REQUIRED_MESSAGE_HOLIDAYS",
918
+ Valid: false,
919
+ Code: 30000,
920
+ Description: `#### **REQUIRED_MESSAGE_HOLIDAYS**
921
+
922
+ - All elements of $.message.intent.provider.time.schedule.holidays[*] must follow every regex in ["^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$"]
923
+
924
+ > **Skip if:**
925
+ >
926
+ > - $.message.intent.provider.time.schedule.holidays[*] is not in the payload`,
927
+ DebugInfo: &validationutils.DebugInfo{
928
+ FedConfig: configureDebugInfo,
929
+ },
930
+ }
931
+ return []validationutils.ValidationOutput{result}, nil
932
+ }
933
+
934
+ }
935
+
936
+ result := validationutils.ValidationOutput{
937
+ TestName: "REQUIRED_MESSAGE_HOLIDAYS",
938
+ Valid: valid,
939
+ Code: 0,
940
+ DebugInfo: &validationutils.DebugInfo{
941
+ FedConfig: configureDebugInfo,
942
+ },
943
+ }
944
+
945
+ if valid {
946
+ result.Code = 200
947
+ } else {
948
+ result.Code = 30000
949
+ }
950
+
951
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
952
+ results = append(results, result)
953
+ results = append(results, subResults...)
954
+
955
+ return results, nil
956
+ }
957
+ var REQUIRED_MESSAGE_DURATION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
958
+
959
+ if input.Config.SkipTestsDict != nil {
960
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_DURATION"]; skip {
961
+ return []validationutils.ValidationOutput{}, nil
962
+ }
963
+ }
964
+
965
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
966
+
967
+ subResults := make([]validationutils.ValidationOutput, 0)
968
+ valid := true
969
+ configureDebugInfo := ""
970
+ for _, testObjMap := range scope {
971
+ validationutils.UnusedFunction(testObjMap)
972
+
973
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.provider.time.duration", true)
974
+ validationutils.UnusedFunction(attr)
975
+ reg := validationutils.StringSliceToInterface([]string{`^(P\d+D|PT\d+H|PT\d+M)$`})
976
+ validationutils.UnusedFunction(reg)
977
+
978
+ skipCheck := !(validationutils.ArePresent(attr))
979
+ if skipCheck {
980
+ continue
981
+ }
982
+
983
+ validate := validationutils.FollowRegex(attr, reg)
984
+
985
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_DURATION","attr":"$.message.intent.provider.time.duration","reg":["^(P\\\\d+D|PT\\\\d+H|PT\\\\d+M)$"],"_RETURN_":"attr follow regex reg","_CONTINUE_":"!(attr are present)"}`
986
+
987
+ if !validate {
988
+ result := validationutils.ValidationOutput{
989
+ TestName: "REQUIRED_MESSAGE_DURATION",
990
+ Valid: false,
991
+ Code: 30000,
992
+ Description: `#### **REQUIRED_MESSAGE_DURATION**
993
+
994
+ - All elements of $.message.intent.provider.time.duration must follow every regex in ["^(P\\d+D|PT\\d+H|PT\\d+M)$"]
995
+
996
+ > **Skip if:**
997
+ >
998
+ > - $.message.intent.provider.time.duration is not in the payload`,
999
+ DebugInfo: &validationutils.DebugInfo{
1000
+ FedConfig: configureDebugInfo,
1001
+ },
1002
+ }
1003
+ return []validationutils.ValidationOutput{result}, nil
1004
+ }
1005
+
1006
+ }
1007
+
1008
+ result := validationutils.ValidationOutput{
1009
+ TestName: "REQUIRED_MESSAGE_DURATION",
1010
+ Valid: valid,
1011
+ Code: 0,
1012
+ DebugInfo: &validationutils.DebugInfo{
1013
+ FedConfig: configureDebugInfo,
1014
+ },
1015
+ }
1016
+
1017
+ if valid {
1018
+ result.Code = 200
1019
+ } else {
1020
+ result.Code = 30000
1021
+ }
1022
+
1023
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1024
+ results = append(results, result)
1025
+ results = append(results, subResults...)
1026
+
1027
+ return results, nil
1028
+ }
1029
+ var REQUIRED_MESSAGE_START = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1030
+
1031
+ if input.Config.SkipTestsDict != nil {
1032
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_START"]; skip {
1033
+ return []validationutils.ValidationOutput{}, nil
1034
+ }
1035
+ }
1036
+
1037
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1038
+
1039
+ subResults := make([]validationutils.ValidationOutput, 0)
1040
+ valid := true
1041
+ configureDebugInfo := ""
1042
+ for _, testObjMap := range scope {
1043
+ validationutils.UnusedFunction(testObjMap)
1044
+
1045
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.provider.time.range.start", true)
1046
+ validationutils.UnusedFunction(attr)
1047
+
1048
+ validate := validationutils.ArePresent(attr)
1049
+
1050
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_START","attr":"$.message.intent.provider.time.range.start","_RETURN_":"attr are present"}`
1051
+
1052
+ if !validate {
1053
+ result := validationutils.ValidationOutput{
1054
+ TestName: "REQUIRED_MESSAGE_START",
1055
+ Valid: false,
1056
+ Code: 30000,
1057
+ Description: `#### **REQUIRED_MESSAGE_START**
1058
+
1059
+ - $.message.intent.provider.time.range.start must be present in the payload`,
1060
+ DebugInfo: &validationutils.DebugInfo{
1061
+ FedConfig: configureDebugInfo,
1062
+ },
1063
+ }
1064
+ return []validationutils.ValidationOutput{result}, nil
1065
+ }
1066
+
1067
+ }
1068
+
1069
+ result := validationutils.ValidationOutput{
1070
+ TestName: "REQUIRED_MESSAGE_START",
1071
+ Valid: valid,
1072
+ Code: 0,
1073
+ DebugInfo: &validationutils.DebugInfo{
1074
+ FedConfig: configureDebugInfo,
1075
+ },
1076
+ }
1077
+
1078
+ if valid {
1079
+ result.Code = 200
1080
+ } else {
1081
+ result.Code = 30000
1082
+ }
1083
+
1084
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1085
+ results = append(results, result)
1086
+ results = append(results, subResults...)
1087
+
1088
+ return results, nil
1089
+ }
1090
+ var REQUIRED_MESSAGE_END = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1091
+
1092
+ if input.Config.SkipTestsDict != nil {
1093
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_END"]; skip {
1094
+ return []validationutils.ValidationOutput{}, nil
1095
+ }
1096
+ }
1097
+
1098
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1099
+
1100
+ subResults := make([]validationutils.ValidationOutput, 0)
1101
+ valid := true
1102
+ configureDebugInfo := ""
1103
+ for _, testObjMap := range scope {
1104
+ validationutils.UnusedFunction(testObjMap)
1105
+
1106
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.provider.time.range.end", true)
1107
+ validationutils.UnusedFunction(attr)
1108
+
1109
+ validate := validationutils.ArePresent(attr)
1110
+
1111
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_END","attr":"$.message.intent.provider.time.range.end","_RETURN_":"attr are present"}`
1112
+
1113
+ if !validate {
1114
+ result := validationutils.ValidationOutput{
1115
+ TestName: "REQUIRED_MESSAGE_END",
1116
+ Valid: false,
1117
+ Code: 30000,
1118
+ Description: `#### **REQUIRED_MESSAGE_END**
1119
+
1120
+ - $.message.intent.provider.time.range.end must be present in the payload`,
1121
+ DebugInfo: &validationutils.DebugInfo{
1122
+ FedConfig: configureDebugInfo,
1123
+ },
1124
+ }
1125
+ return []validationutils.ValidationOutput{result}, nil
1126
+ }
1127
+
1128
+ }
1129
+
1130
+ result := validationutils.ValidationOutput{
1131
+ TestName: "REQUIRED_MESSAGE_END",
1132
+ Valid: valid,
1133
+ Code: 0,
1134
+ DebugInfo: &validationutils.DebugInfo{
1135
+ FedConfig: configureDebugInfo,
1136
+ },
1137
+ }
1138
+
1139
+ if valid {
1140
+ result.Code = 200
1141
+ } else {
1142
+ result.Code = 30000
1143
+ }
1144
+
1145
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1146
+ results = append(results, result)
1147
+ results = append(results, subResults...)
1148
+
1149
+ return results, nil
1150
+ }
1151
+ var REQUIRED_MESSAGE_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1152
+
1153
+ if input.Config.SkipTestsDict != nil {
1154
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_TYPE"]; skip {
1155
+ return []validationutils.ValidationOutput{}, nil
1156
+ }
1157
+ }
1158
+
1159
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1160
+
1161
+ subResults := make([]validationutils.ValidationOutput, 0)
1162
+ valid := true
1163
+ configureDebugInfo := ""
1164
+ for _, testObjMap := range scope {
1165
+ validationutils.UnusedFunction(testObjMap)
1166
+
1167
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1168
+ validationutils.UnusedFunction(attr)
1169
+ enumList := validationutils.StringSliceToInterface([]string{`Delivery`, `Return`, `Batch`, `RTO`, `PTL`, `FTL`, `FIFO`})
1170
+ validationutils.UnusedFunction(enumList)
1171
+
1172
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1173
+
1174
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_TYPE","attr":"$.message.intent.fulfillment.type","_RETURN_":"attr are present && attr all in enumList","enumList":["Delivery","Return","Batch","RTO","PTL","FTL","FIFO"]}`
1175
+
1176
+ if !validate {
1177
+ result := validationutils.ValidationOutput{
1178
+ TestName: "REQUIRED_MESSAGE_TYPE",
1179
+ Valid: false,
1180
+ Code: 30000,
1181
+ Description: `#### **REQUIRED_MESSAGE_TYPE**
1182
+
1183
+ **All of the following must be true:**
1184
+ - $.message.intent.fulfillment.type must be present in the payload
1185
+ - All elements of $.message.intent.fulfillment.type must be in ["Delivery", "Return", "Batch", "RTO", "PTL", "FTL", "FIFO"]`,
1186
+ DebugInfo: &validationutils.DebugInfo{
1187
+ FedConfig: configureDebugInfo,
1188
+ },
1189
+ }
1190
+ return []validationutils.ValidationOutput{result}, nil
1191
+ }
1192
+
1193
+ }
1194
+
1195
+ result := validationutils.ValidationOutput{
1196
+ TestName: "REQUIRED_MESSAGE_TYPE",
1197
+ Valid: valid,
1198
+ Code: 0,
1199
+ DebugInfo: &validationutils.DebugInfo{
1200
+ FedConfig: configureDebugInfo,
1201
+ },
1202
+ }
1203
+
1204
+ if valid {
1205
+ result.Code = 200
1206
+ } else {
1207
+ result.Code = 30000
1208
+ }
1209
+
1210
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1211
+ results = append(results, result)
1212
+ results = append(results, subResults...)
1213
+
1214
+ return results, nil
1215
+ }
1216
+ var REQUIRED_MESSAGE_GPS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1217
+
1218
+ if input.Config.SkipTestsDict != nil {
1219
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_GPS"]; skip {
1220
+ return []validationutils.ValidationOutput{}, nil
1221
+ }
1222
+ }
1223
+
1224
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1225
+
1226
+ subResults := make([]validationutils.ValidationOutput, 0)
1227
+ valid := true
1228
+ configureDebugInfo := ""
1229
+ for _, testObjMap := range scope {
1230
+ validationutils.UnusedFunction(testObjMap)
1231
+
1232
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.start.location.gps", true)
1233
+ validationutils.UnusedFunction(attr)
1234
+ reg := validationutils.StringSliceToInterface([]string{`^-?\d+\.\d{4,},-?\d+\.\d{4,}$`})
1235
+ validationutils.UnusedFunction(reg)
1236
+
1237
+ validate := validationutils.FollowRegex(attr, reg)
1238
+
1239
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_GPS","attr":"$.message.intent.fulfillment.start.location.gps","reg":["^-?\\\\d+\\\\.\\\\d{4,},-?\\\\d+\\\\.\\\\d{4,}$"],"_RETURN_":"attr follow regex reg"}`
1240
+
1241
+ if !validate {
1242
+ result := validationutils.ValidationOutput{
1243
+ TestName: "REQUIRED_MESSAGE_GPS",
1244
+ Valid: false,
1245
+ Code: 30000,
1246
+ Description: `#### **REQUIRED_MESSAGE_GPS**
1247
+
1248
+ - All elements of $.message.intent.fulfillment.start.location.gps must follow every regex in ["^-?\\d+\\.\\d{4,},-?\\d+\\.\\d{4,}$"]`,
1249
+ DebugInfo: &validationutils.DebugInfo{
1250
+ FedConfig: configureDebugInfo,
1251
+ },
1252
+ }
1253
+ return []validationutils.ValidationOutput{result}, nil
1254
+ }
1255
+
1256
+ }
1257
+
1258
+ result := validationutils.ValidationOutput{
1259
+ TestName: "REQUIRED_MESSAGE_GPS",
1260
+ Valid: valid,
1261
+ Code: 0,
1262
+ DebugInfo: &validationutils.DebugInfo{
1263
+ FedConfig: configureDebugInfo,
1264
+ },
1265
+ }
1266
+
1267
+ if valid {
1268
+ result.Code = 200
1269
+ } else {
1270
+ result.Code = 30000
1271
+ }
1272
+
1273
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1274
+ results = append(results, result)
1275
+ results = append(results, subResults...)
1276
+
1277
+ return results, nil
1278
+ }
1279
+ var REQUIRED_MESSAGE_AREA_CODE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1280
+
1281
+ if input.Config.SkipTestsDict != nil {
1282
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_AREA_CODE"]; skip {
1283
+ return []validationutils.ValidationOutput{}, nil
1284
+ }
1285
+ }
1286
+
1287
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1288
+
1289
+ subResults := make([]validationutils.ValidationOutput, 0)
1290
+ valid := true
1291
+ configureDebugInfo := ""
1292
+ for _, testObjMap := range scope {
1293
+ validationutils.UnusedFunction(testObjMap)
1294
+
1295
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.start.location.address.area_code", true)
1296
+ validationutils.UnusedFunction(attr)
1297
+
1298
+ validate := validationutils.ArePresent(attr)
1299
+
1300
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_AREA_CODE","attr":"$.message.intent.fulfillment.start.location.address.area_code","_RETURN_":"attr are present"}`
1301
+
1302
+ if !validate {
1303
+ result := validationutils.ValidationOutput{
1304
+ TestName: "REQUIRED_MESSAGE_AREA_CODE",
1305
+ Valid: false,
1306
+ Code: 30000,
1307
+ Description: `#### **REQUIRED_MESSAGE_AREA_CODE**
1308
+
1309
+ - $.message.intent.fulfillment.start.location.address.area_code must be present in the payload`,
1310
+ DebugInfo: &validationutils.DebugInfo{
1311
+ FedConfig: configureDebugInfo,
1312
+ },
1313
+ }
1314
+ return []validationutils.ValidationOutput{result}, nil
1315
+ }
1316
+
1317
+ }
1318
+
1319
+ result := validationutils.ValidationOutput{
1320
+ TestName: "REQUIRED_MESSAGE_AREA_CODE",
1321
+ Valid: valid,
1322
+ Code: 0,
1323
+ DebugInfo: &validationutils.DebugInfo{
1324
+ FedConfig: configureDebugInfo,
1325
+ },
1326
+ }
1327
+
1328
+ if valid {
1329
+ result.Code = 200
1330
+ } else {
1331
+ result.Code = 30000
1332
+ }
1333
+
1334
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1335
+ results = append(results, result)
1336
+ results = append(results, subResults...)
1337
+
1338
+ return results, nil
1339
+ }
1340
+ var REQUIRED_MESSAGE_GPS_21 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1341
+
1342
+ if input.Config.SkipTestsDict != nil {
1343
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_GPS_21"]; skip {
1344
+ return []validationutils.ValidationOutput{}, nil
1345
+ }
1346
+ }
1347
+
1348
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1349
+
1350
+ subResults := make([]validationutils.ValidationOutput, 0)
1351
+ valid := true
1352
+ configureDebugInfo := ""
1353
+ for _, testObjMap := range scope {
1354
+ validationutils.UnusedFunction(testObjMap)
1355
+
1356
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1357
+ validationutils.UnusedFunction(fulfillmentType)
1358
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
1359
+ validationutils.UnusedFunction(fulType)
1360
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.end.location.gps", true)
1361
+ validationutils.UnusedFunction(attr)
1362
+ reg := validationutils.StringSliceToInterface([]string{`^-?\d+\.\d{4,},-?\d+\.\d{4,}$`})
1363
+ validationutils.UnusedFunction(reg)
1364
+
1365
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
1366
+ if skipCheck {
1367
+ continue
1368
+ }
1369
+
1370
+ validate := validationutils.FollowRegex(attr, reg)
1371
+
1372
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_GPS_21","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent.fulfillment.end.location.gps","reg":["^-?\\\\d+\\\\.\\\\d{4,},-?\\\\d+\\\\.\\\\d{4,}$"],"_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr follow regex reg"}`
1373
+
1374
+ if !validate {
1375
+ result := validationutils.ValidationOutput{
1376
+ TestName: "REQUIRED_MESSAGE_GPS_21",
1377
+ Valid: false,
1378
+ Code: 30000,
1379
+ Description: `#### **REQUIRED_MESSAGE_GPS_21**
1380
+
1381
+ - All elements of $.message.intent.fulfillment.end.location.gps must follow every regex in ["^-?\\d+\\.\\d{4,},-?\\d+\\.\\d{4,}$"]
1382
+
1383
+ > **Skip if:**
1384
+ >
1385
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
1386
+ DebugInfo: &validationutils.DebugInfo{
1387
+ FedConfig: configureDebugInfo,
1388
+ },
1389
+ }
1390
+ return []validationutils.ValidationOutput{result}, nil
1391
+ }
1392
+
1393
+ }
1394
+
1395
+ result := validationutils.ValidationOutput{
1396
+ TestName: "REQUIRED_MESSAGE_GPS_21",
1397
+ Valid: valid,
1398
+ Code: 0,
1399
+ DebugInfo: &validationutils.DebugInfo{
1400
+ FedConfig: configureDebugInfo,
1401
+ },
1402
+ }
1403
+
1404
+ if valid {
1405
+ result.Code = 200
1406
+ } else {
1407
+ result.Code = 30000
1408
+ }
1409
+
1410
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1411
+ results = append(results, result)
1412
+ results = append(results, subResults...)
1413
+
1414
+ return results, nil
1415
+ }
1416
+ var REQUIRED_MESSAGE_AREA_CODE_22 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1417
+
1418
+ if input.Config.SkipTestsDict != nil {
1419
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_AREA_CODE_22"]; skip {
1420
+ return []validationutils.ValidationOutput{}, nil
1421
+ }
1422
+ }
1423
+
1424
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1425
+
1426
+ subResults := make([]validationutils.ValidationOutput, 0)
1427
+ valid := true
1428
+ configureDebugInfo := ""
1429
+ for _, testObjMap := range scope {
1430
+ validationutils.UnusedFunction(testObjMap)
1431
+
1432
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1433
+ validationutils.UnusedFunction(fulfillmentType)
1434
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
1435
+ validationutils.UnusedFunction(fulType)
1436
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.end.location.address.area_code", true)
1437
+ validationutils.UnusedFunction(attr)
1438
+
1439
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
1440
+ if skipCheck {
1441
+ continue
1442
+ }
1443
+
1444
+ validate := validationutils.ArePresent(attr)
1445
+
1446
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_AREA_CODE_22","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent.fulfillment.end.location.address.area_code","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
1447
+
1448
+ if !validate {
1449
+ result := validationutils.ValidationOutput{
1450
+ TestName: "REQUIRED_MESSAGE_AREA_CODE_22",
1451
+ Valid: false,
1452
+ Code: 30000,
1453
+ Description: `#### **REQUIRED_MESSAGE_AREA_CODE_22**
1454
+
1455
+ - $.message.intent.fulfillment.end.location.address.area_code must be present in the payload
1456
+
1457
+ > **Skip if:**
1458
+ >
1459
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
1460
+ DebugInfo: &validationutils.DebugInfo{
1461
+ FedConfig: configureDebugInfo,
1462
+ },
1463
+ }
1464
+ return []validationutils.ValidationOutput{result}, nil
1465
+ }
1466
+
1467
+ }
1468
+
1469
+ result := validationutils.ValidationOutput{
1470
+ TestName: "REQUIRED_MESSAGE_AREA_CODE_22",
1471
+ Valid: valid,
1472
+ Code: 0,
1473
+ DebugInfo: &validationutils.DebugInfo{
1474
+ FedConfig: configureDebugInfo,
1475
+ },
1476
+ }
1477
+
1478
+ if valid {
1479
+ result.Code = 200
1480
+ } else {
1481
+ result.Code = 30000
1482
+ }
1483
+
1484
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1485
+ results = append(results, result)
1486
+ results = append(results, subResults...)
1487
+
1488
+ return results, nil
1489
+ }
1490
+ var REQUIRED_MESSAGE_TYPE_23 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1491
+
1492
+ if input.Config.SkipTestsDict != nil {
1493
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_TYPE_23"]; skip {
1494
+ return []validationutils.ValidationOutput{}, nil
1495
+ }
1496
+ }
1497
+
1498
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1499
+
1500
+ subResults := make([]validationutils.ValidationOutput, 0)
1501
+ valid := true
1502
+ configureDebugInfo := ""
1503
+ for _, testObjMap := range scope {
1504
+ validationutils.UnusedFunction(testObjMap)
1505
+
1506
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent.payment.type", true)
1507
+ validationutils.UnusedFunction(attr)
1508
+ enumList := validationutils.StringSliceToInterface([]string{`ON-ORDER`, `ON-FULFILLMENT`, `POST-FULFILLMENT`})
1509
+ validationutils.UnusedFunction(enumList)
1510
+
1511
+ skipCheck := !(validationutils.ArePresent(attr))
1512
+ if skipCheck {
1513
+ continue
1514
+ }
1515
+
1516
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1517
+
1518
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_TYPE_23","attr":"$.message.intent.payment.type","_CONTINUE_":"!(attr are present)","_RETURN_":"attr are present && attr all in enumList","enumList":["ON-ORDER","ON-FULFILLMENT","POST-FULFILLMENT"]}`
1519
+
1520
+ if !validate {
1521
+ result := validationutils.ValidationOutput{
1522
+ TestName: "REQUIRED_MESSAGE_TYPE_23",
1523
+ Valid: false,
1524
+ Code: 30000,
1525
+ Description: `#### **REQUIRED_MESSAGE_TYPE_23**
1526
+
1527
+ **All of the following must be true:**
1528
+ - $.message.intent.payment.type must be present in the payload
1529
+ - All elements of $.message.intent.payment.type must be in ["ON-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
1530
+
1531
+ > **Skip if:**
1532
+ >
1533
+ > - $.message.intent.payment.type is not in the payload`,
1534
+ DebugInfo: &validationutils.DebugInfo{
1535
+ FedConfig: configureDebugInfo,
1536
+ },
1537
+ }
1538
+ return []validationutils.ValidationOutput{result}, nil
1539
+ }
1540
+
1541
+ }
1542
+
1543
+ result := validationutils.ValidationOutput{
1544
+ TestName: "REQUIRED_MESSAGE_TYPE_23",
1545
+ Valid: valid,
1546
+ Code: 0,
1547
+ DebugInfo: &validationutils.DebugInfo{
1548
+ FedConfig: configureDebugInfo,
1549
+ },
1550
+ }
1551
+
1552
+ if valid {
1553
+ result.Code = 200
1554
+ } else {
1555
+ result.Code = 30000
1556
+ }
1557
+
1558
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1559
+ results = append(results, result)
1560
+ results = append(results, subResults...)
1561
+
1562
+ return results, nil
1563
+ }
1564
+ var REQUIRED_MESSAGE_UNIT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1565
+
1566
+ if input.Config.SkipTestsDict != nil {
1567
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_UNIT"]; skip {
1568
+ return []validationutils.ValidationOutput{}, nil
1569
+ }
1570
+ }
1571
+
1572
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1573
+
1574
+ subResults := make([]validationutils.ValidationOutput, 0)
1575
+ valid := true
1576
+ configureDebugInfo := ""
1577
+ for _, testObjMap := range scope {
1578
+ validationutils.UnusedFunction(testObjMap)
1579
+
1580
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1581
+ validationutils.UnusedFunction(fulfillmentType)
1582
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
1583
+ validationutils.UnusedFunction(fulType)
1584
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].weight.unit", true)
1585
+ validationutils.UnusedFunction(attr)
1586
+
1587
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
1588
+ if skipCheck {
1589
+ continue
1590
+ }
1591
+
1592
+ validate := validationutils.ArePresent(attr)
1593
+
1594
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_UNIT","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].weight.unit","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
1595
+
1596
+ if !validate {
1597
+ result := validationutils.ValidationOutput{
1598
+ TestName: "REQUIRED_MESSAGE_UNIT",
1599
+ Valid: false,
1600
+ Code: 30000,
1601
+ Description: `#### **REQUIRED_MESSAGE_UNIT**
1602
+
1603
+ - $.message.intent['@ondc/org/payload_details'].weight.unit must be present in the payload
1604
+
1605
+ > **Skip if:**
1606
+ >
1607
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
1608
+ DebugInfo: &validationutils.DebugInfo{
1609
+ FedConfig: configureDebugInfo,
1610
+ },
1611
+ }
1612
+ return []validationutils.ValidationOutput{result}, nil
1613
+ }
1614
+
1615
+ }
1616
+
1617
+ result := validationutils.ValidationOutput{
1618
+ TestName: "REQUIRED_MESSAGE_UNIT",
1619
+ Valid: valid,
1620
+ Code: 0,
1621
+ DebugInfo: &validationutils.DebugInfo{
1622
+ FedConfig: configureDebugInfo,
1623
+ },
1624
+ }
1625
+
1626
+ if valid {
1627
+ result.Code = 200
1628
+ } else {
1629
+ result.Code = 30000
1630
+ }
1631
+
1632
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1633
+ results = append(results, result)
1634
+ results = append(results, subResults...)
1635
+
1636
+ return results, nil
1637
+ }
1638
+ var REQUIRED_MESSAGE_VALUE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1639
+
1640
+ if input.Config.SkipTestsDict != nil {
1641
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_VALUE"]; skip {
1642
+ return []validationutils.ValidationOutput{}, nil
1643
+ }
1644
+ }
1645
+
1646
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1647
+
1648
+ subResults := make([]validationutils.ValidationOutput, 0)
1649
+ valid := true
1650
+ configureDebugInfo := ""
1651
+ for _, testObjMap := range scope {
1652
+ validationutils.UnusedFunction(testObjMap)
1653
+
1654
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1655
+ validationutils.UnusedFunction(fulfillmentType)
1656
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
1657
+ validationutils.UnusedFunction(fulType)
1658
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].weight.value", true)
1659
+ validationutils.UnusedFunction(attr)
1660
+
1661
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
1662
+ if skipCheck {
1663
+ continue
1664
+ }
1665
+
1666
+ validate := validationutils.ArePresent(attr)
1667
+
1668
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_VALUE","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].weight.value","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
1669
+
1670
+ if !validate {
1671
+ result := validationutils.ValidationOutput{
1672
+ TestName: "REQUIRED_MESSAGE_VALUE",
1673
+ Valid: false,
1674
+ Code: 30000,
1675
+ Description: `#### **REQUIRED_MESSAGE_VALUE**
1676
+
1677
+ - $.message.intent['@ondc/org/payload_details'].weight.value must be present in the payload
1678
+
1679
+ > **Skip if:**
1680
+ >
1681
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
1682
+ DebugInfo: &validationutils.DebugInfo{
1683
+ FedConfig: configureDebugInfo,
1684
+ },
1685
+ }
1686
+ return []validationutils.ValidationOutput{result}, nil
1687
+ }
1688
+
1689
+ }
1690
+
1691
+ result := validationutils.ValidationOutput{
1692
+ TestName: "REQUIRED_MESSAGE_VALUE",
1693
+ Valid: valid,
1694
+ Code: 0,
1695
+ DebugInfo: &validationutils.DebugInfo{
1696
+ FedConfig: configureDebugInfo,
1697
+ },
1698
+ }
1699
+
1700
+ if valid {
1701
+ result.Code = 200
1702
+ } else {
1703
+ result.Code = 30000
1704
+ }
1705
+
1706
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1707
+ results = append(results, result)
1708
+ results = append(results, subResults...)
1709
+
1710
+ return results, nil
1711
+ }
1712
+ var REQUIRED_MESSAGE_UNIT_26 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1713
+
1714
+ if input.Config.SkipTestsDict != nil {
1715
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_UNIT_26"]; skip {
1716
+ return []validationutils.ValidationOutput{}, nil
1717
+ }
1718
+ }
1719
+
1720
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1721
+
1722
+ subResults := make([]validationutils.ValidationOutput, 0)
1723
+ valid := true
1724
+ configureDebugInfo := ""
1725
+ for _, testObjMap := range scope {
1726
+ validationutils.UnusedFunction(testObjMap)
1727
+
1728
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1729
+ validationutils.UnusedFunction(fulfillmentType)
1730
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
1731
+ validationutils.UnusedFunction(fulType)
1732
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].dimensions.length.unit", true)
1733
+ validationutils.UnusedFunction(attr)
1734
+
1735
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
1736
+ if skipCheck {
1737
+ continue
1738
+ }
1739
+
1740
+ validate := validationutils.ArePresent(attr)
1741
+
1742
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_UNIT_26","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].dimensions.length.unit","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
1743
+
1744
+ if !validate {
1745
+ result := validationutils.ValidationOutput{
1746
+ TestName: "REQUIRED_MESSAGE_UNIT_26",
1747
+ Valid: false,
1748
+ Code: 30000,
1749
+ Description: `#### **REQUIRED_MESSAGE_UNIT_26**
1750
+
1751
+ - $.message.intent['@ondc/org/payload_details'].dimensions.length.unit must be present in the payload
1752
+
1753
+ > **Skip if:**
1754
+ >
1755
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
1756
+ DebugInfo: &validationutils.DebugInfo{
1757
+ FedConfig: configureDebugInfo,
1758
+ },
1759
+ }
1760
+ return []validationutils.ValidationOutput{result}, nil
1761
+ }
1762
+
1763
+ }
1764
+
1765
+ result := validationutils.ValidationOutput{
1766
+ TestName: "REQUIRED_MESSAGE_UNIT_26",
1767
+ Valid: valid,
1768
+ Code: 0,
1769
+ DebugInfo: &validationutils.DebugInfo{
1770
+ FedConfig: configureDebugInfo,
1771
+ },
1772
+ }
1773
+
1774
+ if valid {
1775
+ result.Code = 200
1776
+ } else {
1777
+ result.Code = 30000
1778
+ }
1779
+
1780
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1781
+ results = append(results, result)
1782
+ results = append(results, subResults...)
1783
+
1784
+ return results, nil
1785
+ }
1786
+ var REQUIRED_MESSAGE_VALUE_27 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1787
+
1788
+ if input.Config.SkipTestsDict != nil {
1789
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_VALUE_27"]; skip {
1790
+ return []validationutils.ValidationOutput{}, nil
1791
+ }
1792
+ }
1793
+
1794
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1795
+
1796
+ subResults := make([]validationutils.ValidationOutput, 0)
1797
+ valid := true
1798
+ configureDebugInfo := ""
1799
+ for _, testObjMap := range scope {
1800
+ validationutils.UnusedFunction(testObjMap)
1801
+
1802
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1803
+ validationutils.UnusedFunction(fulfillmentType)
1804
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
1805
+ validationutils.UnusedFunction(fulType)
1806
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].dimensions.length.value", true)
1807
+ validationutils.UnusedFunction(attr)
1808
+
1809
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
1810
+ if skipCheck {
1811
+ continue
1812
+ }
1813
+
1814
+ validate := validationutils.ArePresent(attr)
1815
+
1816
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_VALUE_27","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].dimensions.length.value","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
1817
+
1818
+ if !validate {
1819
+ result := validationutils.ValidationOutput{
1820
+ TestName: "REQUIRED_MESSAGE_VALUE_27",
1821
+ Valid: false,
1822
+ Code: 30000,
1823
+ Description: `#### **REQUIRED_MESSAGE_VALUE_27**
1824
+
1825
+ - $.message.intent['@ondc/org/payload_details'].dimensions.length.value must be present in the payload
1826
+
1827
+ > **Skip if:**
1828
+ >
1829
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
1830
+ DebugInfo: &validationutils.DebugInfo{
1831
+ FedConfig: configureDebugInfo,
1832
+ },
1833
+ }
1834
+ return []validationutils.ValidationOutput{result}, nil
1835
+ }
1836
+
1837
+ }
1838
+
1839
+ result := validationutils.ValidationOutput{
1840
+ TestName: "REQUIRED_MESSAGE_VALUE_27",
1841
+ Valid: valid,
1842
+ Code: 0,
1843
+ DebugInfo: &validationutils.DebugInfo{
1844
+ FedConfig: configureDebugInfo,
1845
+ },
1846
+ }
1847
+
1848
+ if valid {
1849
+ result.Code = 200
1850
+ } else {
1851
+ result.Code = 30000
1852
+ }
1853
+
1854
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1855
+ results = append(results, result)
1856
+ results = append(results, subResults...)
1857
+
1858
+ return results, nil
1859
+ }
1860
+ var REQUIRED_MESSAGE_UNIT_28 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1861
+
1862
+ if input.Config.SkipTestsDict != nil {
1863
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_UNIT_28"]; skip {
1864
+ return []validationutils.ValidationOutput{}, nil
1865
+ }
1866
+ }
1867
+
1868
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1869
+
1870
+ subResults := make([]validationutils.ValidationOutput, 0)
1871
+ valid := true
1872
+ configureDebugInfo := ""
1873
+ for _, testObjMap := range scope {
1874
+ validationutils.UnusedFunction(testObjMap)
1875
+
1876
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1877
+ validationutils.UnusedFunction(fulfillmentType)
1878
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
1879
+ validationutils.UnusedFunction(fulType)
1880
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].dimensions.breadth.unit", true)
1881
+ validationutils.UnusedFunction(attr)
1882
+
1883
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
1884
+ if skipCheck {
1885
+ continue
1886
+ }
1887
+
1888
+ validate := validationutils.ArePresent(attr)
1889
+
1890
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_UNIT_28","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].dimensions.breadth.unit","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
1891
+
1892
+ if !validate {
1893
+ result := validationutils.ValidationOutput{
1894
+ TestName: "REQUIRED_MESSAGE_UNIT_28",
1895
+ Valid: false,
1896
+ Code: 30000,
1897
+ Description: `#### **REQUIRED_MESSAGE_UNIT_28**
1898
+
1899
+ - $.message.intent['@ondc/org/payload_details'].dimensions.breadth.unit must be present in the payload
1900
+
1901
+ > **Skip if:**
1902
+ >
1903
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
1904
+ DebugInfo: &validationutils.DebugInfo{
1905
+ FedConfig: configureDebugInfo,
1906
+ },
1907
+ }
1908
+ return []validationutils.ValidationOutput{result}, nil
1909
+ }
1910
+
1911
+ }
1912
+
1913
+ result := validationutils.ValidationOutput{
1914
+ TestName: "REQUIRED_MESSAGE_UNIT_28",
1915
+ Valid: valid,
1916
+ Code: 0,
1917
+ DebugInfo: &validationutils.DebugInfo{
1918
+ FedConfig: configureDebugInfo,
1919
+ },
1920
+ }
1921
+
1922
+ if valid {
1923
+ result.Code = 200
1924
+ } else {
1925
+ result.Code = 30000
1926
+ }
1927
+
1928
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1929
+ results = append(results, result)
1930
+ results = append(results, subResults...)
1931
+
1932
+ return results, nil
1933
+ }
1934
+ var REQUIRED_MESSAGE_VALUE_29 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1935
+
1936
+ if input.Config.SkipTestsDict != nil {
1937
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_VALUE_29"]; skip {
1938
+ return []validationutils.ValidationOutput{}, nil
1939
+ }
1940
+ }
1941
+
1942
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1943
+
1944
+ subResults := make([]validationutils.ValidationOutput, 0)
1945
+ valid := true
1946
+ configureDebugInfo := ""
1947
+ for _, testObjMap := range scope {
1948
+ validationutils.UnusedFunction(testObjMap)
1949
+
1950
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
1951
+ validationutils.UnusedFunction(fulfillmentType)
1952
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
1953
+ validationutils.UnusedFunction(fulType)
1954
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].dimensions.breadth.value", true)
1955
+ validationutils.UnusedFunction(attr)
1956
+
1957
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
1958
+ if skipCheck {
1959
+ continue
1960
+ }
1961
+
1962
+ validate := validationutils.ArePresent(attr)
1963
+
1964
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_VALUE_29","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].dimensions.breadth.value","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
1965
+
1966
+ if !validate {
1967
+ result := validationutils.ValidationOutput{
1968
+ TestName: "REQUIRED_MESSAGE_VALUE_29",
1969
+ Valid: false,
1970
+ Code: 30000,
1971
+ Description: `#### **REQUIRED_MESSAGE_VALUE_29**
1972
+
1973
+ - $.message.intent['@ondc/org/payload_details'].dimensions.breadth.value must be present in the payload
1974
+
1975
+ > **Skip if:**
1976
+ >
1977
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
1978
+ DebugInfo: &validationutils.DebugInfo{
1979
+ FedConfig: configureDebugInfo,
1980
+ },
1981
+ }
1982
+ return []validationutils.ValidationOutput{result}, nil
1983
+ }
1984
+
1985
+ }
1986
+
1987
+ result := validationutils.ValidationOutput{
1988
+ TestName: "REQUIRED_MESSAGE_VALUE_29",
1989
+ Valid: valid,
1990
+ Code: 0,
1991
+ DebugInfo: &validationutils.DebugInfo{
1992
+ FedConfig: configureDebugInfo,
1993
+ },
1994
+ }
1995
+
1996
+ if valid {
1997
+ result.Code = 200
1998
+ } else {
1999
+ result.Code = 30000
2000
+ }
2001
+
2002
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2003
+ results = append(results, result)
2004
+ results = append(results, subResults...)
2005
+
2006
+ return results, nil
2007
+ }
2008
+ var REQUIRED_MESSAGE_UNIT_30 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2009
+
2010
+ if input.Config.SkipTestsDict != nil {
2011
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_UNIT_30"]; skip {
2012
+ return []validationutils.ValidationOutput{}, nil
2013
+ }
2014
+ }
2015
+
2016
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2017
+
2018
+ subResults := make([]validationutils.ValidationOutput, 0)
2019
+ valid := true
2020
+ configureDebugInfo := ""
2021
+ for _, testObjMap := range scope {
2022
+ validationutils.UnusedFunction(testObjMap)
2023
+
2024
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
2025
+ validationutils.UnusedFunction(fulfillmentType)
2026
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
2027
+ validationutils.UnusedFunction(fulType)
2028
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].dimensions.height.unit", true)
2029
+ validationutils.UnusedFunction(attr)
2030
+
2031
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
2032
+ if skipCheck {
2033
+ continue
2034
+ }
2035
+
2036
+ validate := validationutils.ArePresent(attr)
2037
+
2038
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_UNIT_30","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].dimensions.height.unit","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
2039
+
2040
+ if !validate {
2041
+ result := validationutils.ValidationOutput{
2042
+ TestName: "REQUIRED_MESSAGE_UNIT_30",
2043
+ Valid: false,
2044
+ Code: 30000,
2045
+ Description: `#### **REQUIRED_MESSAGE_UNIT_30**
2046
+
2047
+ - $.message.intent['@ondc/org/payload_details'].dimensions.height.unit must be present in the payload
2048
+
2049
+ > **Skip if:**
2050
+ >
2051
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
2052
+ DebugInfo: &validationutils.DebugInfo{
2053
+ FedConfig: configureDebugInfo,
2054
+ },
2055
+ }
2056
+ return []validationutils.ValidationOutput{result}, nil
2057
+ }
2058
+
2059
+ }
2060
+
2061
+ result := validationutils.ValidationOutput{
2062
+ TestName: "REQUIRED_MESSAGE_UNIT_30",
2063
+ Valid: valid,
2064
+ Code: 0,
2065
+ DebugInfo: &validationutils.DebugInfo{
2066
+ FedConfig: configureDebugInfo,
2067
+ },
2068
+ }
2069
+
2070
+ if valid {
2071
+ result.Code = 200
2072
+ } else {
2073
+ result.Code = 30000
2074
+ }
2075
+
2076
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2077
+ results = append(results, result)
2078
+ results = append(results, subResults...)
2079
+
2080
+ return results, nil
2081
+ }
2082
+ var REQUIRED_MESSAGE_VALUE_31 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2083
+
2084
+ if input.Config.SkipTestsDict != nil {
2085
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_VALUE_31"]; skip {
2086
+ return []validationutils.ValidationOutput{}, nil
2087
+ }
2088
+ }
2089
+
2090
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2091
+
2092
+ subResults := make([]validationutils.ValidationOutput, 0)
2093
+ valid := true
2094
+ configureDebugInfo := ""
2095
+ for _, testObjMap := range scope {
2096
+ validationutils.UnusedFunction(testObjMap)
2097
+
2098
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
2099
+ validationutils.UnusedFunction(fulfillmentType)
2100
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
2101
+ validationutils.UnusedFunction(fulType)
2102
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].dimensions.height.value", true)
2103
+ validationutils.UnusedFunction(attr)
2104
+
2105
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
2106
+ if skipCheck {
2107
+ continue
2108
+ }
2109
+
2110
+ validate := validationutils.ArePresent(attr)
2111
+
2112
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_VALUE_31","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].dimensions.height.value","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
2113
+
2114
+ if !validate {
2115
+ result := validationutils.ValidationOutput{
2116
+ TestName: "REQUIRED_MESSAGE_VALUE_31",
2117
+ Valid: false,
2118
+ Code: 30000,
2119
+ Description: `#### **REQUIRED_MESSAGE_VALUE_31**
2120
+
2121
+ - $.message.intent['@ondc/org/payload_details'].dimensions.height.value must be present in the payload
2122
+
2123
+ > **Skip if:**
2124
+ >
2125
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
2126
+ DebugInfo: &validationutils.DebugInfo{
2127
+ FedConfig: configureDebugInfo,
2128
+ },
2129
+ }
2130
+ return []validationutils.ValidationOutput{result}, nil
2131
+ }
2132
+
2133
+ }
2134
+
2135
+ result := validationutils.ValidationOutput{
2136
+ TestName: "REQUIRED_MESSAGE_VALUE_31",
2137
+ Valid: valid,
2138
+ Code: 0,
2139
+ DebugInfo: &validationutils.DebugInfo{
2140
+ FedConfig: configureDebugInfo,
2141
+ },
2142
+ }
2143
+
2144
+ if valid {
2145
+ result.Code = 200
2146
+ } else {
2147
+ result.Code = 30000
2148
+ }
2149
+
2150
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2151
+ results = append(results, result)
2152
+ results = append(results, subResults...)
2153
+
2154
+ return results, nil
2155
+ }
2156
+ var REQUIRED_MESSAGE_CATEGORY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2157
+
2158
+ if input.Config.SkipTestsDict != nil {
2159
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CATEGORY"]; skip {
2160
+ return []validationutils.ValidationOutput{}, nil
2161
+ }
2162
+ }
2163
+
2164
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2165
+
2166
+ subResults := make([]validationutils.ValidationOutput, 0)
2167
+ valid := true
2168
+ configureDebugInfo := ""
2169
+ for _, testObjMap := range scope {
2170
+ validationutils.UnusedFunction(testObjMap)
2171
+
2172
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
2173
+ validationutils.UnusedFunction(fulfillmentType)
2174
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
2175
+ validationutils.UnusedFunction(fulType)
2176
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].category", true)
2177
+ validationutils.UnusedFunction(attr)
2178
+
2179
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
2180
+ if skipCheck {
2181
+ continue
2182
+ }
2183
+
2184
+ validate := validationutils.ArePresent(attr)
2185
+
2186
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CATEGORY","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].category","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
2187
+
2188
+ if !validate {
2189
+ result := validationutils.ValidationOutput{
2190
+ TestName: "REQUIRED_MESSAGE_CATEGORY",
2191
+ Valid: false,
2192
+ Code: 30000,
2193
+ Description: `#### **REQUIRED_MESSAGE_CATEGORY**
2194
+
2195
+ - $.message.intent['@ondc/org/payload_details'].category must be present in the payload
2196
+
2197
+ > **Skip if:**
2198
+ >
2199
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
2200
+ DebugInfo: &validationutils.DebugInfo{
2201
+ FedConfig: configureDebugInfo,
2202
+ },
2203
+ }
2204
+ return []validationutils.ValidationOutput{result}, nil
2205
+ }
2206
+
2207
+ }
2208
+
2209
+ result := validationutils.ValidationOutput{
2210
+ TestName: "REQUIRED_MESSAGE_CATEGORY",
2211
+ Valid: valid,
2212
+ Code: 0,
2213
+ DebugInfo: &validationutils.DebugInfo{
2214
+ FedConfig: configureDebugInfo,
2215
+ },
2216
+ }
2217
+
2218
+ if valid {
2219
+ result.Code = 200
2220
+ } else {
2221
+ result.Code = 30000
2222
+ }
2223
+
2224
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2225
+ results = append(results, result)
2226
+ results = append(results, subResults...)
2227
+
2228
+ return results, nil
2229
+ }
2230
+ var REQUIRED_MESSAGE_CURRENCY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2231
+
2232
+ if input.Config.SkipTestsDict != nil {
2233
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CURRENCY"]; skip {
2234
+ return []validationutils.ValidationOutput{}, nil
2235
+ }
2236
+ }
2237
+
2238
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2239
+
2240
+ subResults := make([]validationutils.ValidationOutput, 0)
2241
+ valid := true
2242
+ configureDebugInfo := ""
2243
+ for _, testObjMap := range scope {
2244
+ validationutils.UnusedFunction(testObjMap)
2245
+
2246
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
2247
+ validationutils.UnusedFunction(fulfillmentType)
2248
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
2249
+ validationutils.UnusedFunction(fulType)
2250
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].value.currency", true)
2251
+ validationutils.UnusedFunction(attr)
2252
+
2253
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
2254
+ if skipCheck {
2255
+ continue
2256
+ }
2257
+
2258
+ validate := validationutils.ArePresent(attr)
2259
+
2260
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CURRENCY","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].value.currency","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
2261
+
2262
+ if !validate {
2263
+ result := validationutils.ValidationOutput{
2264
+ TestName: "REQUIRED_MESSAGE_CURRENCY",
2265
+ Valid: false,
2266
+ Code: 30000,
2267
+ Description: `#### **REQUIRED_MESSAGE_CURRENCY**
2268
+
2269
+ - $.message.intent['@ondc/org/payload_details'].value.currency must be present in the payload
2270
+
2271
+ > **Skip if:**
2272
+ >
2273
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
2274
+ DebugInfo: &validationutils.DebugInfo{
2275
+ FedConfig: configureDebugInfo,
2276
+ },
2277
+ }
2278
+ return []validationutils.ValidationOutput{result}, nil
2279
+ }
2280
+
2281
+ }
2282
+
2283
+ result := validationutils.ValidationOutput{
2284
+ TestName: "REQUIRED_MESSAGE_CURRENCY",
2285
+ Valid: valid,
2286
+ Code: 0,
2287
+ DebugInfo: &validationutils.DebugInfo{
2288
+ FedConfig: configureDebugInfo,
2289
+ },
2290
+ }
2291
+
2292
+ if valid {
2293
+ result.Code = 200
2294
+ } else {
2295
+ result.Code = 30000
2296
+ }
2297
+
2298
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2299
+ results = append(results, result)
2300
+ results = append(results, subResults...)
2301
+
2302
+ return results, nil
2303
+ }
2304
+ var REQUIRED_MESSAGE_VALUE_34 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2305
+
2306
+ if input.Config.SkipTestsDict != nil {
2307
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_VALUE_34"]; skip {
2308
+ return []validationutils.ValidationOutput{}, nil
2309
+ }
2310
+ }
2311
+
2312
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2313
+
2314
+ subResults := make([]validationutils.ValidationOutput, 0)
2315
+ valid := true
2316
+ configureDebugInfo := ""
2317
+ for _, testObjMap := range scope {
2318
+ validationutils.UnusedFunction(testObjMap)
2319
+
2320
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
2321
+ validationutils.UnusedFunction(fulfillmentType)
2322
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
2323
+ validationutils.UnusedFunction(fulType)
2324
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].value.value", true)
2325
+ validationutils.UnusedFunction(attr)
2326
+
2327
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
2328
+ if skipCheck {
2329
+ continue
2330
+ }
2331
+
2332
+ validate := validationutils.ArePresent(attr)
2333
+
2334
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_VALUE_34","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].value.value","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
2335
+
2336
+ if !validate {
2337
+ result := validationutils.ValidationOutput{
2338
+ TestName: "REQUIRED_MESSAGE_VALUE_34",
2339
+ Valid: false,
2340
+ Code: 30000,
2341
+ Description: `#### **REQUIRED_MESSAGE_VALUE_34**
2342
+
2343
+ - $.message.intent['@ondc/org/payload_details'].value.value must be present in the payload
2344
+
2345
+ > **Skip if:**
2346
+ >
2347
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
2348
+ DebugInfo: &validationutils.DebugInfo{
2349
+ FedConfig: configureDebugInfo,
2350
+ },
2351
+ }
2352
+ return []validationutils.ValidationOutput{result}, nil
2353
+ }
2354
+
2355
+ }
2356
+
2357
+ result := validationutils.ValidationOutput{
2358
+ TestName: "REQUIRED_MESSAGE_VALUE_34",
2359
+ Valid: valid,
2360
+ Code: 0,
2361
+ DebugInfo: &validationutils.DebugInfo{
2362
+ FedConfig: configureDebugInfo,
2363
+ },
2364
+ }
2365
+
2366
+ if valid {
2367
+ result.Code = 200
2368
+ } else {
2369
+ result.Code = 30000
2370
+ }
2371
+
2372
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2373
+ results = append(results, result)
2374
+ results = append(results, subResults...)
2375
+
2376
+ return results, nil
2377
+ }
2378
+ var REQUIRED_MESSAGE_DANGEROUS_GOODS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2379
+
2380
+ if input.Config.SkipTestsDict != nil {
2381
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_DANGEROUS_GOODS"]; skip {
2382
+ return []validationutils.ValidationOutput{}, nil
2383
+ }
2384
+ }
2385
+
2386
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2387
+
2388
+ subResults := make([]validationutils.ValidationOutput, 0)
2389
+ valid := true
2390
+ configureDebugInfo := ""
2391
+ for _, testObjMap := range scope {
2392
+ validationutils.UnusedFunction(testObjMap)
2393
+
2394
+ fulfillmentType := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
2395
+ validationutils.UnusedFunction(fulfillmentType)
2396
+ fulType := validationutils.StringSliceToInterface([]string{`Delivery`})
2397
+ validationutils.UnusedFunction(fulType)
2398
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.intent['@ondc/org/payload_details'].dangerous_goods", true)
2399
+ validationutils.UnusedFunction(attr)
2400
+
2401
+ skipCheck := !(validationutils.AllIn(fulfillmentType, fulType))
2402
+ if skipCheck {
2403
+ continue
2404
+ }
2405
+
2406
+ validate := validationutils.ArePresent(attr)
2407
+
2408
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_DANGEROUS_GOODS","fulfillmentType":"$.message.intent.fulfillment.type","fulType":["Delivery"],"attr":"$.message.intent['@ondc/org/payload_details'].dangerous_goods","_CONTINUE_":"!(fulfillmentType all in fulType)","_RETURN_":"attr are present"}`
2409
+
2410
+ if !validate {
2411
+ result := validationutils.ValidationOutput{
2412
+ TestName: "REQUIRED_MESSAGE_DANGEROUS_GOODS",
2413
+ Valid: false,
2414
+ Code: 30000,
2415
+ Description: `#### **REQUIRED_MESSAGE_DANGEROUS_GOODS**
2416
+
2417
+ - $.message.intent['@ondc/org/payload_details'].dangerous_goods must be present in the payload
2418
+
2419
+ > **Skip if:**
2420
+ >
2421
+ > - not all elements of $.message.intent.fulfillment.type are in ["Delivery"]`,
2422
+ DebugInfo: &validationutils.DebugInfo{
2423
+ FedConfig: configureDebugInfo,
2424
+ },
2425
+ }
2426
+ return []validationutils.ValidationOutput{result}, nil
2427
+ }
2428
+
2429
+ }
2430
+
2431
+ result := validationutils.ValidationOutput{
2432
+ TestName: "REQUIRED_MESSAGE_DANGEROUS_GOODS",
2433
+ Valid: valid,
2434
+ Code: 0,
2435
+ DebugInfo: &validationutils.DebugInfo{
2436
+ FedConfig: configureDebugInfo,
2437
+ },
2438
+ }
2439
+
2440
+ if valid {
2441
+ result.Code = 200
2442
+ } else {
2443
+ result.Code = 30000
2444
+ }
2445
+
2446
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2447
+ results = append(results, result)
2448
+ results = append(results, subResults...)
2449
+
2450
+ return results, nil
2451
+ }
2452
+ var VALID_ENUM_CONTEXT_DOMAIN = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2453
+
2454
+ if input.Config.SkipTestsDict != nil {
2455
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_CONTEXT_DOMAIN"]; skip {
2456
+ return []validationutils.ValidationOutput{}, nil
2457
+ }
2458
+ }
2459
+
2460
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2461
+
2462
+ subResults := make([]validationutils.ValidationOutput, 0)
2463
+ valid := true
2464
+ configureDebugInfo := ""
2465
+ for _, testObjMap := range scope {
2466
+ validationutils.UnusedFunction(testObjMap)
2467
+
2468
+ enumList := validationutils.StringSliceToInterface([]string{`ONDC:LOG10`, `ONDC:LOG11`, `nic2004:60232`})
2469
+ validationutils.UnusedFunction(enumList)
2470
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.context.domain", true)
2471
+ validationutils.UnusedFunction(enumPath)
2472
+
2473
+ skipCheck := !(validationutils.ArePresent(enumPath))
2474
+ if skipCheck {
2475
+ continue
2476
+ }
2477
+
2478
+ validate := validationutils.AllIn(enumPath, enumList)
2479
+
2480
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_CONTEXT_DOMAIN","enumList":["ONDC:LOG10","ONDC:LOG11","nic2004:60232"],"enumPath":"$.context.domain","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2481
+
2482
+ if !validate {
2483
+ result := validationutils.ValidationOutput{
2484
+ TestName: "VALID_ENUM_CONTEXT_DOMAIN",
2485
+ Valid: false,
2486
+ Code: 30000,
2487
+ Description: `#### **VALID_ENUM_CONTEXT_DOMAIN**
2488
+
2489
+ - All elements of $.context.domain must be in ["ONDC:LOG10", "ONDC:LOG11", "nic2004:60232"]
2490
+
2491
+ > **Skip if:**
2492
+ >
2493
+ > - $.context.domain is not in the payload`,
2494
+ DebugInfo: &validationutils.DebugInfo{
2495
+ FedConfig: configureDebugInfo,
2496
+ },
2497
+ }
2498
+ return []validationutils.ValidationOutput{result}, nil
2499
+ }
2500
+
2501
+ }
2502
+
2503
+ result := validationutils.ValidationOutput{
2504
+ TestName: "VALID_ENUM_CONTEXT_DOMAIN",
2505
+ Valid: valid,
2506
+ Code: 0,
2507
+ DebugInfo: &validationutils.DebugInfo{
2508
+ FedConfig: configureDebugInfo,
2509
+ },
2510
+ }
2511
+
2512
+ if valid {
2513
+ result.Code = 200
2514
+ } else {
2515
+ result.Code = 30000
2516
+ }
2517
+
2518
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2519
+ results = append(results, result)
2520
+ results = append(results, subResults...)
2521
+
2522
+ return results, nil
2523
+ }
2524
+ var VALID_ENUM_MESSAGE_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2525
+
2526
+ if input.Config.SkipTestsDict != nil {
2527
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_TYPE"]; skip {
2528
+ return []validationutils.ValidationOutput{}, nil
2529
+ }
2530
+ }
2531
+
2532
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2533
+
2534
+ subResults := make([]validationutils.ValidationOutput, 0)
2535
+ valid := true
2536
+ configureDebugInfo := ""
2537
+ for _, testObjMap := range scope {
2538
+ validationutils.UnusedFunction(testObjMap)
2539
+
2540
+ enumList := validationutils.StringSliceToInterface([]string{`Delivery`, `Return`, `Batch`, `RTO`, `FTL`, `PTL`, `FIFO`})
2541
+ validationutils.UnusedFunction(enumList)
2542
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.type", true)
2543
+ validationutils.UnusedFunction(enumPath)
2544
+
2545
+ skipCheck := !(validationutils.ArePresent(enumPath))
2546
+ if skipCheck {
2547
+ continue
2548
+ }
2549
+
2550
+ validate := validationutils.AllIn(enumPath, enumList)
2551
+
2552
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_TYPE","enumList":["Delivery","Return","Batch","RTO","FTL","PTL","FIFO"],"enumPath":"$.message.intent.fulfillment.type","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2553
+
2554
+ if !validate {
2555
+ result := validationutils.ValidationOutput{
2556
+ TestName: "VALID_ENUM_MESSAGE_TYPE",
2557
+ Valid: false,
2558
+ Code: 30000,
2559
+ Description: `#### **VALID_ENUM_MESSAGE_TYPE**
2560
+
2561
+ - All elements of $.message.intent.fulfillment.type must be in ["Delivery", "Return", "Batch", "RTO", "FTL", "PTL", "FIFO"]
2562
+
2563
+ > **Skip if:**
2564
+ >
2565
+ > - $.message.intent.fulfillment.type is not in the payload`,
2566
+ DebugInfo: &validationutils.DebugInfo{
2567
+ FedConfig: configureDebugInfo,
2568
+ },
2569
+ }
2570
+ return []validationutils.ValidationOutput{result}, nil
2571
+ }
2572
+
2573
+ }
2574
+
2575
+ result := validationutils.ValidationOutput{
2576
+ TestName: "VALID_ENUM_MESSAGE_TYPE",
2577
+ Valid: valid,
2578
+ Code: 0,
2579
+ DebugInfo: &validationutils.DebugInfo{
2580
+ FedConfig: configureDebugInfo,
2581
+ },
2582
+ }
2583
+
2584
+ if valid {
2585
+ result.Code = 200
2586
+ } else {
2587
+ result.Code = 30000
2588
+ }
2589
+
2590
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2591
+ results = append(results, result)
2592
+ results = append(results, subResults...)
2593
+
2594
+ return results, nil
2595
+ }
2596
+ var VALID_ENUM_MESSAGE_TYPE_3 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2597
+
2598
+ if input.Config.SkipTestsDict != nil {
2599
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_TYPE_3"]; skip {
2600
+ return []validationutils.ValidationOutput{}, nil
2601
+ }
2602
+ }
2603
+
2604
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2605
+
2606
+ subResults := make([]validationutils.ValidationOutput, 0)
2607
+ valid := true
2608
+ configureDebugInfo := ""
2609
+ for _, testObjMap := range scope {
2610
+ validationutils.UnusedFunction(testObjMap)
2611
+
2612
+ enumList := validationutils.StringSliceToInterface([]string{`OTP`})
2613
+ validationutils.UnusedFunction(enumList)
2614
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.start.authorization.type", true)
2615
+ validationutils.UnusedFunction(enumPath)
2616
+
2617
+ skipCheck := !(validationutils.ArePresent(enumPath))
2618
+ if skipCheck {
2619
+ continue
2620
+ }
2621
+
2622
+ validate := validationutils.AllIn(enumPath, enumList)
2623
+
2624
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_TYPE_3","enumList":["OTP"],"enumPath":"$.message.intent.fulfillment.start.authorization.type","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2625
+
2626
+ if !validate {
2627
+ result := validationutils.ValidationOutput{
2628
+ TestName: "VALID_ENUM_MESSAGE_TYPE_3",
2629
+ Valid: false,
2630
+ Code: 30000,
2631
+ Description: `#### **VALID_ENUM_MESSAGE_TYPE_3**
2632
+
2633
+ - All elements of $.message.intent.fulfillment.start.authorization.type must be in ["OTP"]
2634
+
2635
+ > **Skip if:**
2636
+ >
2637
+ > - $.message.intent.fulfillment.start.authorization.type is not in the payload`,
2638
+ DebugInfo: &validationutils.DebugInfo{
2639
+ FedConfig: configureDebugInfo,
2640
+ },
2641
+ }
2642
+ return []validationutils.ValidationOutput{result}, nil
2643
+ }
2644
+
2645
+ }
2646
+
2647
+ result := validationutils.ValidationOutput{
2648
+ TestName: "VALID_ENUM_MESSAGE_TYPE_3",
2649
+ Valid: valid,
2650
+ Code: 0,
2651
+ DebugInfo: &validationutils.DebugInfo{
2652
+ FedConfig: configureDebugInfo,
2653
+ },
2654
+ }
2655
+
2656
+ if valid {
2657
+ result.Code = 200
2658
+ } else {
2659
+ result.Code = 30000
2660
+ }
2661
+
2662
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2663
+ results = append(results, result)
2664
+ results = append(results, subResults...)
2665
+
2666
+ return results, nil
2667
+ }
2668
+ var VALID_ENUM_MESSAGE_CODE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2669
+
2670
+ if input.Config.SkipTestsDict != nil {
2671
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_CODE"]; skip {
2672
+ return []validationutils.ValidationOutput{}, nil
2673
+ }
2674
+ }
2675
+
2676
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2677
+
2678
+ subResults := make([]validationutils.ValidationOutput, 0)
2679
+ valid := true
2680
+ configureDebugInfo := ""
2681
+ for _, testObjMap := range scope {
2682
+ validationutils.UnusedFunction(testObjMap)
2683
+
2684
+ enumList := validationutils.StringSliceToInterface([]string{`2`, `3`, `4`, `5`})
2685
+ validationutils.UnusedFunction(enumList)
2686
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.start.instructions.code", true)
2687
+ validationutils.UnusedFunction(enumPath)
2688
+
2689
+ skipCheck := !(validationutils.ArePresent(enumPath))
2690
+ if skipCheck {
2691
+ continue
2692
+ }
2693
+
2694
+ validate := validationutils.AllIn(enumPath, enumList)
2695
+
2696
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_CODE","enumList":["2","3","4","5"],"enumPath":"$.message.intent.fulfillment.start.instructions.code","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2697
+
2698
+ if !validate {
2699
+ result := validationutils.ValidationOutput{
2700
+ TestName: "VALID_ENUM_MESSAGE_CODE",
2701
+ Valid: false,
2702
+ Code: 30000,
2703
+ Description: `#### **VALID_ENUM_MESSAGE_CODE**
2704
+
2705
+ - All elements of $.message.intent.fulfillment.start.instructions.code must be in ["2", "3", "4", "5"]
2706
+
2707
+ > **Skip if:**
2708
+ >
2709
+ > - $.message.intent.fulfillment.start.instructions.code is not in the payload`,
2710
+ DebugInfo: &validationutils.DebugInfo{
2711
+ FedConfig: configureDebugInfo,
2712
+ },
2713
+ }
2714
+ return []validationutils.ValidationOutput{result}, nil
2715
+ }
2716
+
2717
+ }
2718
+
2719
+ result := validationutils.ValidationOutput{
2720
+ TestName: "VALID_ENUM_MESSAGE_CODE",
2721
+ Valid: valid,
2722
+ Code: 0,
2723
+ DebugInfo: &validationutils.DebugInfo{
2724
+ FedConfig: configureDebugInfo,
2725
+ },
2726
+ }
2727
+
2728
+ if valid {
2729
+ result.Code = 200
2730
+ } else {
2731
+ result.Code = 30000
2732
+ }
2733
+
2734
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2735
+ results = append(results, result)
2736
+ results = append(results, subResults...)
2737
+
2738
+ return results, nil
2739
+ }
2740
+ var VALID_ENUM_MESSAGE_TYPE_5 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2741
+
2742
+ if input.Config.SkipTestsDict != nil {
2743
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_TYPE_5"]; skip {
2744
+ return []validationutils.ValidationOutput{}, nil
2745
+ }
2746
+ }
2747
+
2748
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2749
+
2750
+ subResults := make([]validationutils.ValidationOutput, 0)
2751
+ valid := true
2752
+ configureDebugInfo := ""
2753
+ for _, testObjMap := range scope {
2754
+ validationutils.UnusedFunction(testObjMap)
2755
+
2756
+ enumList := validationutils.StringSliceToInterface([]string{`OTP`})
2757
+ validationutils.UnusedFunction(enumList)
2758
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.end.authorization.type", true)
2759
+ validationutils.UnusedFunction(enumPath)
2760
+
2761
+ skipCheck := !(validationutils.ArePresent(enumPath))
2762
+ if skipCheck {
2763
+ continue
2764
+ }
2765
+
2766
+ validate := validationutils.AllIn(enumPath, enumList)
2767
+
2768
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_TYPE_5","enumList":["OTP"],"enumPath":"$.message.intent.fulfillment.end.authorization.type","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2769
+
2770
+ if !validate {
2771
+ result := validationutils.ValidationOutput{
2772
+ TestName: "VALID_ENUM_MESSAGE_TYPE_5",
2773
+ Valid: false,
2774
+ Code: 30000,
2775
+ Description: `#### **VALID_ENUM_MESSAGE_TYPE_5**
2776
+
2777
+ - All elements of $.message.intent.fulfillment.end.authorization.type must be in ["OTP"]
2778
+
2779
+ > **Skip if:**
2780
+ >
2781
+ > - $.message.intent.fulfillment.end.authorization.type is not in the payload`,
2782
+ DebugInfo: &validationutils.DebugInfo{
2783
+ FedConfig: configureDebugInfo,
2784
+ },
2785
+ }
2786
+ return []validationutils.ValidationOutput{result}, nil
2787
+ }
2788
+
2789
+ }
2790
+
2791
+ result := validationutils.ValidationOutput{
2792
+ TestName: "VALID_ENUM_MESSAGE_TYPE_5",
2793
+ Valid: valid,
2794
+ Code: 0,
2795
+ DebugInfo: &validationutils.DebugInfo{
2796
+ FedConfig: configureDebugInfo,
2797
+ },
2798
+ }
2799
+
2800
+ if valid {
2801
+ result.Code = 200
2802
+ } else {
2803
+ result.Code = 30000
2804
+ }
2805
+
2806
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2807
+ results = append(results, result)
2808
+ results = append(results, subResults...)
2809
+
2810
+ return results, nil
2811
+ }
2812
+ var VALID_ENUM_MESSAGE_CODE_6 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2813
+
2814
+ if input.Config.SkipTestsDict != nil {
2815
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_CODE_6"]; skip {
2816
+ return []validationutils.ValidationOutput{}, nil
2817
+ }
2818
+ }
2819
+
2820
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2821
+
2822
+ subResults := make([]validationutils.ValidationOutput, 0)
2823
+ valid := true
2824
+ configureDebugInfo := ""
2825
+ for _, testObjMap := range scope {
2826
+ validationutils.UnusedFunction(testObjMap)
2827
+
2828
+ enumList := validationutils.StringSliceToInterface([]string{`1`, `2`, `3`, `5`})
2829
+ validationutils.UnusedFunction(enumList)
2830
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.end.instructions.code", true)
2831
+ validationutils.UnusedFunction(enumPath)
2832
+
2833
+ skipCheck := !(validationutils.ArePresent(enumPath))
2834
+ if skipCheck {
2835
+ continue
2836
+ }
2837
+
2838
+ validate := validationutils.AllIn(enumPath, enumList)
2839
+
2840
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_CODE_6","enumList":["1","2","3","5"],"enumPath":"$.message.intent.fulfillment.end.instructions.code","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2841
+
2842
+ if !validate {
2843
+ result := validationutils.ValidationOutput{
2844
+ TestName: "VALID_ENUM_MESSAGE_CODE_6",
2845
+ Valid: false,
2846
+ Code: 30000,
2847
+ Description: `#### **VALID_ENUM_MESSAGE_CODE_6**
2848
+
2849
+ - All elements of $.message.intent.fulfillment.end.instructions.code must be in ["1", "2", "3", "5"]
2850
+
2851
+ > **Skip if:**
2852
+ >
2853
+ > - $.message.intent.fulfillment.end.instructions.code is not in the payload`,
2854
+ DebugInfo: &validationutils.DebugInfo{
2855
+ FedConfig: configureDebugInfo,
2856
+ },
2857
+ }
2858
+ return []validationutils.ValidationOutput{result}, nil
2859
+ }
2860
+
2861
+ }
2862
+
2863
+ result := validationutils.ValidationOutput{
2864
+ TestName: "VALID_ENUM_MESSAGE_CODE_6",
2865
+ Valid: valid,
2866
+ Code: 0,
2867
+ DebugInfo: &validationutils.DebugInfo{
2868
+ FedConfig: configureDebugInfo,
2869
+ },
2870
+ }
2871
+
2872
+ if valid {
2873
+ result.Code = 200
2874
+ } else {
2875
+ result.Code = 30000
2876
+ }
2877
+
2878
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2879
+ results = append(results, result)
2880
+ results = append(results, subResults...)
2881
+
2882
+ return results, nil
2883
+ }
2884
+ var VALID_ENUM_MESSAGE_TYPE_7 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2885
+
2886
+ if input.Config.SkipTestsDict != nil {
2887
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_TYPE_7"]; skip {
2888
+ return []validationutils.ValidationOutput{}, nil
2889
+ }
2890
+ }
2891
+
2892
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2893
+
2894
+ subResults := make([]validationutils.ValidationOutput, 0)
2895
+ valid := true
2896
+ configureDebugInfo := ""
2897
+ for _, testObjMap := range scope {
2898
+ validationutils.UnusedFunction(testObjMap)
2899
+
2900
+ enumList := validationutils.StringSliceToInterface([]string{`ON-ORDER`, `ON-FULFILLMENT`, `POST-FULFILLMENT`})
2901
+ validationutils.UnusedFunction(enumList)
2902
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.payment.type", true)
2903
+ validationutils.UnusedFunction(enumPath)
2904
+
2905
+ skipCheck := !(validationutils.ArePresent(enumPath))
2906
+ if skipCheck {
2907
+ continue
2908
+ }
2909
+
2910
+ validate := validationutils.AllIn(enumPath, enumList)
2911
+
2912
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_TYPE_7","enumList":["ON-ORDER","ON-FULFILLMENT","POST-FULFILLMENT"],"enumPath":"$.message.intent.payment.type","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2913
+
2914
+ if !validate {
2915
+ result := validationutils.ValidationOutput{
2916
+ TestName: "VALID_ENUM_MESSAGE_TYPE_7",
2917
+ Valid: false,
2918
+ Code: 30000,
2919
+ Description: `#### **VALID_ENUM_MESSAGE_TYPE_7**
2920
+
2921
+ - All elements of $.message.intent.payment.type must be in ["ON-ORDER", "ON-FULFILLMENT", "POST-FULFILLMENT"]
2922
+
2923
+ > **Skip if:**
2924
+ >
2925
+ > - $.message.intent.payment.type is not in the payload`,
2926
+ DebugInfo: &validationutils.DebugInfo{
2927
+ FedConfig: configureDebugInfo,
2928
+ },
2929
+ }
2930
+ return []validationutils.ValidationOutput{result}, nil
2931
+ }
2932
+
2933
+ }
2934
+
2935
+ result := validationutils.ValidationOutput{
2936
+ TestName: "VALID_ENUM_MESSAGE_TYPE_7",
2937
+ Valid: valid,
2938
+ Code: 0,
2939
+ DebugInfo: &validationutils.DebugInfo{
2940
+ FedConfig: configureDebugInfo,
2941
+ },
2942
+ }
2943
+
2944
+ if valid {
2945
+ result.Code = 200
2946
+ } else {
2947
+ result.Code = 30000
2948
+ }
2949
+
2950
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2951
+ results = append(results, result)
2952
+ results = append(results, subResults...)
2953
+
2954
+ return results, nil
2955
+ }
2956
+ var VALID_ENUM_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2957
+
2958
+ if input.Config.SkipTestsDict != nil {
2959
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_ID"]; skip {
2960
+ return []validationutils.ValidationOutput{}, nil
2961
+ }
2962
+ }
2963
+
2964
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2965
+
2966
+ subResults := make([]validationutils.ValidationOutput, 0)
2967
+ valid := true
2968
+ configureDebugInfo := ""
2969
+ for _, testObjMap := range scope {
2970
+ validationutils.UnusedFunction(testObjMap)
2971
+
2972
+ enumList := validationutils.StringSliceToInterface([]string{`Express Delivery`, `Standard Delivery`, `Immediate Delivery`, `Next Day Delivery`, `Same Day Delivery`, `Instant Delivery`})
2973
+ validationutils.UnusedFunction(enumList)
2974
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.category.id", true)
2975
+ validationutils.UnusedFunction(enumPath)
2976
+
2977
+ skipCheck := !(validationutils.ArePresent(enumPath))
2978
+ if skipCheck {
2979
+ continue
2980
+ }
2981
+
2982
+ validate := validationutils.AllIn(enumPath, enumList)
2983
+
2984
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_ID","enumList":["Express Delivery","Standard Delivery","Immediate Delivery","Next Day Delivery","Same Day Delivery","Instant Delivery"],"enumPath":"$.message.intent.category.id","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2985
+
2986
+ if !validate {
2987
+ result := validationutils.ValidationOutput{
2988
+ TestName: "VALID_ENUM_MESSAGE_ID",
2989
+ Valid: false,
2990
+ Code: 30000,
2991
+ Description: `#### **VALID_ENUM_MESSAGE_ID**
2992
+
2993
+ - All elements of $.message.intent.category.id must be in ["Express Delivery", "Standard Delivery", "Immediate Delivery", "Next Day Delivery", "Same Day Delivery", "Instant Delivery"]
2994
+
2995
+ > **Skip if:**
2996
+ >
2997
+ > - $.message.intent.category.id is not in the payload`,
2998
+ DebugInfo: &validationutils.DebugInfo{
2999
+ FedConfig: configureDebugInfo,
3000
+ },
3001
+ }
3002
+ return []validationutils.ValidationOutput{result}, nil
3003
+ }
3004
+
3005
+ }
3006
+
3007
+ result := validationutils.ValidationOutput{
3008
+ TestName: "VALID_ENUM_MESSAGE_ID",
3009
+ Valid: valid,
3010
+ Code: 0,
3011
+ DebugInfo: &validationutils.DebugInfo{
3012
+ FedConfig: configureDebugInfo,
3013
+ },
3014
+ }
3015
+
3016
+ if valid {
3017
+ result.Code = 200
3018
+ } else {
3019
+ result.Code = 30000
3020
+ }
3021
+
3022
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3023
+ results = append(results, result)
3024
+ results = append(results, subResults...)
3025
+
3026
+ return results, nil
3027
+ }
3028
+ var Validate_tag_0 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3029
+
3030
+ if input.Config.SkipTestsDict != nil {
3031
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_0"]; skip {
3032
+ return []validationutils.ValidationOutput{}, nil
3033
+ }
3034
+ }
3035
+
3036
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3037
+
3038
+ subResults := make([]validationutils.ValidationOutput, 0)
3039
+ valid := true
3040
+ configureDebugInfo := ""
3041
+ for _, testObjMap := range scope {
3042
+ validationutils.UnusedFunction(testObjMap)
3043
+
3044
+ validTags := validationutils.StringSliceToInterface([]string{`linked_provider`, `linked_order`, `fulfill_request`, `special_req`, `linked_package`})
3045
+ validationutils.UnusedFunction(validTags)
3046
+ tagPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.fulfillment.tags[*].code", true)
3047
+ validationutils.UnusedFunction(tagPath)
3048
+
3049
+ skipCheck := !(validationutils.ArePresent(tagPath))
3050
+ if skipCheck {
3051
+ continue
3052
+ }
3053
+
3054
+ validate := validationutils.AllIn(tagPath, validTags)
3055
+
3056
+ configureDebugInfo = `{"_NAME_":"validate_tag_0","validTags":["linked_provider","linked_order","fulfill_request","special_req","linked_package"],"tagPath":"$.message.intent.fulfillment.tags[*].code","_CONTINUE_":"!(tagPath are present)","_RETURN_":"tagPath all in validTags"}`
3057
+
3058
+ if !validate {
3059
+ result := validationutils.ValidationOutput{
3060
+ TestName: "validate_tag_0",
3061
+ Valid: false,
3062
+ Code: 30000,
3063
+ Description: `#### **validate_tag_0**
3064
+
3065
+ - All elements of $.message.intent.fulfillment.tags[*].code must be in ["linked_provider", "linked_order", "fulfill_request", "special_req", "linked_package"]
3066
+
3067
+ > **Skip if:**
3068
+ >
3069
+ > - $.message.intent.fulfillment.tags[*].code is not in the payload`,
3070
+ DebugInfo: &validationutils.DebugInfo{
3071
+ FedConfig: configureDebugInfo,
3072
+ },
3073
+ }
3074
+ return []validationutils.ValidationOutput{result}, nil
3075
+ }
3076
+
3077
+ }
3078
+
3079
+ result := validationutils.ValidationOutput{
3080
+ TestName: "Validate_tag_0",
3081
+ Valid: valid,
3082
+ Code: 0,
3083
+ DebugInfo: &validationutils.DebugInfo{
3084
+ FedConfig: configureDebugInfo,
3085
+ },
3086
+ }
3087
+
3088
+ if valid {
3089
+ result.Code = 200
3090
+ } else {
3091
+ result.Code = 30000
3092
+ }
3093
+
3094
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3095
+ results = append(results, result)
3096
+ results = append(results, subResults...)
3097
+
3098
+ return results, nil
3099
+ }
3100
+ var Validate_tag_0_linked_provider = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3101
+
3102
+ if input.Config.SkipTestsDict != nil {
3103
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_0_linked_provider"]; skip {
3104
+ return []validationutils.ValidationOutput{}, nil
3105
+ }
3106
+ }
3107
+
3108
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.intent.fulfillment.tags[?(@.code=='linked_provider')]", true)
3109
+
3110
+ subResults := make([]validationutils.ValidationOutput, 0)
3111
+ valid := true
3112
+ configureDebugInfo := ""
3113
+ for _, testObjMap := range scope {
3114
+ validationutils.UnusedFunction(testObjMap)
3115
+
3116
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
3117
+ validationutils.UnusedFunction(subTags)
3118
+ validValues := validationutils.StringSliceToInterface([]string{`id`, `name`})
3119
+ validationutils.UnusedFunction(validValues)
3120
+
3121
+ validate := validationutils.AllIn(subTags, validValues)
3122
+
3123
+ configureDebugInfo = `{"_NAME_":"validate_tag_0_linked_provider","_SCOPE_":"$.message.intent.fulfillment.tags[?(@.code=='linked_provider')]","subTags":"$.list[*].code","validValues":["id","name"],"_RETURN_":"subTags all in validValues"}`
3124
+
3125
+ if !validate {
3126
+ result := validationutils.ValidationOutput{
3127
+ TestName: "validate_tag_0_linked_provider",
3128
+ Valid: false,
3129
+ Code: 30000,
3130
+ Description: `#### **validate_tag_0_linked_provider**
3131
+
3132
+ - All elements of $.message.intent.fulfillment.tags[?(@.code=='linked_provider')].list[*].code must be in ["id", "name"]`,
3133
+ DebugInfo: &validationutils.DebugInfo{
3134
+ FedConfig: configureDebugInfo,
3135
+ },
3136
+ }
3137
+ return []validationutils.ValidationOutput{result}, nil
3138
+ }
3139
+
3140
+ }
3141
+
3142
+ result := validationutils.ValidationOutput{
3143
+ TestName: "Validate_tag_0_linked_provider",
3144
+ Valid: valid,
3145
+ Code: 0,
3146
+ DebugInfo: &validationutils.DebugInfo{
3147
+ FedConfig: configureDebugInfo,
3148
+ },
3149
+ }
3150
+
3151
+ if valid {
3152
+ result.Code = 200
3153
+ } else {
3154
+ result.Code = 30000
3155
+ }
3156
+
3157
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3158
+ results = append(results, result)
3159
+ results = append(results, subResults...)
3160
+
3161
+ return results, nil
3162
+ }
3163
+ var Validate_tag_0_linked_order = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3164
+
3165
+ if input.Config.SkipTestsDict != nil {
3166
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_0_linked_order"]; skip {
3167
+ return []validationutils.ValidationOutput{}, nil
3168
+ }
3169
+ }
3170
+
3171
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.intent.fulfillment.tags[?(@.code=='linked_order')]", true)
3172
+
3173
+ subResults := make([]validationutils.ValidationOutput, 0)
3174
+ valid := true
3175
+ configureDebugInfo := ""
3176
+ for _, testObjMap := range scope {
3177
+ validationutils.UnusedFunction(testObjMap)
3178
+
3179
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
3180
+ validationutils.UnusedFunction(subTags)
3181
+ validValues := validationutils.StringSliceToInterface([]string{`cod_order`, `collection_amount`, `currency`, `declared_value`, `category`, `weight_unit`, `weight_value`, `dim_unit`, `length`, `breadth`, `height`})
3182
+ validationutils.UnusedFunction(validValues)
3183
+
3184
+ validate := validationutils.AllIn(subTags, validValues)
3185
+
3186
+ configureDebugInfo = `{"_NAME_":"validate_tag_0_linked_order","_SCOPE_":"$.message.intent.fulfillment.tags[?(@.code=='linked_order')]","subTags":"$.list[*].code","validValues":["cod_order","collection_amount","currency","declared_value","category","weight_unit","weight_value","dim_unit","length","breadth","height"],"_RETURN_":"subTags all in validValues"}`
3187
+
3188
+ if !validate {
3189
+ result := validationutils.ValidationOutput{
3190
+ TestName: "validate_tag_0_linked_order",
3191
+ Valid: false,
3192
+ Code: 30000,
3193
+ Description: `#### **validate_tag_0_linked_order**
3194
+
3195
+ - All elements of $.message.intent.fulfillment.tags[?(@.code=='linked_order')].list[*].code must be in ["cod_order", "collection_amount", "currency", "declared_value", "category", "weight_unit", "weight_value", "dim_unit", "length", "breadth", "height"]`,
3196
+ DebugInfo: &validationutils.DebugInfo{
3197
+ FedConfig: configureDebugInfo,
3198
+ },
3199
+ }
3200
+ return []validationutils.ValidationOutput{result}, nil
3201
+ }
3202
+
3203
+ }
3204
+
3205
+ result := validationutils.ValidationOutput{
3206
+ TestName: "Validate_tag_0_linked_order",
3207
+ Valid: valid,
3208
+ Code: 0,
3209
+ DebugInfo: &validationutils.DebugInfo{
3210
+ FedConfig: configureDebugInfo,
3211
+ },
3212
+ }
3213
+
3214
+ if valid {
3215
+ result.Code = 200
3216
+ } else {
3217
+ result.Code = 30000
3218
+ }
3219
+
3220
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3221
+ results = append(results, result)
3222
+ results = append(results, subResults...)
3223
+
3224
+ return results, nil
3225
+ }
3226
+ var Validate_tag_0_fulfill_request = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3227
+
3228
+ if input.Config.SkipTestsDict != nil {
3229
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_0_fulfill_request"]; skip {
3230
+ return []validationutils.ValidationOutput{}, nil
3231
+ }
3232
+ }
3233
+
3234
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.intent.fulfillment.tags[?(@.code=='fulfill_request')]", true)
3235
+
3236
+ subResults := make([]validationutils.ValidationOutput, 0)
3237
+ valid := true
3238
+ configureDebugInfo := ""
3239
+ for _, testObjMap := range scope {
3240
+ validationutils.UnusedFunction(testObjMap)
3241
+
3242
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
3243
+ validationutils.UnusedFunction(subTags)
3244
+ validValues := validationutils.StringSliceToInterface([]string{`rider_count`, `order_count`, `rate_basis`, `motorable_distance`, `pickup_slot_start`, `pickup_slot_end`, `delivery_slot_start`, `delivery_slot_end`})
3245
+ validationutils.UnusedFunction(validValues)
3246
+
3247
+ validate := validationutils.AllIn(subTags, validValues)
3248
+
3249
+ configureDebugInfo = `{"_NAME_":"validate_tag_0_fulfill_request","_SCOPE_":"$.message.intent.fulfillment.tags[?(@.code=='fulfill_request')]","subTags":"$.list[*].code","validValues":["rider_count","order_count","rate_basis","motorable_distance","pickup_slot_start","pickup_slot_end","delivery_slot_start","delivery_slot_end"],"_RETURN_":"subTags all in validValues"}`
3250
+
3251
+ if !validate {
3252
+ result := validationutils.ValidationOutput{
3253
+ TestName: "validate_tag_0_fulfill_request",
3254
+ Valid: false,
3255
+ Code: 30000,
3256
+ Description: `#### **validate_tag_0_fulfill_request**
3257
+
3258
+ - All elements of $.message.intent.fulfillment.tags[?(@.code=='fulfill_request')].list[*].code must be in ["rider_count", "order_count", "rate_basis", "motorable_distance", "pickup_slot_start", "pickup_slot_end", "delivery_slot_start", "delivery_slot_end"]`,
3259
+ DebugInfo: &validationutils.DebugInfo{
3260
+ FedConfig: configureDebugInfo,
3261
+ },
3262
+ }
3263
+ return []validationutils.ValidationOutput{result}, nil
3264
+ }
3265
+
3266
+ }
3267
+
3268
+ result := validationutils.ValidationOutput{
3269
+ TestName: "Validate_tag_0_fulfill_request",
3270
+ Valid: valid,
3271
+ Code: 0,
3272
+ DebugInfo: &validationutils.DebugInfo{
3273
+ FedConfig: configureDebugInfo,
3274
+ },
3275
+ }
3276
+
3277
+ if valid {
3278
+ result.Code = 200
3279
+ } else {
3280
+ result.Code = 30000
3281
+ }
3282
+
3283
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3284
+ results = append(results, result)
3285
+ results = append(results, subResults...)
3286
+
3287
+ return results, nil
3288
+ }
3289
+ var Validate_tag_1 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3290
+
3291
+ if input.Config.SkipTestsDict != nil {
3292
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1"]; skip {
3293
+ return []validationutils.ValidationOutput{}, nil
3294
+ }
3295
+ }
3296
+
3297
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3298
+
3299
+ subResults := make([]validationutils.ValidationOutput, 0)
3300
+ valid := true
3301
+ configureDebugInfo := ""
3302
+ for _, testObjMap := range scope {
3303
+ validationutils.UnusedFunction(testObjMap)
3304
+
3305
+ validTags := validationutils.StringSliceToInterface([]string{`lbnp_features`, `lbnp_sla_terms`})
3306
+ validationutils.UnusedFunction(validTags)
3307
+ tagPath := validationutils.GetJsonPath(testObjMap, "$.message.intent.tags[*].code", true)
3308
+ validationutils.UnusedFunction(tagPath)
3309
+
3310
+ skipCheck := !(validationutils.ArePresent(tagPath))
3311
+ if skipCheck {
3312
+ continue
3313
+ }
3314
+
3315
+ validate := validationutils.AllIn(tagPath, validTags)
3316
+
3317
+ configureDebugInfo = `{"_NAME_":"validate_tag_1","validTags":["lbnp_features","lbnp_sla_terms"],"tagPath":"$.message.intent.tags[*].code","_CONTINUE_":"!(tagPath are present)","_RETURN_":"tagPath all in validTags"}`
3318
+
3319
+ if !validate {
3320
+ result := validationutils.ValidationOutput{
3321
+ TestName: "validate_tag_1",
3322
+ Valid: false,
3323
+ Code: 30000,
3324
+ Description: `#### **validate_tag_1**
3325
+
3326
+ - All elements of $.message.intent.tags[*].code must be in ["lbnp_features", "lbnp_sla_terms"]
3327
+
3328
+ > **Skip if:**
3329
+ >
3330
+ > - $.message.intent.tags[*].code is not in the payload`,
3331
+ DebugInfo: &validationutils.DebugInfo{
3332
+ FedConfig: configureDebugInfo,
3333
+ },
3334
+ }
3335
+ return []validationutils.ValidationOutput{result}, nil
3336
+ }
3337
+
3338
+ }
3339
+
3340
+ result := validationutils.ValidationOutput{
3341
+ TestName: "Validate_tag_1",
3342
+ Valid: valid,
3343
+ Code: 0,
3344
+ DebugInfo: &validationutils.DebugInfo{
3345
+ FedConfig: configureDebugInfo,
3346
+ },
3347
+ }
3348
+
3349
+ if valid {
3350
+ result.Code = 200
3351
+ } else {
3352
+ result.Code = 30000
3353
+ }
3354
+
3355
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3356
+ results = append(results, result)
3357
+ results = append(results, subResults...)
3358
+
3359
+ return results, nil
3360
+ }
3361
+ var Validate_tag_1_lbnp_features = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3362
+
3363
+ if input.Config.SkipTestsDict != nil {
3364
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1_lbnp_features"]; skip {
3365
+ return []validationutils.ValidationOutput{}, nil
3366
+ }
3367
+ }
3368
+
3369
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.intent.tags[?(@.code=='lbnp_features')]", true)
3370
+
3371
+ subResults := make([]validationutils.ValidationOutput, 0)
3372
+ valid := true
3373
+ configureDebugInfo := ""
3374
+ for _, testObjMap := range scope {
3375
+ validationutils.UnusedFunction(testObjMap)
3376
+
3377
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
3378
+ validationutils.UnusedFunction(subTags)
3379
+ validValues := validationutils.StringSliceToInterface([]string{`00B`, `00E`, `01D`, `005`, `009`, `00C`, `000`, `001`, `002`, `003`, `004`, `006`, `007`, `008`, `00A`, `00D`, `00F`, `010`, `011`, `012`, `013`, `014`, `015`, `016`, `017`, `018`, `019`, `01A`, `01B`, `01C`, `01D`, `01E`, `01F`, `020`, `021`, `022`})
3380
+ validationutils.UnusedFunction(validValues)
3381
+
3382
+ validate := validationutils.AllIn(subTags, validValues)
3383
+
3384
+ configureDebugInfo = `{"_NAME_":"validate_tag_1_lbnp_features","_SCOPE_":"$.message.intent.tags[?(@.code=='lbnp_features')]","subTags":"$.list[*].code","validValues":["00B","00E","01D","005","009","00C","000","001","002","003","004","006","007","008","00A","00D","00F","010","011","012","013","014","015","016","017","018","019","01A","01B","01C","01D","01E","01F","020","021","022"],"_RETURN_":"subTags all in validValues"}`
3385
+
3386
+ if !validate {
3387
+ result := validationutils.ValidationOutput{
3388
+ TestName: "validate_tag_1_lbnp_features",
3389
+ Valid: false,
3390
+ Code: 30000,
3391
+ Description: `#### **validate_tag_1_lbnp_features**
3392
+
3393
+ - All elements of $.message.intent.tags[?(@.code=='lbnp_features')].list[*].code must be in ["00B", "00E", "01D", "005", "009", "00C", "000", "001", "002", "003", "004", "006", "007", "008", "00A", "00D", "00F", "010", "011", "012", "013", "014", "015", "016", "017", "018", "019", "01A", "01B", "01C", "01D", "01E", "01F", "020", "021", "022"]`,
3394
+ DebugInfo: &validationutils.DebugInfo{
3395
+ FedConfig: configureDebugInfo,
3396
+ },
3397
+ }
3398
+ return []validationutils.ValidationOutput{result}, nil
3399
+ }
3400
+
3401
+ }
3402
+
3403
+ result := validationutils.ValidationOutput{
3404
+ TestName: "Validate_tag_1_lbnp_features",
3405
+ Valid: valid,
3406
+ Code: 0,
3407
+ DebugInfo: &validationutils.DebugInfo{
3408
+ FedConfig: configureDebugInfo,
3409
+ },
3410
+ }
3411
+
3412
+ if valid {
3413
+ result.Code = 200
3414
+ } else {
3415
+ result.Code = 30000
3416
+ }
3417
+
3418
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3419
+ results = append(results, result)
3420
+ results = append(results, subResults...)
3421
+
3422
+ return results, nil
3423
+ }
3424
+ var Validate_tag_1_lbnp_sla_terms = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3425
+
3426
+ if input.Config.SkipTestsDict != nil {
3427
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1_lbnp_sla_terms"]; skip {
3428
+ return []validationutils.ValidationOutput{}, nil
3429
+ }
3430
+ }
3431
+
3432
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.intent.tags[?(@.code=='lbnp_sla_terms')]", true)
3433
+
3434
+ subResults := make([]validationutils.ValidationOutput, 0)
3435
+ valid := true
3436
+ configureDebugInfo := ""
3437
+ for _, testObjMap := range scope {
3438
+ validationutils.UnusedFunction(testObjMap)
3439
+
3440
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
3441
+ validationutils.UnusedFunction(subTags)
3442
+ validValues := validationutils.StringSliceToInterface([]string{`metric`, `base_unit`, `base_min`, `base_max`, `penalty_min`, `penalty_max`, `penalty_unit`, `penalty_value`})
3443
+ validationutils.UnusedFunction(validValues)
3444
+
3445
+ validate := validationutils.AllIn(subTags, validValues)
3446
+
3447
+ configureDebugInfo = `{"_NAME_":"validate_tag_1_lbnp_sla_terms","_SCOPE_":"$.message.intent.tags[?(@.code=='lbnp_sla_terms')]","subTags":"$.list[*].code","validValues":["metric","base_unit","base_min","base_max","penalty_min","penalty_max","penalty_unit","penalty_value"],"_RETURN_":"subTags all in validValues"}`
3448
+
3449
+ if !validate {
3450
+ result := validationutils.ValidationOutput{
3451
+ TestName: "validate_tag_1_lbnp_sla_terms",
3452
+ Valid: false,
3453
+ Code: 30000,
3454
+ Description: `#### **validate_tag_1_lbnp_sla_terms**
3455
+
3456
+ - All elements of $.message.intent.tags[?(@.code=='lbnp_sla_terms')].list[*].code must be in ["metric", "base_unit", "base_min", "base_max", "penalty_min", "penalty_max", "penalty_unit", "penalty_value"]`,
3457
+ DebugInfo: &validationutils.DebugInfo{
3458
+ FedConfig: configureDebugInfo,
3459
+ },
3460
+ }
3461
+ return []validationutils.ValidationOutput{result}, nil
3462
+ }
3463
+
3464
+ }
3465
+
3466
+ result := validationutils.ValidationOutput{
3467
+ TestName: "Validate_tag_1_lbnp_sla_terms",
3468
+ Valid: valid,
3469
+ Code: 0,
3470
+ DebugInfo: &validationutils.DebugInfo{
3471
+ FedConfig: configureDebugInfo,
3472
+ },
3473
+ }
3474
+
3475
+ if valid {
3476
+ result.Code = 200
3477
+ } else {
3478
+ result.Code = 30000
3479
+ }
3480
+
3481
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3482
+ results = append(results, result)
3483
+ results = append(results, subResults...)
3484
+
3485
+ return results, nil
3486
+ }
3487
+
3488
+ var testFunctions = validationutils.TestFunctionArray{
3489
+ REQUIRED_CONTEXT_DOMAIN,
3490
+ REQUIRED_CONTEXT_COUNTRY,
3491
+ REQUIRED_CONTEXT_CITY,
3492
+ REQUIRED_CONTEXT_ACTION,
3493
+ REQUIRED_CONTEXT_CORE_VERSION,
3494
+ REQUIRED_CONTEXT_BAP_ID,
3495
+ REQUIRED_CONTEXT_BAP_URI,
3496
+ REQUIRED_CONTEXT_TRANSACTION_ID,
3497
+ REQUIRED_CONTEXT_MESSAGE_ID,
3498
+ REQUIRED_CONTEXT_TIMESTAMP,
3499
+ REQUIRED_CONTEXT_TTL,
3500
+ REQUIRED_MESSAGE_ID,
3501
+ REQUIRED_MESSAGE_DAYS,
3502
+ REQUIRED_MESSAGE_HOLIDAYS,
3503
+ REQUIRED_MESSAGE_DURATION,
3504
+ REQUIRED_MESSAGE_START,
3505
+ REQUIRED_MESSAGE_END,
3506
+ REQUIRED_MESSAGE_TYPE,
3507
+ REQUIRED_MESSAGE_GPS,
3508
+ REQUIRED_MESSAGE_AREA_CODE,
3509
+ REQUIRED_MESSAGE_GPS_21,
3510
+ REQUIRED_MESSAGE_AREA_CODE_22,
3511
+ REQUIRED_MESSAGE_TYPE_23,
3512
+ REQUIRED_MESSAGE_UNIT,
3513
+ REQUIRED_MESSAGE_VALUE,
3514
+ REQUIRED_MESSAGE_UNIT_26,
3515
+ REQUIRED_MESSAGE_VALUE_27,
3516
+ REQUIRED_MESSAGE_UNIT_28,
3517
+ REQUIRED_MESSAGE_VALUE_29,
3518
+ REQUIRED_MESSAGE_UNIT_30,
3519
+ REQUIRED_MESSAGE_VALUE_31,
3520
+ REQUIRED_MESSAGE_CATEGORY,
3521
+ REQUIRED_MESSAGE_CURRENCY,
3522
+ REQUIRED_MESSAGE_VALUE_34,
3523
+ REQUIRED_MESSAGE_DANGEROUS_GOODS,
3524
+ VALID_ENUM_CONTEXT_DOMAIN,
3525
+ VALID_ENUM_MESSAGE_TYPE,
3526
+ VALID_ENUM_MESSAGE_TYPE_3,
3527
+ VALID_ENUM_MESSAGE_CODE,
3528
+ VALID_ENUM_MESSAGE_TYPE_5,
3529
+ VALID_ENUM_MESSAGE_CODE_6,
3530
+ VALID_ENUM_MESSAGE_TYPE_7,
3531
+ VALID_ENUM_MESSAGE_ID,
3532
+ Validate_tag_0,
3533
+ Validate_tag_0_linked_provider,
3534
+ Validate_tag_0_linked_order,
3535
+ Validate_tag_0_fulfill_request,
3536
+ Validate_tag_1,
3537
+ Validate_tag_1_lbnp_features,
3538
+ Validate_tag_1_lbnp_sla_terms,
3539
+ }
3540
+
3541
+ allResults := make([]validationutils.ValidationOutput, 0)
3542
+
3543
+ for _, testFunc := range testFunctions {
3544
+ results, err := testFunc(input)
3545
+ if err != nil {
3546
+ return nil, err
3547
+ }
3548
+ allResults = append(allResults, results...)
3549
+ }
3550
+
3551
+ subResults = allResults
3552
+ // if all subResults are valid, then valid is true
3553
+ valid = true
3554
+ for _, res := range subResults {
3555
+ if !res.Valid {
3556
+ valid = false
3557
+ break
3558
+ }
3559
+ }
3560
+
3561
+ configureDebugInfo = `NESTED_TEST_OBJECT`
3562
+
3563
+ }
3564
+
3565
+ result := validationutils.ValidationOutput{
3566
+ TestName: "SearchValidations",
3567
+ Valid: valid,
3568
+ Code: 0,
3569
+ DebugInfo: &validationutils.DebugInfo{
3570
+ FedConfig: configureDebugInfo,
3571
+ },
3572
+ }
3573
+
3574
+ if valid {
3575
+ result.Code = 200
3576
+ } else {
3577
+ result.Code = 30000
3578
+ }
3579
+
3580
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3581
+ results = append(results, result)
3582
+ results = append(results, subResults...)
3583
+
3584
+ return results, nil
3585
+ }