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,3356 @@
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 On_search_Tests(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
10
+ totalResults, err := On_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 == "On_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 On_searchValidations = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
65
+
66
+ if input.Config.SkipTestsDict != nil {
67
+ if _, skip := input.Config.SkipTestsDict["On_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_BPP_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
516
+
517
+ if input.Config.SkipTestsDict != nil {
518
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BPP_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.bpp_id", true)
532
+ validationutils.UnusedFunction(attr)
533
+
534
+ validate := validationutils.ArePresent(attr)
535
+
536
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BPP_ID","attr":"$.context.bpp_id","_RETURN_":"attr are present"}`
537
+
538
+ if !validate {
539
+ result := validationutils.ValidationOutput{
540
+ TestName: "REQUIRED_CONTEXT_BPP_ID",
541
+ Valid: false,
542
+ Code: 30000,
543
+ Description: `#### **REQUIRED_CONTEXT_BPP_ID**
544
+
545
+ - $.context.bpp_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_BPP_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_BPP_URI = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
577
+
578
+ if input.Config.SkipTestsDict != nil {
579
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BPP_URI"]; 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.bpp_uri", true)
593
+ validationutils.UnusedFunction(attr)
594
+
595
+ validate := validationutils.ArePresent(attr)
596
+
597
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BPP_URI","attr":"$.context.bpp_uri","_RETURN_":"attr are present"}`
598
+
599
+ if !validate {
600
+ result := validationutils.ValidationOutput{
601
+ TestName: "REQUIRED_CONTEXT_BPP_URI",
602
+ Valid: false,
603
+ Code: 30000,
604
+ Description: `#### **REQUIRED_CONTEXT_BPP_URI**
605
+
606
+ - $.context.bpp_uri 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_BPP_URI",
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_TRANSACTION_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
638
+
639
+ if input.Config.SkipTestsDict != nil {
640
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TRANSACTION_ID"]; 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.transaction_id", true)
654
+ validationutils.UnusedFunction(attr)
655
+
656
+ validate := validationutils.ArePresent(attr)
657
+
658
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TRANSACTION_ID","attr":"$.context.transaction_id","_RETURN_":"attr are present"}`
659
+
660
+ if !validate {
661
+ result := validationutils.ValidationOutput{
662
+ TestName: "REQUIRED_CONTEXT_TRANSACTION_ID",
663
+ Valid: false,
664
+ Code: 30000,
665
+ Description: `#### **REQUIRED_CONTEXT_TRANSACTION_ID**
666
+
667
+ - $.context.transaction_id 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_TRANSACTION_ID",
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_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
699
+
700
+ if input.Config.SkipTestsDict != nil {
701
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_MESSAGE_ID"]; 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.message_id", true)
715
+ validationutils.UnusedFunction(attr)
716
+
717
+ validate := validationutils.ArePresent(attr)
718
+
719
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_MESSAGE_ID","attr":"$.context.message_id","_RETURN_":"attr are present"}`
720
+
721
+ if !validate {
722
+ result := validationutils.ValidationOutput{
723
+ TestName: "REQUIRED_CONTEXT_MESSAGE_ID",
724
+ Valid: false,
725
+ Code: 30000,
726
+ Description: `#### **REQUIRED_CONTEXT_MESSAGE_ID**
727
+
728
+ - $.context.message_id 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_MESSAGE_ID",
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_CONTEXT_TIMESTAMP = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
760
+
761
+ if input.Config.SkipTestsDict != nil {
762
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TIMESTAMP"]; 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, "$.context.timestamp", true)
776
+ validationutils.UnusedFunction(attr)
777
+
778
+ validate := validationutils.ArePresent(attr)
779
+
780
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TIMESTAMP","attr":"$.context.timestamp","_RETURN_":"attr are present"}`
781
+
782
+ if !validate {
783
+ result := validationutils.ValidationOutput{
784
+ TestName: "REQUIRED_CONTEXT_TIMESTAMP",
785
+ Valid: false,
786
+ Code: 30000,
787
+ Description: `#### **REQUIRED_CONTEXT_TIMESTAMP**
788
+
789
+ - $.context.timestamp must be present in the payload`,
790
+ DebugInfo: &validationutils.DebugInfo{
791
+ FedConfig: configureDebugInfo,
792
+ },
793
+ }
794
+ return []validationutils.ValidationOutput{result}, nil
795
+ }
796
+
797
+ }
798
+
799
+ result := validationutils.ValidationOutput{
800
+ TestName: "REQUIRED_CONTEXT_TIMESTAMP",
801
+ Valid: valid,
802
+ Code: 0,
803
+ DebugInfo: &validationutils.DebugInfo{
804
+ FedConfig: configureDebugInfo,
805
+ },
806
+ }
807
+
808
+ if valid {
809
+ result.Code = 200
810
+ } else {
811
+ result.Code = 30000
812
+ }
813
+
814
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
815
+ results = append(results, result)
816
+ results = append(results, subResults...)
817
+
818
+ return results, nil
819
+ }
820
+ var REQUIRED_MESSAGE_NAME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
821
+
822
+ if input.Config.SkipTestsDict != nil {
823
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_NAME"]; skip {
824
+ return []validationutils.ValidationOutput{}, nil
825
+ }
826
+ }
827
+
828
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
829
+
830
+ subResults := make([]validationutils.ValidationOutput, 0)
831
+ valid := true
832
+ configureDebugInfo := ""
833
+ for _, testObjMap := range scope {
834
+ validationutils.UnusedFunction(testObjMap)
835
+
836
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/descriptor'].name", true)
837
+ validationutils.UnusedFunction(attr)
838
+
839
+ validate := validationutils.ArePresent(attr)
840
+
841
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_NAME","attr":"$.message.catalog['bpp/descriptor'].name","_RETURN_":"attr are present"}`
842
+
843
+ if !validate {
844
+ result := validationutils.ValidationOutput{
845
+ TestName: "REQUIRED_MESSAGE_NAME",
846
+ Valid: false,
847
+ Code: 30000,
848
+ Description: `#### **REQUIRED_MESSAGE_NAME**
849
+
850
+ - $.message.catalog['bpp/descriptor'].name must be present in the payload`,
851
+ DebugInfo: &validationutils.DebugInfo{
852
+ FedConfig: configureDebugInfo,
853
+ },
854
+ }
855
+ return []validationutils.ValidationOutput{result}, nil
856
+ }
857
+
858
+ }
859
+
860
+ result := validationutils.ValidationOutput{
861
+ TestName: "REQUIRED_MESSAGE_NAME",
862
+ Valid: valid,
863
+ Code: 0,
864
+ DebugInfo: &validationutils.DebugInfo{
865
+ FedConfig: configureDebugInfo,
866
+ },
867
+ }
868
+
869
+ if valid {
870
+ result.Code = 200
871
+ } else {
872
+ result.Code = 30000
873
+ }
874
+
875
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
876
+ results = append(results, result)
877
+ results = append(results, subResults...)
878
+
879
+ return results, nil
880
+ }
881
+ var REQUIRED_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
882
+
883
+ if input.Config.SkipTestsDict != nil {
884
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID"]; skip {
885
+ return []validationutils.ValidationOutput{}, nil
886
+ }
887
+ }
888
+
889
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
890
+
891
+ subResults := make([]validationutils.ValidationOutput, 0)
892
+ valid := true
893
+ configureDebugInfo := ""
894
+ for _, testObjMap := range scope {
895
+ validationutils.UnusedFunction(testObjMap)
896
+
897
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].id", true)
898
+ validationutils.UnusedFunction(attr)
899
+
900
+ validate := validationutils.ArePresent(attr)
901
+
902
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID","attr":"$.message.catalog['bpp/providers'][*].id","_RETURN_":"attr are present"}`
903
+
904
+ if !validate {
905
+ result := validationutils.ValidationOutput{
906
+ TestName: "REQUIRED_MESSAGE_ID",
907
+ Valid: false,
908
+ Code: 30000,
909
+ Description: `#### **REQUIRED_MESSAGE_ID**
910
+
911
+ - $.message.catalog['bpp/providers'][*].id must be present in the payload`,
912
+ DebugInfo: &validationutils.DebugInfo{
913
+ FedConfig: configureDebugInfo,
914
+ },
915
+ }
916
+ return []validationutils.ValidationOutput{result}, nil
917
+ }
918
+
919
+ }
920
+
921
+ result := validationutils.ValidationOutput{
922
+ TestName: "REQUIRED_MESSAGE_ID",
923
+ Valid: valid,
924
+ Code: 0,
925
+ DebugInfo: &validationutils.DebugInfo{
926
+ FedConfig: configureDebugInfo,
927
+ },
928
+ }
929
+
930
+ if valid {
931
+ result.Code = 200
932
+ } else {
933
+ result.Code = 30000
934
+ }
935
+
936
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
937
+ results = append(results, result)
938
+ results = append(results, subResults...)
939
+
940
+ return results, nil
941
+ }
942
+ var REQUIRED_MESSAGE_NAME_15 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
943
+
944
+ if input.Config.SkipTestsDict != nil {
945
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_NAME_15"]; skip {
946
+ return []validationutils.ValidationOutput{}, nil
947
+ }
948
+ }
949
+
950
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
951
+
952
+ subResults := make([]validationutils.ValidationOutput, 0)
953
+ valid := true
954
+ configureDebugInfo := ""
955
+ for _, testObjMap := range scope {
956
+ validationutils.UnusedFunction(testObjMap)
957
+
958
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].descriptor.name", true)
959
+ validationutils.UnusedFunction(attr)
960
+
961
+ validate := validationutils.ArePresent(attr)
962
+
963
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_NAME_15","attr":"$.message.catalog['bpp/providers'][*].descriptor.name","_RETURN_":"attr are present"}`
964
+
965
+ if !validate {
966
+ result := validationutils.ValidationOutput{
967
+ TestName: "REQUIRED_MESSAGE_NAME_15",
968
+ Valid: false,
969
+ Code: 30000,
970
+ Description: `#### **REQUIRED_MESSAGE_NAME_15**
971
+
972
+ - $.message.catalog['bpp/providers'][*].descriptor.name must be present in the payload`,
973
+ DebugInfo: &validationutils.DebugInfo{
974
+ FedConfig: configureDebugInfo,
975
+ },
976
+ }
977
+ return []validationutils.ValidationOutput{result}, nil
978
+ }
979
+
980
+ }
981
+
982
+ result := validationutils.ValidationOutput{
983
+ TestName: "REQUIRED_MESSAGE_NAME_15",
984
+ Valid: valid,
985
+ Code: 0,
986
+ DebugInfo: &validationutils.DebugInfo{
987
+ FedConfig: configureDebugInfo,
988
+ },
989
+ }
990
+
991
+ if valid {
992
+ result.Code = 200
993
+ } else {
994
+ result.Code = 30000
995
+ }
996
+
997
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
998
+ results = append(results, result)
999
+ results = append(results, subResults...)
1000
+
1001
+ return results, nil
1002
+ }
1003
+ var REQUIRED_MESSAGE_SHORT_DESC = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1004
+
1005
+ if input.Config.SkipTestsDict != nil {
1006
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_SHORT_DESC"]; skip {
1007
+ return []validationutils.ValidationOutput{}, nil
1008
+ }
1009
+ }
1010
+
1011
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1012
+
1013
+ subResults := make([]validationutils.ValidationOutput, 0)
1014
+ valid := true
1015
+ configureDebugInfo := ""
1016
+ for _, testObjMap := range scope {
1017
+ validationutils.UnusedFunction(testObjMap)
1018
+
1019
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].descriptor.short_desc", true)
1020
+ validationutils.UnusedFunction(attr)
1021
+
1022
+ validate := validationutils.ArePresent(attr)
1023
+
1024
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_SHORT_DESC","attr":"$.message.catalog['bpp/providers'][*].descriptor.short_desc","_RETURN_":"attr are present"}`
1025
+
1026
+ if !validate {
1027
+ result := validationutils.ValidationOutput{
1028
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC",
1029
+ Valid: false,
1030
+ Code: 30000,
1031
+ Description: `#### **REQUIRED_MESSAGE_SHORT_DESC**
1032
+
1033
+ - $.message.catalog['bpp/providers'][*].descriptor.short_desc must be present in the payload`,
1034
+ DebugInfo: &validationutils.DebugInfo{
1035
+ FedConfig: configureDebugInfo,
1036
+ },
1037
+ }
1038
+ return []validationutils.ValidationOutput{result}, nil
1039
+ }
1040
+
1041
+ }
1042
+
1043
+ result := validationutils.ValidationOutput{
1044
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC",
1045
+ Valid: valid,
1046
+ Code: 0,
1047
+ DebugInfo: &validationutils.DebugInfo{
1048
+ FedConfig: configureDebugInfo,
1049
+ },
1050
+ }
1051
+
1052
+ if valid {
1053
+ result.Code = 200
1054
+ } else {
1055
+ result.Code = 30000
1056
+ }
1057
+
1058
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1059
+ results = append(results, result)
1060
+ results = append(results, subResults...)
1061
+
1062
+ return results, nil
1063
+ }
1064
+ var REQUIRED_MESSAGE_LONG_DESC = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1065
+
1066
+ if input.Config.SkipTestsDict != nil {
1067
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_LONG_DESC"]; skip {
1068
+ return []validationutils.ValidationOutput{}, nil
1069
+ }
1070
+ }
1071
+
1072
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1073
+
1074
+ subResults := make([]validationutils.ValidationOutput, 0)
1075
+ valid := true
1076
+ configureDebugInfo := ""
1077
+ for _, testObjMap := range scope {
1078
+ validationutils.UnusedFunction(testObjMap)
1079
+
1080
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].descriptor.long_desc", true)
1081
+ validationutils.UnusedFunction(attr)
1082
+
1083
+ validate := validationutils.ArePresent(attr)
1084
+
1085
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_LONG_DESC","attr":"$.message.catalog['bpp/providers'][*].descriptor.long_desc","_RETURN_":"attr are present"}`
1086
+
1087
+ if !validate {
1088
+ result := validationutils.ValidationOutput{
1089
+ TestName: "REQUIRED_MESSAGE_LONG_DESC",
1090
+ Valid: false,
1091
+ Code: 30000,
1092
+ Description: `#### **REQUIRED_MESSAGE_LONG_DESC**
1093
+
1094
+ - $.message.catalog['bpp/providers'][*].descriptor.long_desc must be present in the payload`,
1095
+ DebugInfo: &validationutils.DebugInfo{
1096
+ FedConfig: configureDebugInfo,
1097
+ },
1098
+ }
1099
+ return []validationutils.ValidationOutput{result}, nil
1100
+ }
1101
+
1102
+ }
1103
+
1104
+ result := validationutils.ValidationOutput{
1105
+ TestName: "REQUIRED_MESSAGE_LONG_DESC",
1106
+ Valid: valid,
1107
+ Code: 0,
1108
+ DebugInfo: &validationutils.DebugInfo{
1109
+ FedConfig: configureDebugInfo,
1110
+ },
1111
+ }
1112
+
1113
+ if valid {
1114
+ result.Code = 200
1115
+ } else {
1116
+ result.Code = 30000
1117
+ }
1118
+
1119
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1120
+ results = append(results, result)
1121
+ results = append(results, subResults...)
1122
+
1123
+ return results, nil
1124
+ }
1125
+ var REQUIRED_MESSAGE_ID_18 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1126
+
1127
+ if input.Config.SkipTestsDict != nil {
1128
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID_18"]; skip {
1129
+ return []validationutils.ValidationOutput{}, nil
1130
+ }
1131
+ }
1132
+
1133
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1134
+
1135
+ subResults := make([]validationutils.ValidationOutput, 0)
1136
+ valid := true
1137
+ configureDebugInfo := ""
1138
+ for _, testObjMap := range scope {
1139
+ validationutils.UnusedFunction(testObjMap)
1140
+
1141
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].categories[*].id", true)
1142
+ validationutils.UnusedFunction(attr)
1143
+ enumList := validationutils.StringSliceToInterface([]string{`Express Delivery`, `Standard Delivery`, `Immediate Delivery`, `Next Day Delivery`, `Same Day Delivery`, `Instant Delivery`})
1144
+ validationutils.UnusedFunction(enumList)
1145
+
1146
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1147
+
1148
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID_18","attr":"$.message.catalog['bpp/providers'][*].categories[*].id","_RETURN_":"attr are present && attr all in enumList","enumList":["Express Delivery","Standard Delivery","Immediate Delivery","Next Day Delivery","Same Day Delivery","Instant Delivery"]}`
1149
+
1150
+ if !validate {
1151
+ result := validationutils.ValidationOutput{
1152
+ TestName: "REQUIRED_MESSAGE_ID_18",
1153
+ Valid: false,
1154
+ Code: 30000,
1155
+ Description: `#### **REQUIRED_MESSAGE_ID_18**
1156
+
1157
+ **All of the following must be true:**
1158
+ - $.message.catalog['bpp/providers'][*].categories[*].id must be present in the payload
1159
+ - All elements of $.message.catalog['bpp/providers'][*].categories[*].id must be in ["Express Delivery", "Standard Delivery", "Immediate Delivery", "Next Day Delivery", "Same Day Delivery", "Instant Delivery"]`,
1160
+ DebugInfo: &validationutils.DebugInfo{
1161
+ FedConfig: configureDebugInfo,
1162
+ },
1163
+ }
1164
+ return []validationutils.ValidationOutput{result}, nil
1165
+ }
1166
+
1167
+ }
1168
+
1169
+ result := validationutils.ValidationOutput{
1170
+ TestName: "REQUIRED_MESSAGE_ID_18",
1171
+ Valid: valid,
1172
+ Code: 0,
1173
+ DebugInfo: &validationutils.DebugInfo{
1174
+ FedConfig: configureDebugInfo,
1175
+ },
1176
+ }
1177
+
1178
+ if valid {
1179
+ result.Code = 200
1180
+ } else {
1181
+ result.Code = 30000
1182
+ }
1183
+
1184
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1185
+ results = append(results, result)
1186
+ results = append(results, subResults...)
1187
+
1188
+ return results, nil
1189
+ }
1190
+ var REQUIRED_MESSAGE_LABEL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1191
+
1192
+ if input.Config.SkipTestsDict != nil {
1193
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_LABEL"]; skip {
1194
+ return []validationutils.ValidationOutput{}, nil
1195
+ }
1196
+ }
1197
+
1198
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1199
+
1200
+ subResults := make([]validationutils.ValidationOutput, 0)
1201
+ valid := true
1202
+ configureDebugInfo := ""
1203
+ for _, testObjMap := range scope {
1204
+ validationutils.UnusedFunction(testObjMap)
1205
+
1206
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].categories[*].time.label", true)
1207
+ validationutils.UnusedFunction(attr)
1208
+
1209
+ validate := validationutils.ArePresent(attr)
1210
+
1211
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_LABEL","attr":"$.message.catalog['bpp/providers'][*].categories[*].time.label","_RETURN_":"attr are present"}`
1212
+
1213
+ if !validate {
1214
+ result := validationutils.ValidationOutput{
1215
+ TestName: "REQUIRED_MESSAGE_LABEL",
1216
+ Valid: false,
1217
+ Code: 30000,
1218
+ Description: `#### **REQUIRED_MESSAGE_LABEL**
1219
+
1220
+ - $.message.catalog['bpp/providers'][*].categories[*].time.label must be present in the payload`,
1221
+ DebugInfo: &validationutils.DebugInfo{
1222
+ FedConfig: configureDebugInfo,
1223
+ },
1224
+ }
1225
+ return []validationutils.ValidationOutput{result}, nil
1226
+ }
1227
+
1228
+ }
1229
+
1230
+ result := validationutils.ValidationOutput{
1231
+ TestName: "REQUIRED_MESSAGE_LABEL",
1232
+ Valid: valid,
1233
+ Code: 0,
1234
+ DebugInfo: &validationutils.DebugInfo{
1235
+ FedConfig: configureDebugInfo,
1236
+ },
1237
+ }
1238
+
1239
+ if valid {
1240
+ result.Code = 200
1241
+ } else {
1242
+ result.Code = 30000
1243
+ }
1244
+
1245
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1246
+ results = append(results, result)
1247
+ results = append(results, subResults...)
1248
+
1249
+ return results, nil
1250
+ }
1251
+ var REQUIRED_MESSAGE_DURATION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1252
+
1253
+ if input.Config.SkipTestsDict != nil {
1254
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_DURATION"]; skip {
1255
+ return []validationutils.ValidationOutput{}, nil
1256
+ }
1257
+ }
1258
+
1259
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1260
+
1261
+ subResults := make([]validationutils.ValidationOutput, 0)
1262
+ valid := true
1263
+ configureDebugInfo := ""
1264
+ for _, testObjMap := range scope {
1265
+ validationutils.UnusedFunction(testObjMap)
1266
+
1267
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].categories[*].time.duration", true)
1268
+ validationutils.UnusedFunction(attr)
1269
+
1270
+ validate := validationutils.ArePresent(attr)
1271
+
1272
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_DURATION","attr":"$.message.catalog['bpp/providers'][*].categories[*].time.duration","_RETURN_":"attr are present"}`
1273
+
1274
+ if !validate {
1275
+ result := validationutils.ValidationOutput{
1276
+ TestName: "REQUIRED_MESSAGE_DURATION",
1277
+ Valid: false,
1278
+ Code: 30000,
1279
+ Description: `#### **REQUIRED_MESSAGE_DURATION**
1280
+
1281
+ - $.message.catalog['bpp/providers'][*].categories[*].time.duration must be present in the payload`,
1282
+ DebugInfo: &validationutils.DebugInfo{
1283
+ FedConfig: configureDebugInfo,
1284
+ },
1285
+ }
1286
+ return []validationutils.ValidationOutput{result}, nil
1287
+ }
1288
+
1289
+ }
1290
+
1291
+ result := validationutils.ValidationOutput{
1292
+ TestName: "REQUIRED_MESSAGE_DURATION",
1293
+ Valid: valid,
1294
+ Code: 0,
1295
+ DebugInfo: &validationutils.DebugInfo{
1296
+ FedConfig: configureDebugInfo,
1297
+ },
1298
+ }
1299
+
1300
+ if valid {
1301
+ result.Code = 200
1302
+ } else {
1303
+ result.Code = 30000
1304
+ }
1305
+
1306
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1307
+ results = append(results, result)
1308
+ results = append(results, subResults...)
1309
+
1310
+ return results, nil
1311
+ }
1312
+ var REQUIRED_MESSAGE_TIMESTAMP = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1313
+
1314
+ if input.Config.SkipTestsDict != nil {
1315
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_TIMESTAMP"]; skip {
1316
+ return []validationutils.ValidationOutput{}, nil
1317
+ }
1318
+ }
1319
+
1320
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1321
+
1322
+ subResults := make([]validationutils.ValidationOutput, 0)
1323
+ valid := true
1324
+ configureDebugInfo := ""
1325
+ for _, testObjMap := range scope {
1326
+ validationutils.UnusedFunction(testObjMap)
1327
+
1328
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].categories[*].time.timestamp", true)
1329
+ validationutils.UnusedFunction(attr)
1330
+
1331
+ validate := validationutils.ArePresent(attr)
1332
+
1333
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_TIMESTAMP","attr":"$.message.catalog['bpp/providers'][*].categories[*].time.timestamp","_RETURN_":"attr are present"}`
1334
+
1335
+ if !validate {
1336
+ result := validationutils.ValidationOutput{
1337
+ TestName: "REQUIRED_MESSAGE_TIMESTAMP",
1338
+ Valid: false,
1339
+ Code: 30000,
1340
+ Description: `#### **REQUIRED_MESSAGE_TIMESTAMP**
1341
+
1342
+ - $.message.catalog['bpp/providers'][*].categories[*].time.timestamp must be present in the payload`,
1343
+ DebugInfo: &validationutils.DebugInfo{
1344
+ FedConfig: configureDebugInfo,
1345
+ },
1346
+ }
1347
+ return []validationutils.ValidationOutput{result}, nil
1348
+ }
1349
+
1350
+ }
1351
+
1352
+ result := validationutils.ValidationOutput{
1353
+ TestName: "REQUIRED_MESSAGE_TIMESTAMP",
1354
+ Valid: valid,
1355
+ Code: 0,
1356
+ DebugInfo: &validationutils.DebugInfo{
1357
+ FedConfig: configureDebugInfo,
1358
+ },
1359
+ }
1360
+
1361
+ if valid {
1362
+ result.Code = 200
1363
+ } else {
1364
+ result.Code = 30000
1365
+ }
1366
+
1367
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1368
+ results = append(results, result)
1369
+ results = append(results, subResults...)
1370
+
1371
+ return results, nil
1372
+ }
1373
+ var REQUIRED_MESSAGE_ID_22 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1374
+
1375
+ if input.Config.SkipTestsDict != nil {
1376
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID_22"]; skip {
1377
+ return []validationutils.ValidationOutput{}, nil
1378
+ }
1379
+ }
1380
+
1381
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1382
+
1383
+ subResults := make([]validationutils.ValidationOutput, 0)
1384
+ valid := true
1385
+ configureDebugInfo := ""
1386
+ for _, testObjMap := range scope {
1387
+ validationutils.UnusedFunction(testObjMap)
1388
+
1389
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].fulfillments[*].id", true)
1390
+ validationutils.UnusedFunction(attr)
1391
+
1392
+ validate := validationutils.ArePresent(attr)
1393
+
1394
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID_22","attr":"$.message.catalog['bpp/providers'][*].fulfillments[*].id","_RETURN_":"attr are present"}`
1395
+
1396
+ if !validate {
1397
+ result := validationutils.ValidationOutput{
1398
+ TestName: "REQUIRED_MESSAGE_ID_22",
1399
+ Valid: false,
1400
+ Code: 30000,
1401
+ Description: `#### **REQUIRED_MESSAGE_ID_22**
1402
+
1403
+ - $.message.catalog['bpp/providers'][*].fulfillments[*].id must be present in the payload`,
1404
+ DebugInfo: &validationutils.DebugInfo{
1405
+ FedConfig: configureDebugInfo,
1406
+ },
1407
+ }
1408
+ return []validationutils.ValidationOutput{result}, nil
1409
+ }
1410
+
1411
+ }
1412
+
1413
+ result := validationutils.ValidationOutput{
1414
+ TestName: "REQUIRED_MESSAGE_ID_22",
1415
+ Valid: valid,
1416
+ Code: 0,
1417
+ DebugInfo: &validationutils.DebugInfo{
1418
+ FedConfig: configureDebugInfo,
1419
+ },
1420
+ }
1421
+
1422
+ if valid {
1423
+ result.Code = 200
1424
+ } else {
1425
+ result.Code = 30000
1426
+ }
1427
+
1428
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1429
+ results = append(results, result)
1430
+ results = append(results, subResults...)
1431
+
1432
+ return results, nil
1433
+ }
1434
+ var REQUIRED_MESSAGE_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1435
+
1436
+ if input.Config.SkipTestsDict != nil {
1437
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_TYPE"]; skip {
1438
+ return []validationutils.ValidationOutput{}, nil
1439
+ }
1440
+ }
1441
+
1442
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1443
+
1444
+ subResults := make([]validationutils.ValidationOutput, 0)
1445
+ valid := true
1446
+ configureDebugInfo := ""
1447
+ for _, testObjMap := range scope {
1448
+ validationutils.UnusedFunction(testObjMap)
1449
+
1450
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].fulfillments[*].type", true)
1451
+ validationutils.UnusedFunction(attr)
1452
+ enumList := validationutils.StringSliceToInterface([]string{`Delivery`, `Return`, `Batch`, `RTO`, `FTL`, `PTL`, `FIFO`})
1453
+ validationutils.UnusedFunction(enumList)
1454
+
1455
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1456
+
1457
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_TYPE","attr":"$.message.catalog['bpp/providers'][*].fulfillments[*].type","_RETURN_":"attr are present && attr all in enumList","enumList":["Delivery","Return","Batch","RTO","FTL","PTL","FIFO"]}`
1458
+
1459
+ if !validate {
1460
+ result := validationutils.ValidationOutput{
1461
+ TestName: "REQUIRED_MESSAGE_TYPE",
1462
+ Valid: false,
1463
+ Code: 30000,
1464
+ Description: `#### **REQUIRED_MESSAGE_TYPE**
1465
+
1466
+ **All of the following must be true:**
1467
+ - $.message.catalog['bpp/providers'][*].fulfillments[*].type must be present in the payload
1468
+ - All elements of $.message.catalog['bpp/providers'][*].fulfillments[*].type must be in ["Delivery", "Return", "Batch", "RTO", "FTL", "PTL", "FIFO"]`,
1469
+ DebugInfo: &validationutils.DebugInfo{
1470
+ FedConfig: configureDebugInfo,
1471
+ },
1472
+ }
1473
+ return []validationutils.ValidationOutput{result}, nil
1474
+ }
1475
+
1476
+ }
1477
+
1478
+ result := validationutils.ValidationOutput{
1479
+ TestName: "REQUIRED_MESSAGE_TYPE",
1480
+ Valid: valid,
1481
+ Code: 0,
1482
+ DebugInfo: &validationutils.DebugInfo{
1483
+ FedConfig: configureDebugInfo,
1484
+ },
1485
+ }
1486
+
1487
+ if valid {
1488
+ result.Code = 200
1489
+ } else {
1490
+ result.Code = 30000
1491
+ }
1492
+
1493
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1494
+ results = append(results, result)
1495
+ results = append(results, subResults...)
1496
+
1497
+ return results, nil
1498
+ }
1499
+ var REQUIRED_MESSAGE_ID_24 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1500
+
1501
+ if input.Config.SkipTestsDict != nil {
1502
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID_24"]; skip {
1503
+ return []validationutils.ValidationOutput{}, nil
1504
+ }
1505
+ }
1506
+
1507
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1508
+
1509
+ subResults := make([]validationutils.ValidationOutput, 0)
1510
+ valid := true
1511
+ configureDebugInfo := ""
1512
+ for _, testObjMap := range scope {
1513
+ validationutils.UnusedFunction(testObjMap)
1514
+
1515
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].id", true)
1516
+ validationutils.UnusedFunction(attr)
1517
+
1518
+ validate := validationutils.ArePresent(attr)
1519
+
1520
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID_24","attr":"$.message.catalog['bpp/providers'][*].items[*].id","_RETURN_":"attr are present"}`
1521
+
1522
+ if !validate {
1523
+ result := validationutils.ValidationOutput{
1524
+ TestName: "REQUIRED_MESSAGE_ID_24",
1525
+ Valid: false,
1526
+ Code: 30000,
1527
+ Description: `#### **REQUIRED_MESSAGE_ID_24**
1528
+
1529
+ - $.message.catalog['bpp/providers'][*].items[*].id must be present in the payload`,
1530
+ DebugInfo: &validationutils.DebugInfo{
1531
+ FedConfig: configureDebugInfo,
1532
+ },
1533
+ }
1534
+ return []validationutils.ValidationOutput{result}, nil
1535
+ }
1536
+
1537
+ }
1538
+
1539
+ result := validationutils.ValidationOutput{
1540
+ TestName: "REQUIRED_MESSAGE_ID_24",
1541
+ Valid: valid,
1542
+ Code: 0,
1543
+ DebugInfo: &validationutils.DebugInfo{
1544
+ FedConfig: configureDebugInfo,
1545
+ },
1546
+ }
1547
+
1548
+ if valid {
1549
+ result.Code = 200
1550
+ } else {
1551
+ result.Code = 30000
1552
+ }
1553
+
1554
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1555
+ results = append(results, result)
1556
+ results = append(results, subResults...)
1557
+
1558
+ return results, nil
1559
+ }
1560
+ var REQUIRED_MESSAGE_PARENT_ITEM_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1561
+
1562
+ if input.Config.SkipTestsDict != nil {
1563
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_PARENT_ITEM_ID"]; skip {
1564
+ return []validationutils.ValidationOutput{}, nil
1565
+ }
1566
+ }
1567
+
1568
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1569
+
1570
+ subResults := make([]validationutils.ValidationOutput, 0)
1571
+ valid := true
1572
+ configureDebugInfo := ""
1573
+ for _, testObjMap := range scope {
1574
+ validationutils.UnusedFunction(testObjMap)
1575
+
1576
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].parent_item_id", true)
1577
+ validationutils.UnusedFunction(attr)
1578
+
1579
+ validate := validationutils.ArePresent(attr)
1580
+
1581
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_PARENT_ITEM_ID","attr":"$.message.catalog['bpp/providers'][*].items[*].parent_item_id","_RETURN_":"attr are present"}`
1582
+
1583
+ if !validate {
1584
+ result := validationutils.ValidationOutput{
1585
+ TestName: "REQUIRED_MESSAGE_PARENT_ITEM_ID",
1586
+ Valid: false,
1587
+ Code: 30000,
1588
+ Description: `#### **REQUIRED_MESSAGE_PARENT_ITEM_ID**
1589
+
1590
+ - $.message.catalog['bpp/providers'][*].items[*].parent_item_id must be present in the payload`,
1591
+ DebugInfo: &validationutils.DebugInfo{
1592
+ FedConfig: configureDebugInfo,
1593
+ },
1594
+ }
1595
+ return []validationutils.ValidationOutput{result}, nil
1596
+ }
1597
+
1598
+ }
1599
+
1600
+ result := validationutils.ValidationOutput{
1601
+ TestName: "REQUIRED_MESSAGE_PARENT_ITEM_ID",
1602
+ Valid: valid,
1603
+ Code: 0,
1604
+ DebugInfo: &validationutils.DebugInfo{
1605
+ FedConfig: configureDebugInfo,
1606
+ },
1607
+ }
1608
+
1609
+ if valid {
1610
+ result.Code = 200
1611
+ } else {
1612
+ result.Code = 30000
1613
+ }
1614
+
1615
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1616
+ results = append(results, result)
1617
+ results = append(results, subResults...)
1618
+
1619
+ return results, nil
1620
+ }
1621
+ var REQUIRED_MESSAGE_CATEGORY_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1622
+
1623
+ if input.Config.SkipTestsDict != nil {
1624
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CATEGORY_ID"]; skip {
1625
+ return []validationutils.ValidationOutput{}, nil
1626
+ }
1627
+ }
1628
+
1629
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1630
+
1631
+ subResults := make([]validationutils.ValidationOutput, 0)
1632
+ valid := true
1633
+ configureDebugInfo := ""
1634
+ for _, testObjMap := range scope {
1635
+ validationutils.UnusedFunction(testObjMap)
1636
+
1637
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].category_id", true)
1638
+ validationutils.UnusedFunction(attr)
1639
+ enumList := validationutils.StringSliceToInterface([]string{`Express Delivery`, `Standard Delivery`, `Immediate Delivery`, `Next Day Delivery`, `Same Day Delivery`, `Instant Delivery`})
1640
+ validationutils.UnusedFunction(enumList)
1641
+
1642
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1643
+
1644
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CATEGORY_ID","attr":"$.message.catalog['bpp/providers'][*].items[*].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"]}`
1645
+
1646
+ if !validate {
1647
+ result := validationutils.ValidationOutput{
1648
+ TestName: "REQUIRED_MESSAGE_CATEGORY_ID",
1649
+ Valid: false,
1650
+ Code: 30000,
1651
+ Description: `#### **REQUIRED_MESSAGE_CATEGORY_ID**
1652
+
1653
+ **All of the following must be true:**
1654
+ - $.message.catalog['bpp/providers'][*].items[*].category_id must be present in the payload
1655
+ - All elements of $.message.catalog['bpp/providers'][*].items[*].category_id must be in ["Express Delivery", "Standard Delivery", "Immediate Delivery", "Next Day Delivery", "Same Day Delivery", "Instant Delivery"]`,
1656
+ DebugInfo: &validationutils.DebugInfo{
1657
+ FedConfig: configureDebugInfo,
1658
+ },
1659
+ }
1660
+ return []validationutils.ValidationOutput{result}, nil
1661
+ }
1662
+
1663
+ }
1664
+
1665
+ result := validationutils.ValidationOutput{
1666
+ TestName: "REQUIRED_MESSAGE_CATEGORY_ID",
1667
+ Valid: valid,
1668
+ Code: 0,
1669
+ DebugInfo: &validationutils.DebugInfo{
1670
+ FedConfig: configureDebugInfo,
1671
+ },
1672
+ }
1673
+
1674
+ if valid {
1675
+ result.Code = 200
1676
+ } else {
1677
+ result.Code = 30000
1678
+ }
1679
+
1680
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1681
+ results = append(results, result)
1682
+ results = append(results, subResults...)
1683
+
1684
+ return results, nil
1685
+ }
1686
+ var REQUIRED_MESSAGE_FULFILLMENT_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1687
+
1688
+ if input.Config.SkipTestsDict != nil {
1689
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_FULFILLMENT_ID"]; skip {
1690
+ return []validationutils.ValidationOutput{}, nil
1691
+ }
1692
+ }
1693
+
1694
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1695
+
1696
+ subResults := make([]validationutils.ValidationOutput, 0)
1697
+ valid := true
1698
+ configureDebugInfo := ""
1699
+ for _, testObjMap := range scope {
1700
+ validationutils.UnusedFunction(testObjMap)
1701
+
1702
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].fulfillment_id", true)
1703
+ validationutils.UnusedFunction(attr)
1704
+
1705
+ validate := validationutils.ArePresent(attr)
1706
+
1707
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_FULFILLMENT_ID","attr":"$.message.catalog['bpp/providers'][*].items[*].fulfillment_id","_RETURN_":"attr are present"}`
1708
+
1709
+ if !validate {
1710
+ result := validationutils.ValidationOutput{
1711
+ TestName: "REQUIRED_MESSAGE_FULFILLMENT_ID",
1712
+ Valid: false,
1713
+ Code: 30000,
1714
+ Description: `#### **REQUIRED_MESSAGE_FULFILLMENT_ID**
1715
+
1716
+ - $.message.catalog['bpp/providers'][*].items[*].fulfillment_id must be present in the payload`,
1717
+ DebugInfo: &validationutils.DebugInfo{
1718
+ FedConfig: configureDebugInfo,
1719
+ },
1720
+ }
1721
+ return []validationutils.ValidationOutput{result}, nil
1722
+ }
1723
+
1724
+ }
1725
+
1726
+ result := validationutils.ValidationOutput{
1727
+ TestName: "REQUIRED_MESSAGE_FULFILLMENT_ID",
1728
+ Valid: valid,
1729
+ Code: 0,
1730
+ DebugInfo: &validationutils.DebugInfo{
1731
+ FedConfig: configureDebugInfo,
1732
+ },
1733
+ }
1734
+
1735
+ if valid {
1736
+ result.Code = 200
1737
+ } else {
1738
+ result.Code = 30000
1739
+ }
1740
+
1741
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1742
+ results = append(results, result)
1743
+ results = append(results, subResults...)
1744
+
1745
+ return results, nil
1746
+ }
1747
+ var REQUIRED_MESSAGE_NAME_28 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1748
+
1749
+ if input.Config.SkipTestsDict != nil {
1750
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_NAME_28"]; skip {
1751
+ return []validationutils.ValidationOutput{}, nil
1752
+ }
1753
+ }
1754
+
1755
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1756
+
1757
+ subResults := make([]validationutils.ValidationOutput, 0)
1758
+ valid := true
1759
+ configureDebugInfo := ""
1760
+ for _, testObjMap := range scope {
1761
+ validationutils.UnusedFunction(testObjMap)
1762
+
1763
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].descriptor.name", true)
1764
+ validationutils.UnusedFunction(attr)
1765
+
1766
+ validate := validationutils.ArePresent(attr)
1767
+
1768
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_NAME_28","attr":"$.message.catalog['bpp/providers'][*].items[*].descriptor.name","_RETURN_":"attr are present"}`
1769
+
1770
+ if !validate {
1771
+ result := validationutils.ValidationOutput{
1772
+ TestName: "REQUIRED_MESSAGE_NAME_28",
1773
+ Valid: false,
1774
+ Code: 30000,
1775
+ Description: `#### **REQUIRED_MESSAGE_NAME_28**
1776
+
1777
+ - $.message.catalog['bpp/providers'][*].items[*].descriptor.name must be present in the payload`,
1778
+ DebugInfo: &validationutils.DebugInfo{
1779
+ FedConfig: configureDebugInfo,
1780
+ },
1781
+ }
1782
+ return []validationutils.ValidationOutput{result}, nil
1783
+ }
1784
+
1785
+ }
1786
+
1787
+ result := validationutils.ValidationOutput{
1788
+ TestName: "REQUIRED_MESSAGE_NAME_28",
1789
+ Valid: valid,
1790
+ Code: 0,
1791
+ DebugInfo: &validationutils.DebugInfo{
1792
+ FedConfig: configureDebugInfo,
1793
+ },
1794
+ }
1795
+
1796
+ if valid {
1797
+ result.Code = 200
1798
+ } else {
1799
+ result.Code = 30000
1800
+ }
1801
+
1802
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1803
+ results = append(results, result)
1804
+ results = append(results, subResults...)
1805
+
1806
+ return results, nil
1807
+ }
1808
+ var REQUIRED_MESSAGE_SHORT_DESC_29 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1809
+
1810
+ if input.Config.SkipTestsDict != nil {
1811
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_SHORT_DESC_29"]; skip {
1812
+ return []validationutils.ValidationOutput{}, nil
1813
+ }
1814
+ }
1815
+
1816
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1817
+
1818
+ subResults := make([]validationutils.ValidationOutput, 0)
1819
+ valid := true
1820
+ configureDebugInfo := ""
1821
+ for _, testObjMap := range scope {
1822
+ validationutils.UnusedFunction(testObjMap)
1823
+
1824
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].descriptor.short_desc", true)
1825
+ validationutils.UnusedFunction(attr)
1826
+
1827
+ validate := validationutils.ArePresent(attr)
1828
+
1829
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_SHORT_DESC_29","attr":"$.message.catalog['bpp/providers'][*].items[*].descriptor.short_desc","_RETURN_":"attr are present"}`
1830
+
1831
+ if !validate {
1832
+ result := validationutils.ValidationOutput{
1833
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC_29",
1834
+ Valid: false,
1835
+ Code: 30000,
1836
+ Description: `#### **REQUIRED_MESSAGE_SHORT_DESC_29**
1837
+
1838
+ - $.message.catalog['bpp/providers'][*].items[*].descriptor.short_desc must be present in the payload`,
1839
+ DebugInfo: &validationutils.DebugInfo{
1840
+ FedConfig: configureDebugInfo,
1841
+ },
1842
+ }
1843
+ return []validationutils.ValidationOutput{result}, nil
1844
+ }
1845
+
1846
+ }
1847
+
1848
+ result := validationutils.ValidationOutput{
1849
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC_29",
1850
+ Valid: valid,
1851
+ Code: 0,
1852
+ DebugInfo: &validationutils.DebugInfo{
1853
+ FedConfig: configureDebugInfo,
1854
+ },
1855
+ }
1856
+
1857
+ if valid {
1858
+ result.Code = 200
1859
+ } else {
1860
+ result.Code = 30000
1861
+ }
1862
+
1863
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1864
+ results = append(results, result)
1865
+ results = append(results, subResults...)
1866
+
1867
+ return results, nil
1868
+ }
1869
+ var REQUIRED_MESSAGE_LONG_DESC_30 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1870
+
1871
+ if input.Config.SkipTestsDict != nil {
1872
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_LONG_DESC_30"]; skip {
1873
+ return []validationutils.ValidationOutput{}, nil
1874
+ }
1875
+ }
1876
+
1877
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1878
+
1879
+ subResults := make([]validationutils.ValidationOutput, 0)
1880
+ valid := true
1881
+ configureDebugInfo := ""
1882
+ for _, testObjMap := range scope {
1883
+ validationutils.UnusedFunction(testObjMap)
1884
+
1885
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].descriptor.long_desc", true)
1886
+ validationutils.UnusedFunction(attr)
1887
+
1888
+ validate := validationutils.ArePresent(attr)
1889
+
1890
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_LONG_DESC_30","attr":"$.message.catalog['bpp/providers'][*].items[*].descriptor.long_desc","_RETURN_":"attr are present"}`
1891
+
1892
+ if !validate {
1893
+ result := validationutils.ValidationOutput{
1894
+ TestName: "REQUIRED_MESSAGE_LONG_DESC_30",
1895
+ Valid: false,
1896
+ Code: 30000,
1897
+ Description: `#### **REQUIRED_MESSAGE_LONG_DESC_30**
1898
+
1899
+ - $.message.catalog['bpp/providers'][*].items[*].descriptor.long_desc must be present in the payload`,
1900
+ DebugInfo: &validationutils.DebugInfo{
1901
+ FedConfig: configureDebugInfo,
1902
+ },
1903
+ }
1904
+ return []validationutils.ValidationOutput{result}, nil
1905
+ }
1906
+
1907
+ }
1908
+
1909
+ result := validationutils.ValidationOutput{
1910
+ TestName: "REQUIRED_MESSAGE_LONG_DESC_30",
1911
+ Valid: valid,
1912
+ Code: 0,
1913
+ DebugInfo: &validationutils.DebugInfo{
1914
+ FedConfig: configureDebugInfo,
1915
+ },
1916
+ }
1917
+
1918
+ if valid {
1919
+ result.Code = 200
1920
+ } else {
1921
+ result.Code = 30000
1922
+ }
1923
+
1924
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1925
+ results = append(results, result)
1926
+ results = append(results, subResults...)
1927
+
1928
+ return results, nil
1929
+ }
1930
+ var REQUIRED_MESSAGE_CURRENCY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1931
+
1932
+ if input.Config.SkipTestsDict != nil {
1933
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CURRENCY"]; skip {
1934
+ return []validationutils.ValidationOutput{}, nil
1935
+ }
1936
+ }
1937
+
1938
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1939
+
1940
+ subResults := make([]validationutils.ValidationOutput, 0)
1941
+ valid := true
1942
+ configureDebugInfo := ""
1943
+ for _, testObjMap := range scope {
1944
+ validationutils.UnusedFunction(testObjMap)
1945
+
1946
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].price.currency", true)
1947
+ validationutils.UnusedFunction(attr)
1948
+
1949
+ validate := validationutils.ArePresent(attr)
1950
+
1951
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CURRENCY","attr":"$.message.catalog['bpp/providers'][*].items[*].price.currency","_RETURN_":"attr are present"}`
1952
+
1953
+ if !validate {
1954
+ result := validationutils.ValidationOutput{
1955
+ TestName: "REQUIRED_MESSAGE_CURRENCY",
1956
+ Valid: false,
1957
+ Code: 30000,
1958
+ Description: `#### **REQUIRED_MESSAGE_CURRENCY**
1959
+
1960
+ - $.message.catalog['bpp/providers'][*].items[*].price.currency must be present in the payload`,
1961
+ DebugInfo: &validationutils.DebugInfo{
1962
+ FedConfig: configureDebugInfo,
1963
+ },
1964
+ }
1965
+ return []validationutils.ValidationOutput{result}, nil
1966
+ }
1967
+
1968
+ }
1969
+
1970
+ result := validationutils.ValidationOutput{
1971
+ TestName: "REQUIRED_MESSAGE_CURRENCY",
1972
+ Valid: valid,
1973
+ Code: 0,
1974
+ DebugInfo: &validationutils.DebugInfo{
1975
+ FedConfig: configureDebugInfo,
1976
+ },
1977
+ }
1978
+
1979
+ if valid {
1980
+ result.Code = 200
1981
+ } else {
1982
+ result.Code = 30000
1983
+ }
1984
+
1985
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1986
+ results = append(results, result)
1987
+ results = append(results, subResults...)
1988
+
1989
+ return results, nil
1990
+ }
1991
+ var REQUIRED_MESSAGE_VALUE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1992
+
1993
+ if input.Config.SkipTestsDict != nil {
1994
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_VALUE"]; skip {
1995
+ return []validationutils.ValidationOutput{}, nil
1996
+ }
1997
+ }
1998
+
1999
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2000
+
2001
+ subResults := make([]validationutils.ValidationOutput, 0)
2002
+ valid := true
2003
+ configureDebugInfo := ""
2004
+ for _, testObjMap := range scope {
2005
+ validationutils.UnusedFunction(testObjMap)
2006
+
2007
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].price.value", true)
2008
+ validationutils.UnusedFunction(attr)
2009
+
2010
+ validate := validationutils.ArePresent(attr)
2011
+
2012
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_VALUE","attr":"$.message.catalog['bpp/providers'][*].items[*].price.value","_RETURN_":"attr are present"}`
2013
+
2014
+ if !validate {
2015
+ result := validationutils.ValidationOutput{
2016
+ TestName: "REQUIRED_MESSAGE_VALUE",
2017
+ Valid: false,
2018
+ Code: 30000,
2019
+ Description: `#### **REQUIRED_MESSAGE_VALUE**
2020
+
2021
+ - $.message.catalog['bpp/providers'][*].items[*].price.value must be present in the payload`,
2022
+ DebugInfo: &validationutils.DebugInfo{
2023
+ FedConfig: configureDebugInfo,
2024
+ },
2025
+ }
2026
+ return []validationutils.ValidationOutput{result}, nil
2027
+ }
2028
+
2029
+ }
2030
+
2031
+ result := validationutils.ValidationOutput{
2032
+ TestName: "REQUIRED_MESSAGE_VALUE",
2033
+ Valid: valid,
2034
+ Code: 0,
2035
+ DebugInfo: &validationutils.DebugInfo{
2036
+ FedConfig: configureDebugInfo,
2037
+ },
2038
+ }
2039
+
2040
+ if valid {
2041
+ result.Code = 200
2042
+ } else {
2043
+ result.Code = 30000
2044
+ }
2045
+
2046
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2047
+ results = append(results, result)
2048
+ results = append(results, subResults...)
2049
+
2050
+ return results, nil
2051
+ }
2052
+ var VALID_ENUM_CONTEXT_DOMAIN = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2053
+
2054
+ if input.Config.SkipTestsDict != nil {
2055
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_CONTEXT_DOMAIN"]; skip {
2056
+ return []validationutils.ValidationOutput{}, nil
2057
+ }
2058
+ }
2059
+
2060
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2061
+
2062
+ subResults := make([]validationutils.ValidationOutput, 0)
2063
+ valid := true
2064
+ configureDebugInfo := ""
2065
+ for _, testObjMap := range scope {
2066
+ validationutils.UnusedFunction(testObjMap)
2067
+
2068
+ enumList := validationutils.StringSliceToInterface([]string{`ONDC:LOG10`, `ONDC:LOG11`, `nic2004:60232`})
2069
+ validationutils.UnusedFunction(enumList)
2070
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.context.domain", true)
2071
+ validationutils.UnusedFunction(enumPath)
2072
+
2073
+ skipCheck := !(validationutils.ArePresent(enumPath))
2074
+ if skipCheck {
2075
+ continue
2076
+ }
2077
+
2078
+ validate := validationutils.AllIn(enumPath, enumList)
2079
+
2080
+ 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"}`
2081
+
2082
+ if !validate {
2083
+ result := validationutils.ValidationOutput{
2084
+ TestName: "VALID_ENUM_CONTEXT_DOMAIN",
2085
+ Valid: false,
2086
+ Code: 30000,
2087
+ Description: `#### **VALID_ENUM_CONTEXT_DOMAIN**
2088
+
2089
+ - All elements of $.context.domain must be in ["ONDC:LOG10", "ONDC:LOG11", "nic2004:60232"]
2090
+
2091
+ > **Skip if:**
2092
+ >
2093
+ > - $.context.domain is not in the payload`,
2094
+ DebugInfo: &validationutils.DebugInfo{
2095
+ FedConfig: configureDebugInfo,
2096
+ },
2097
+ }
2098
+ return []validationutils.ValidationOutput{result}, nil
2099
+ }
2100
+
2101
+ }
2102
+
2103
+ result := validationutils.ValidationOutput{
2104
+ TestName: "VALID_ENUM_CONTEXT_DOMAIN",
2105
+ Valid: valid,
2106
+ Code: 0,
2107
+ DebugInfo: &validationutils.DebugInfo{
2108
+ FedConfig: configureDebugInfo,
2109
+ },
2110
+ }
2111
+
2112
+ if valid {
2113
+ result.Code = 200
2114
+ } else {
2115
+ result.Code = 30000
2116
+ }
2117
+
2118
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2119
+ results = append(results, result)
2120
+ results = append(results, subResults...)
2121
+
2122
+ return results, nil
2123
+ }
2124
+ var VALID_ENUM_MESSAGE_CATEGORY_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2125
+
2126
+ if input.Config.SkipTestsDict != nil {
2127
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_CATEGORY_ID"]; skip {
2128
+ return []validationutils.ValidationOutput{}, nil
2129
+ }
2130
+ }
2131
+
2132
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2133
+
2134
+ subResults := make([]validationutils.ValidationOutput, 0)
2135
+ valid := true
2136
+ configureDebugInfo := ""
2137
+ for _, testObjMap := range scope {
2138
+ validationutils.UnusedFunction(testObjMap)
2139
+
2140
+ enumList := validationutils.StringSliceToInterface([]string{`Express Delivery`, `Standard Delivery`, `Immediate Delivery`, `Next Day Delivery`, `Same Day Delivery`, `Instant Delivery`})
2141
+ validationutils.UnusedFunction(enumList)
2142
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].category_id", true)
2143
+ validationutils.UnusedFunction(enumPath)
2144
+
2145
+ skipCheck := !(validationutils.ArePresent(enumPath))
2146
+ if skipCheck {
2147
+ continue
2148
+ }
2149
+
2150
+ validate := validationutils.AllIn(enumPath, enumList)
2151
+
2152
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_CATEGORY_ID","enumList":["Express Delivery","Standard Delivery","Immediate Delivery","Next Day Delivery","Same Day Delivery","Instant Delivery"],"enumPath":"$.message.catalog['bpp/providers'][*].items[*].category_id","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2153
+
2154
+ if !validate {
2155
+ result := validationutils.ValidationOutput{
2156
+ TestName: "VALID_ENUM_MESSAGE_CATEGORY_ID",
2157
+ Valid: false,
2158
+ Code: 30000,
2159
+ Description: `#### **VALID_ENUM_MESSAGE_CATEGORY_ID**
2160
+
2161
+ - All elements of $.message.catalog['bpp/providers'][*].items[*].category_id must be in ["Express Delivery", "Standard Delivery", "Immediate Delivery", "Next Day Delivery", "Same Day Delivery", "Instant Delivery"]
2162
+
2163
+ > **Skip if:**
2164
+ >
2165
+ > - $.message.catalog['bpp/providers'][*].items[*].category_id is not in the payload`,
2166
+ DebugInfo: &validationutils.DebugInfo{
2167
+ FedConfig: configureDebugInfo,
2168
+ },
2169
+ }
2170
+ return []validationutils.ValidationOutput{result}, nil
2171
+ }
2172
+
2173
+ }
2174
+
2175
+ result := validationutils.ValidationOutput{
2176
+ TestName: "VALID_ENUM_MESSAGE_CATEGORY_ID",
2177
+ Valid: valid,
2178
+ Code: 0,
2179
+ DebugInfo: &validationutils.DebugInfo{
2180
+ FedConfig: configureDebugInfo,
2181
+ },
2182
+ }
2183
+
2184
+ if valid {
2185
+ result.Code = 200
2186
+ } else {
2187
+ result.Code = 30000
2188
+ }
2189
+
2190
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2191
+ results = append(results, result)
2192
+ results = append(results, subResults...)
2193
+
2194
+ return results, nil
2195
+ }
2196
+ var VALID_ENUM_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2197
+
2198
+ if input.Config.SkipTestsDict != nil {
2199
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_ID"]; skip {
2200
+ return []validationutils.ValidationOutput{}, nil
2201
+ }
2202
+ }
2203
+
2204
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2205
+
2206
+ subResults := make([]validationutils.ValidationOutput, 0)
2207
+ valid := true
2208
+ configureDebugInfo := ""
2209
+ for _, testObjMap := range scope {
2210
+ validationutils.UnusedFunction(testObjMap)
2211
+
2212
+ enumList := validationutils.StringSliceToInterface([]string{`Express Delivery`, `Standard Delivery`, `Immediate Delivery`, `Next Day Delivery`, `Same Day Delivery`, `Instant Delivery`})
2213
+ validationutils.UnusedFunction(enumList)
2214
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].categories[*].id", true)
2215
+ validationutils.UnusedFunction(enumPath)
2216
+
2217
+ skipCheck := !(validationutils.ArePresent(enumPath))
2218
+ if skipCheck {
2219
+ continue
2220
+ }
2221
+
2222
+ validate := validationutils.AllIn(enumPath, enumList)
2223
+
2224
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_ID","enumList":["Express Delivery","Standard Delivery","Immediate Delivery","Next Day Delivery","Same Day Delivery","Instant Delivery"],"enumPath":"$.message.catalog['bpp/providers'][*].categories[*].id","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2225
+
2226
+ if !validate {
2227
+ result := validationutils.ValidationOutput{
2228
+ TestName: "VALID_ENUM_MESSAGE_ID",
2229
+ Valid: false,
2230
+ Code: 30000,
2231
+ Description: `#### **VALID_ENUM_MESSAGE_ID**
2232
+
2233
+ - All elements of $.message.catalog['bpp/providers'][*].categories[*].id must be in ["Express Delivery", "Standard Delivery", "Immediate Delivery", "Next Day Delivery", "Same Day Delivery", "Instant Delivery"]
2234
+
2235
+ > **Skip if:**
2236
+ >
2237
+ > - $.message.catalog['bpp/providers'][*].categories[*].id is not in the payload`,
2238
+ DebugInfo: &validationutils.DebugInfo{
2239
+ FedConfig: configureDebugInfo,
2240
+ },
2241
+ }
2242
+ return []validationutils.ValidationOutput{result}, nil
2243
+ }
2244
+
2245
+ }
2246
+
2247
+ result := validationutils.ValidationOutput{
2248
+ TestName: "VALID_ENUM_MESSAGE_ID",
2249
+ Valid: valid,
2250
+ Code: 0,
2251
+ DebugInfo: &validationutils.DebugInfo{
2252
+ FedConfig: configureDebugInfo,
2253
+ },
2254
+ }
2255
+
2256
+ if valid {
2257
+ result.Code = 200
2258
+ } else {
2259
+ result.Code = 30000
2260
+ }
2261
+
2262
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2263
+ results = append(results, result)
2264
+ results = append(results, subResults...)
2265
+
2266
+ return results, nil
2267
+ }
2268
+ var VALID_ENUM_MESSAGE_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2269
+
2270
+ if input.Config.SkipTestsDict != nil {
2271
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_TYPE"]; skip {
2272
+ return []validationutils.ValidationOutput{}, nil
2273
+ }
2274
+ }
2275
+
2276
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2277
+
2278
+ subResults := make([]validationutils.ValidationOutput, 0)
2279
+ valid := true
2280
+ configureDebugInfo := ""
2281
+ for _, testObjMap := range scope {
2282
+ validationutils.UnusedFunction(testObjMap)
2283
+
2284
+ enumList := validationutils.StringSliceToInterface([]string{`Delivery`, `Return`, `Batch`, `RTO`, `FTL`, `PTL`, `FIFO`})
2285
+ validationutils.UnusedFunction(enumList)
2286
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].fulfillments[*].type", true)
2287
+ validationutils.UnusedFunction(enumPath)
2288
+
2289
+ skipCheck := !(validationutils.ArePresent(enumPath))
2290
+ if skipCheck {
2291
+ continue
2292
+ }
2293
+
2294
+ validate := validationutils.AllIn(enumPath, enumList)
2295
+
2296
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_TYPE","enumList":["Delivery","Return","Batch","RTO","FTL","PTL","FIFO"],"enumPath":"$.message.catalog['bpp/providers'][*].fulfillments[*].type","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList"}`
2297
+
2298
+ if !validate {
2299
+ result := validationutils.ValidationOutput{
2300
+ TestName: "VALID_ENUM_MESSAGE_TYPE",
2301
+ Valid: false,
2302
+ Code: 30000,
2303
+ Description: `#### **VALID_ENUM_MESSAGE_TYPE**
2304
+
2305
+ - All elements of $.message.catalog['bpp/providers'][*].fulfillments[*].type must be in ["Delivery", "Return", "Batch", "RTO", "FTL", "PTL", "FIFO"]
2306
+
2307
+ > **Skip if:**
2308
+ >
2309
+ > - $.message.catalog['bpp/providers'][*].fulfillments[*].type is not in the payload`,
2310
+ DebugInfo: &validationutils.DebugInfo{
2311
+ FedConfig: configureDebugInfo,
2312
+ },
2313
+ }
2314
+ return []validationutils.ValidationOutput{result}, nil
2315
+ }
2316
+
2317
+ }
2318
+
2319
+ result := validationutils.ValidationOutput{
2320
+ TestName: "VALID_ENUM_MESSAGE_TYPE",
2321
+ Valid: valid,
2322
+ Code: 0,
2323
+ DebugInfo: &validationutils.DebugInfo{
2324
+ FedConfig: configureDebugInfo,
2325
+ },
2326
+ }
2327
+
2328
+ if valid {
2329
+ result.Code = 200
2330
+ } else {
2331
+ result.Code = 30000
2332
+ }
2333
+
2334
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2335
+ results = append(results, result)
2336
+ results = append(results, subResults...)
2337
+
2338
+ return results, nil
2339
+ }
2340
+ var Validate_tag_0 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2341
+
2342
+ if input.Config.SkipTestsDict != nil {
2343
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_0"]; skip {
2344
+ return []validationutils.ValidationOutput{}, nil
2345
+ }
2346
+ }
2347
+
2348
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2349
+
2350
+ subResults := make([]validationutils.ValidationOutput, 0)
2351
+ valid := true
2352
+ configureDebugInfo := ""
2353
+ for _, testObjMap := range scope {
2354
+ validationutils.UnusedFunction(testObjMap)
2355
+
2356
+ validTags := validationutils.StringSliceToInterface([]string{`bpp_terms`})
2357
+ validationutils.UnusedFunction(validTags)
2358
+ tagPath := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/descriptor'].tags[*].code", true)
2359
+ validationutils.UnusedFunction(tagPath)
2360
+
2361
+ skipCheck := !(validationutils.ArePresent(tagPath))
2362
+ if skipCheck {
2363
+ continue
2364
+ }
2365
+
2366
+ validate := validationutils.AllIn(tagPath, validTags)
2367
+
2368
+ configureDebugInfo = `{"_NAME_":"validate_tag_0","validTags":["bpp_terms"],"tagPath":"$.message.catalog['bpp/descriptor'].tags[*].code","_CONTINUE_":"!(tagPath are present)","_RETURN_":"tagPath all in validTags"}`
2369
+
2370
+ if !validate {
2371
+ result := validationutils.ValidationOutput{
2372
+ TestName: "validate_tag_0",
2373
+ Valid: false,
2374
+ Code: 30000,
2375
+ Description: `#### **validate_tag_0**
2376
+
2377
+ - All elements of $.message.catalog['bpp/descriptor'].tags[*].code must be in ["bpp_terms"]
2378
+
2379
+ > **Skip if:**
2380
+ >
2381
+ > - $.message.catalog['bpp/descriptor'].tags[*].code is not in the payload`,
2382
+ DebugInfo: &validationutils.DebugInfo{
2383
+ FedConfig: configureDebugInfo,
2384
+ },
2385
+ }
2386
+ return []validationutils.ValidationOutput{result}, nil
2387
+ }
2388
+
2389
+ }
2390
+
2391
+ result := validationutils.ValidationOutput{
2392
+ TestName: "Validate_tag_0",
2393
+ Valid: valid,
2394
+ Code: 0,
2395
+ DebugInfo: &validationutils.DebugInfo{
2396
+ FedConfig: configureDebugInfo,
2397
+ },
2398
+ }
2399
+
2400
+ if valid {
2401
+ result.Code = 200
2402
+ } else {
2403
+ result.Code = 30000
2404
+ }
2405
+
2406
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2407
+ results = append(results, result)
2408
+ results = append(results, subResults...)
2409
+
2410
+ return results, nil
2411
+ }
2412
+ var Validate_tag_0_bpp_terms = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2413
+
2414
+ if input.Config.SkipTestsDict != nil {
2415
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_0_bpp_terms"]; skip {
2416
+ return []validationutils.ValidationOutput{}, nil
2417
+ }
2418
+ }
2419
+
2420
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/descriptor'].tags[?(@.code=='bpp_terms')]", true)
2421
+
2422
+ subResults := make([]validationutils.ValidationOutput, 0)
2423
+ valid := true
2424
+ configureDebugInfo := ""
2425
+ for _, testObjMap := range scope {
2426
+ validationutils.UnusedFunction(testObjMap)
2427
+
2428
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
2429
+ validationutils.UnusedFunction(subTags)
2430
+ validValues := validationutils.StringSliceToInterface([]string{`static_terms`, `static_terms_new`, `effective_date`, `np_tax_type`, `max_liability`, `max_liability_cap`, `mandatory_arbitration`, `court_jurisdiction`, `delay_interest`})
2431
+ validationutils.UnusedFunction(validValues)
2432
+
2433
+ validate := validationutils.AllIn(subTags, validValues)
2434
+
2435
+ configureDebugInfo = `{"_NAME_":"validate_tag_0_bpp_terms","_SCOPE_":"$.message.catalog['bpp/descriptor'].tags[?(@.code=='bpp_terms')]","subTags":"$.list[*].code","validValues":["static_terms","static_terms_new","effective_date","np_tax_type","max_liability","max_liability_cap","mandatory_arbitration","court_jurisdiction","delay_interest"],"_RETURN_":"subTags all in validValues"}`
2436
+
2437
+ if !validate {
2438
+ result := validationutils.ValidationOutput{
2439
+ TestName: "validate_tag_0_bpp_terms",
2440
+ Valid: false,
2441
+ Code: 30000,
2442
+ Description: `#### **validate_tag_0_bpp_terms**
2443
+
2444
+ - All elements of $.message.catalog['bpp/descriptor'].tags[?(@.code=='bpp_terms')].list[*].code must be in ["static_terms", "static_terms_new", "effective_date", "np_tax_type", "max_liability", "max_liability_cap", "mandatory_arbitration", "court_jurisdiction", "delay_interest"]`,
2445
+ DebugInfo: &validationutils.DebugInfo{
2446
+ FedConfig: configureDebugInfo,
2447
+ },
2448
+ }
2449
+ return []validationutils.ValidationOutput{result}, nil
2450
+ }
2451
+
2452
+ }
2453
+
2454
+ result := validationutils.ValidationOutput{
2455
+ TestName: "Validate_tag_0_bpp_terms",
2456
+ Valid: valid,
2457
+ Code: 0,
2458
+ DebugInfo: &validationutils.DebugInfo{
2459
+ FedConfig: configureDebugInfo,
2460
+ },
2461
+ }
2462
+
2463
+ if valid {
2464
+ result.Code = 200
2465
+ } else {
2466
+ result.Code = 30000
2467
+ }
2468
+
2469
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2470
+ results = append(results, result)
2471
+ results = append(results, subResults...)
2472
+
2473
+ return results, nil
2474
+ }
2475
+ var Validate_tag_1 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2476
+
2477
+ if input.Config.SkipTestsDict != nil {
2478
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1"]; skip {
2479
+ return []validationutils.ValidationOutput{}, nil
2480
+ }
2481
+ }
2482
+
2483
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2484
+
2485
+ subResults := make([]validationutils.ValidationOutput, 0)
2486
+ valid := true
2487
+ configureDebugInfo := ""
2488
+ for _, testObjMap := range scope {
2489
+ validationutils.UnusedFunction(testObjMap)
2490
+
2491
+ validTags := validationutils.StringSliceToInterface([]string{`distance`, `fulfill_request`, `linked_provider`, `linked_order`, `fulfill_response`, `motorable_distance`, `special_req`, `linked_package`})
2492
+ validationutils.UnusedFunction(validTags)
2493
+ tagPath := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].fulfillments[*].tags[*].code", true)
2494
+ validationutils.UnusedFunction(tagPath)
2495
+
2496
+ skipCheck := !(validationutils.ArePresent(tagPath))
2497
+ if skipCheck {
2498
+ continue
2499
+ }
2500
+
2501
+ validate := validationutils.AllIn(tagPath, validTags)
2502
+
2503
+ configureDebugInfo = `{"_NAME_":"validate_tag_1","validTags":["distance","fulfill_request","linked_provider","linked_order","fulfill_response","motorable_distance","special_req","linked_package"],"tagPath":"$.message.catalog['bpp/providers'][*].fulfillments[*].tags[*].code","_CONTINUE_":"!(tagPath are present)","_RETURN_":"tagPath all in validTags"}`
2504
+
2505
+ if !validate {
2506
+ result := validationutils.ValidationOutput{
2507
+ TestName: "validate_tag_1",
2508
+ Valid: false,
2509
+ Code: 30000,
2510
+ Description: `#### **validate_tag_1**
2511
+
2512
+ - All elements of $.message.catalog['bpp/providers'][*].fulfillments[*].tags[*].code must be in ["distance", "fulfill_request", "linked_provider", "linked_order", "fulfill_response", "motorable_distance", "special_req", "linked_package"]
2513
+
2514
+ > **Skip if:**
2515
+ >
2516
+ > - $.message.catalog['bpp/providers'][*].fulfillments[*].tags[*].code is not in the payload`,
2517
+ DebugInfo: &validationutils.DebugInfo{
2518
+ FedConfig: configureDebugInfo,
2519
+ },
2520
+ }
2521
+ return []validationutils.ValidationOutput{result}, nil
2522
+ }
2523
+
2524
+ }
2525
+
2526
+ result := validationutils.ValidationOutput{
2527
+ TestName: "Validate_tag_1",
2528
+ Valid: valid,
2529
+ Code: 0,
2530
+ DebugInfo: &validationutils.DebugInfo{
2531
+ FedConfig: configureDebugInfo,
2532
+ },
2533
+ }
2534
+
2535
+ if valid {
2536
+ result.Code = 200
2537
+ } else {
2538
+ result.Code = 30000
2539
+ }
2540
+
2541
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2542
+ results = append(results, result)
2543
+ results = append(results, subResults...)
2544
+
2545
+ return results, nil
2546
+ }
2547
+ var Validate_tag_1_distance = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2548
+
2549
+ if input.Config.SkipTestsDict != nil {
2550
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1_distance"]; skip {
2551
+ return []validationutils.ValidationOutput{}, nil
2552
+ }
2553
+ }
2554
+
2555
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='distance')]", true)
2556
+
2557
+ subResults := make([]validationutils.ValidationOutput, 0)
2558
+ valid := true
2559
+ configureDebugInfo := ""
2560
+ for _, testObjMap := range scope {
2561
+ validationutils.UnusedFunction(testObjMap)
2562
+
2563
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
2564
+ validationutils.UnusedFunction(subTags)
2565
+ validValues := validationutils.StringSliceToInterface([]string{`motorable_distance_type`, `motorable_distance`})
2566
+ validationutils.UnusedFunction(validValues)
2567
+
2568
+ validate := validationutils.AllIn(subTags, validValues)
2569
+
2570
+ configureDebugInfo = `{"_NAME_":"validate_tag_1_distance","_SCOPE_":"$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='distance')]","subTags":"$.list[*].code","validValues":["motorable_distance_type","motorable_distance"],"_RETURN_":"subTags all in validValues"}`
2571
+
2572
+ if !validate {
2573
+ result := validationutils.ValidationOutput{
2574
+ TestName: "validate_tag_1_distance",
2575
+ Valid: false,
2576
+ Code: 30000,
2577
+ Description: `#### **validate_tag_1_distance**
2578
+
2579
+ - All elements of $.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='distance')].list[*].code must be in ["motorable_distance_type", "motorable_distance"]`,
2580
+ DebugInfo: &validationutils.DebugInfo{
2581
+ FedConfig: configureDebugInfo,
2582
+ },
2583
+ }
2584
+ return []validationutils.ValidationOutput{result}, nil
2585
+ }
2586
+
2587
+ }
2588
+
2589
+ result := validationutils.ValidationOutput{
2590
+ TestName: "Validate_tag_1_distance",
2591
+ Valid: valid,
2592
+ Code: 0,
2593
+ DebugInfo: &validationutils.DebugInfo{
2594
+ FedConfig: configureDebugInfo,
2595
+ },
2596
+ }
2597
+
2598
+ if valid {
2599
+ result.Code = 200
2600
+ } else {
2601
+ result.Code = 30000
2602
+ }
2603
+
2604
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2605
+ results = append(results, result)
2606
+ results = append(results, subResults...)
2607
+
2608
+ return results, nil
2609
+ }
2610
+ var Validate_tag_1_motorable_distance = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2611
+
2612
+ if input.Config.SkipTestsDict != nil {
2613
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1_motorable_distance"]; skip {
2614
+ return []validationutils.ValidationOutput{}, nil
2615
+ }
2616
+ }
2617
+
2618
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='motorable_distance')]", true)
2619
+
2620
+ subResults := make([]validationutils.ValidationOutput, 0)
2621
+ valid := true
2622
+ configureDebugInfo := ""
2623
+ for _, testObjMap := range scope {
2624
+ validationutils.UnusedFunction(testObjMap)
2625
+
2626
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
2627
+ validationutils.UnusedFunction(subTags)
2628
+ validValues := validationutils.StringSliceToInterface([]string{`unit`, `lower`, `upper`})
2629
+ validationutils.UnusedFunction(validValues)
2630
+
2631
+ validate := validationutils.AllIn(subTags, validValues)
2632
+
2633
+ configureDebugInfo = `{"_NAME_":"validate_tag_1_motorable_distance","_SCOPE_":"$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='motorable_distance')]","subTags":"$.list[*].code","validValues":["unit","lower","upper"],"_RETURN_":"subTags all in validValues"}`
2634
+
2635
+ if !validate {
2636
+ result := validationutils.ValidationOutput{
2637
+ TestName: "validate_tag_1_motorable_distance",
2638
+ Valid: false,
2639
+ Code: 30000,
2640
+ Description: `#### **validate_tag_1_motorable_distance**
2641
+
2642
+ - All elements of $.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='motorable_distance')].list[*].code must be in ["unit", "lower", "upper"]`,
2643
+ DebugInfo: &validationutils.DebugInfo{
2644
+ FedConfig: configureDebugInfo,
2645
+ },
2646
+ }
2647
+ return []validationutils.ValidationOutput{result}, nil
2648
+ }
2649
+
2650
+ }
2651
+
2652
+ result := validationutils.ValidationOutput{
2653
+ TestName: "Validate_tag_1_motorable_distance",
2654
+ Valid: valid,
2655
+ Code: 0,
2656
+ DebugInfo: &validationutils.DebugInfo{
2657
+ FedConfig: configureDebugInfo,
2658
+ },
2659
+ }
2660
+
2661
+ if valid {
2662
+ result.Code = 200
2663
+ } else {
2664
+ result.Code = 30000
2665
+ }
2666
+
2667
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2668
+ results = append(results, result)
2669
+ results = append(results, subResults...)
2670
+
2671
+ return results, nil
2672
+ }
2673
+ var Validate_tag_1_fulfill_request = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2674
+
2675
+ if input.Config.SkipTestsDict != nil {
2676
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1_fulfill_request"]; skip {
2677
+ return []validationutils.ValidationOutput{}, nil
2678
+ }
2679
+ }
2680
+
2681
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='fulfill_request')]", true)
2682
+
2683
+ subResults := make([]validationutils.ValidationOutput, 0)
2684
+ valid := true
2685
+ configureDebugInfo := ""
2686
+ for _, testObjMap := range scope {
2687
+ validationutils.UnusedFunction(testObjMap)
2688
+
2689
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
2690
+ validationutils.UnusedFunction(subTags)
2691
+ validValues := validationutils.StringSliceToInterface([]string{`rider_count`, `order_count`, `rate_basis`, `motorable_distance`, `pickup_slot_start`, `pickup_slot_end`, `delivery_slot_start`, `delivery_slot_end`})
2692
+ validationutils.UnusedFunction(validValues)
2693
+
2694
+ validate := validationutils.AllIn(subTags, validValues)
2695
+
2696
+ configureDebugInfo = `{"_NAME_":"validate_tag_1_fulfill_request","_SCOPE_":"$.message.catalog['bpp/providers'][*].fulfillments[*].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"}`
2697
+
2698
+ if !validate {
2699
+ result := validationutils.ValidationOutput{
2700
+ TestName: "validate_tag_1_fulfill_request",
2701
+ Valid: false,
2702
+ Code: 30000,
2703
+ Description: `#### **validate_tag_1_fulfill_request**
2704
+
2705
+ - All elements of $.message.catalog['bpp/providers'][*].fulfillments[*].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"]`,
2706
+ DebugInfo: &validationutils.DebugInfo{
2707
+ FedConfig: configureDebugInfo,
2708
+ },
2709
+ }
2710
+ return []validationutils.ValidationOutput{result}, nil
2711
+ }
2712
+
2713
+ }
2714
+
2715
+ result := validationutils.ValidationOutput{
2716
+ TestName: "Validate_tag_1_fulfill_request",
2717
+ Valid: valid,
2718
+ Code: 0,
2719
+ DebugInfo: &validationutils.DebugInfo{
2720
+ FedConfig: configureDebugInfo,
2721
+ },
2722
+ }
2723
+
2724
+ if valid {
2725
+ result.Code = 200
2726
+ } else {
2727
+ result.Code = 30000
2728
+ }
2729
+
2730
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2731
+ results = append(results, result)
2732
+ results = append(results, subResults...)
2733
+
2734
+ return results, nil
2735
+ }
2736
+ var Validate_tag_1_linked_provider = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2737
+
2738
+ if input.Config.SkipTestsDict != nil {
2739
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1_linked_provider"]; skip {
2740
+ return []validationutils.ValidationOutput{}, nil
2741
+ }
2742
+ }
2743
+
2744
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='linked_provider')]", true)
2745
+
2746
+ subResults := make([]validationutils.ValidationOutput, 0)
2747
+ valid := true
2748
+ configureDebugInfo := ""
2749
+ for _, testObjMap := range scope {
2750
+ validationutils.UnusedFunction(testObjMap)
2751
+
2752
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
2753
+ validationutils.UnusedFunction(subTags)
2754
+ validValues := validationutils.StringSliceToInterface([]string{`id`, `name`})
2755
+ validationutils.UnusedFunction(validValues)
2756
+
2757
+ validate := validationutils.AllIn(subTags, validValues)
2758
+
2759
+ configureDebugInfo = `{"_NAME_":"validate_tag_1_linked_provider","_SCOPE_":"$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='linked_provider')]","subTags":"$.list[*].code","validValues":["id","name"],"_RETURN_":"subTags all in validValues"}`
2760
+
2761
+ if !validate {
2762
+ result := validationutils.ValidationOutput{
2763
+ TestName: "validate_tag_1_linked_provider",
2764
+ Valid: false,
2765
+ Code: 30000,
2766
+ Description: `#### **validate_tag_1_linked_provider**
2767
+
2768
+ - All elements of $.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='linked_provider')].list[*].code must be in ["id", "name"]`,
2769
+ DebugInfo: &validationutils.DebugInfo{
2770
+ FedConfig: configureDebugInfo,
2771
+ },
2772
+ }
2773
+ return []validationutils.ValidationOutput{result}, nil
2774
+ }
2775
+
2776
+ }
2777
+
2778
+ result := validationutils.ValidationOutput{
2779
+ TestName: "Validate_tag_1_linked_provider",
2780
+ Valid: valid,
2781
+ Code: 0,
2782
+ DebugInfo: &validationutils.DebugInfo{
2783
+ FedConfig: configureDebugInfo,
2784
+ },
2785
+ }
2786
+
2787
+ if valid {
2788
+ result.Code = 200
2789
+ } else {
2790
+ result.Code = 30000
2791
+ }
2792
+
2793
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2794
+ results = append(results, result)
2795
+ results = append(results, subResults...)
2796
+
2797
+ return results, nil
2798
+ }
2799
+ var Validate_tag_1_fulfill_response = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2800
+
2801
+ if input.Config.SkipTestsDict != nil {
2802
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_1_fulfill_response"]; skip {
2803
+ return []validationutils.ValidationOutput{}, nil
2804
+ }
2805
+ }
2806
+
2807
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='fulfill_response')]", true)
2808
+
2809
+ subResults := make([]validationutils.ValidationOutput, 0)
2810
+ valid := true
2811
+ configureDebugInfo := ""
2812
+ for _, testObjMap := range scope {
2813
+ validationutils.UnusedFunction(testObjMap)
2814
+
2815
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
2816
+ validationutils.UnusedFunction(subTags)
2817
+ validValues := validationutils.StringSliceToInterface([]string{`rider_count`, `order_count`, `rate_basis`})
2818
+ validationutils.UnusedFunction(validValues)
2819
+
2820
+ validate := validationutils.AllIn(subTags, validValues)
2821
+
2822
+ configureDebugInfo = `{"_NAME_":"validate_tag_1_fulfill_response","_SCOPE_":"$.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='fulfill_response')]","subTags":"$.list[*].code","validValues":["rider_count","order_count","rate_basis"],"_RETURN_":"subTags all in validValues"}`
2823
+
2824
+ if !validate {
2825
+ result := validationutils.ValidationOutput{
2826
+ TestName: "validate_tag_1_fulfill_response",
2827
+ Valid: false,
2828
+ Code: 30000,
2829
+ Description: `#### **validate_tag_1_fulfill_response**
2830
+
2831
+ - All elements of $.message.catalog['bpp/providers'][*].fulfillments[*].tags[?(@.code=='fulfill_response')].list[*].code must be in ["rider_count", "order_count", "rate_basis"]`,
2832
+ DebugInfo: &validationutils.DebugInfo{
2833
+ FedConfig: configureDebugInfo,
2834
+ },
2835
+ }
2836
+ return []validationutils.ValidationOutput{result}, nil
2837
+ }
2838
+
2839
+ }
2840
+
2841
+ result := validationutils.ValidationOutput{
2842
+ TestName: "Validate_tag_1_fulfill_response",
2843
+ Valid: valid,
2844
+ Code: 0,
2845
+ DebugInfo: &validationutils.DebugInfo{
2846
+ FedConfig: configureDebugInfo,
2847
+ },
2848
+ }
2849
+
2850
+ if valid {
2851
+ result.Code = 200
2852
+ } else {
2853
+ result.Code = 30000
2854
+ }
2855
+
2856
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2857
+ results = append(results, result)
2858
+ results = append(results, subResults...)
2859
+
2860
+ return results, nil
2861
+ }
2862
+ var Validate_tag_2 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2863
+
2864
+ if input.Config.SkipTestsDict != nil {
2865
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_2"]; skip {
2866
+ return []validationutils.ValidationOutput{}, nil
2867
+ }
2868
+ }
2869
+
2870
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2871
+
2872
+ subResults := make([]validationutils.ValidationOutput, 0)
2873
+ valid := true
2874
+ configureDebugInfo := ""
2875
+ for _, testObjMap := range scope {
2876
+ validationutils.UnusedFunction(testObjMap)
2877
+
2878
+ validTags := validationutils.StringSliceToInterface([]string{`type`, `weight_slab`})
2879
+ validationutils.UnusedFunction(validTags)
2880
+ tagPath := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].items[*].tags[*].code", true)
2881
+ validationutils.UnusedFunction(tagPath)
2882
+
2883
+ skipCheck := !(validationutils.ArePresent(tagPath))
2884
+ if skipCheck {
2885
+ continue
2886
+ }
2887
+
2888
+ validate := validationutils.AllIn(tagPath, validTags)
2889
+
2890
+ configureDebugInfo = `{"_NAME_":"validate_tag_2","validTags":["type","weight_slab"],"tagPath":"$.message.catalog['bpp/providers'][*].items[*].tags[*].code","_CONTINUE_":"!(tagPath are present)","_RETURN_":"tagPath all in validTags"}`
2891
+
2892
+ if !validate {
2893
+ result := validationutils.ValidationOutput{
2894
+ TestName: "validate_tag_2",
2895
+ Valid: false,
2896
+ Code: 30000,
2897
+ Description: `#### **validate_tag_2**
2898
+
2899
+ - All elements of $.message.catalog['bpp/providers'][*].items[*].tags[*].code must be in ["type", "weight_slab"]
2900
+
2901
+ > **Skip if:**
2902
+ >
2903
+ > - $.message.catalog['bpp/providers'][*].items[*].tags[*].code is not in the payload`,
2904
+ DebugInfo: &validationutils.DebugInfo{
2905
+ FedConfig: configureDebugInfo,
2906
+ },
2907
+ }
2908
+ return []validationutils.ValidationOutput{result}, nil
2909
+ }
2910
+
2911
+ }
2912
+
2913
+ result := validationutils.ValidationOutput{
2914
+ TestName: "Validate_tag_2",
2915
+ Valid: valid,
2916
+ Code: 0,
2917
+ DebugInfo: &validationutils.DebugInfo{
2918
+ FedConfig: configureDebugInfo,
2919
+ },
2920
+ }
2921
+
2922
+ if valid {
2923
+ result.Code = 200
2924
+ } else {
2925
+ result.Code = 30000
2926
+ }
2927
+
2928
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2929
+ results = append(results, result)
2930
+ results = append(results, subResults...)
2931
+
2932
+ return results, nil
2933
+ }
2934
+ var Validate_tag_2_type = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2935
+
2936
+ if input.Config.SkipTestsDict != nil {
2937
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_2_type"]; skip {
2938
+ return []validationutils.ValidationOutput{}, nil
2939
+ }
2940
+ }
2941
+
2942
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/providers'][*].items[*].tags[?(@.code=='type')]", true)
2943
+
2944
+ subResults := make([]validationutils.ValidationOutput, 0)
2945
+ valid := true
2946
+ configureDebugInfo := ""
2947
+ for _, testObjMap := range scope {
2948
+ validationutils.UnusedFunction(testObjMap)
2949
+
2950
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
2951
+ validationutils.UnusedFunction(subTags)
2952
+ validValues := validationutils.StringSliceToInterface([]string{`type`, `unit`})
2953
+ validationutils.UnusedFunction(validValues)
2954
+
2955
+ validate := validationutils.AllIn(subTags, validValues)
2956
+
2957
+ configureDebugInfo = `{"_NAME_":"validate_tag_2_type","_SCOPE_":"$.message.catalog['bpp/providers'][*].items[*].tags[?(@.code=='type')]","subTags":"$.list[*].code","validValues":["type","unit"],"_RETURN_":"subTags all in validValues"}`
2958
+
2959
+ if !validate {
2960
+ result := validationutils.ValidationOutput{
2961
+ TestName: "validate_tag_2_type",
2962
+ Valid: false,
2963
+ Code: 30000,
2964
+ Description: `#### **validate_tag_2_type**
2965
+
2966
+ - All elements of $.message.catalog['bpp/providers'][*].items[*].tags[?(@.code=='type')].list[*].code must be in ["type", "unit"]`,
2967
+ DebugInfo: &validationutils.DebugInfo{
2968
+ FedConfig: configureDebugInfo,
2969
+ },
2970
+ }
2971
+ return []validationutils.ValidationOutput{result}, nil
2972
+ }
2973
+
2974
+ }
2975
+
2976
+ result := validationutils.ValidationOutput{
2977
+ TestName: "Validate_tag_2_type",
2978
+ Valid: valid,
2979
+ Code: 0,
2980
+ DebugInfo: &validationutils.DebugInfo{
2981
+ FedConfig: configureDebugInfo,
2982
+ },
2983
+ }
2984
+
2985
+ if valid {
2986
+ result.Code = 200
2987
+ } else {
2988
+ result.Code = 30000
2989
+ }
2990
+
2991
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2992
+ results = append(results, result)
2993
+ results = append(results, subResults...)
2994
+
2995
+ return results, nil
2996
+ }
2997
+ var Validate_tag_3 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2998
+
2999
+ if input.Config.SkipTestsDict != nil {
3000
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_3"]; skip {
3001
+ return []validationutils.ValidationOutput{}, nil
3002
+ }
3003
+ }
3004
+
3005
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3006
+
3007
+ subResults := make([]validationutils.ValidationOutput, 0)
3008
+ valid := true
3009
+ configureDebugInfo := ""
3010
+ for _, testObjMap := range scope {
3011
+ validationutils.UnusedFunction(testObjMap)
3012
+
3013
+ validTags := validationutils.StringSliceToInterface([]string{`lsp_features`, `special_req`})
3014
+ validationutils.UnusedFunction(validTags)
3015
+ tagPath := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/providers'][*].tags[*].code", true)
3016
+ validationutils.UnusedFunction(tagPath)
3017
+
3018
+ skipCheck := !(validationutils.ArePresent(tagPath))
3019
+ if skipCheck {
3020
+ continue
3021
+ }
3022
+
3023
+ validate := validationutils.AllIn(tagPath, validTags)
3024
+
3025
+ configureDebugInfo = `{"_NAME_":"validate_tag_3","validTags":["lsp_features","special_req"],"tagPath":"$.message.catalog['bpp/providers'][*].tags[*].code","_CONTINUE_":"!(tagPath are present)","_RETURN_":"tagPath all in validTags"}`
3026
+
3027
+ if !validate {
3028
+ result := validationutils.ValidationOutput{
3029
+ TestName: "validate_tag_3",
3030
+ Valid: false,
3031
+ Code: 30000,
3032
+ Description: `#### **validate_tag_3**
3033
+
3034
+ - All elements of $.message.catalog['bpp/providers'][*].tags[*].code must be in ["lsp_features", "special_req"]
3035
+
3036
+ > **Skip if:**
3037
+ >
3038
+ > - $.message.catalog['bpp/providers'][*].tags[*].code is not in the payload`,
3039
+ DebugInfo: &validationutils.DebugInfo{
3040
+ FedConfig: configureDebugInfo,
3041
+ },
3042
+ }
3043
+ return []validationutils.ValidationOutput{result}, nil
3044
+ }
3045
+
3046
+ }
3047
+
3048
+ result := validationutils.ValidationOutput{
3049
+ TestName: "Validate_tag_3",
3050
+ Valid: valid,
3051
+ Code: 0,
3052
+ DebugInfo: &validationutils.DebugInfo{
3053
+ FedConfig: configureDebugInfo,
3054
+ },
3055
+ }
3056
+
3057
+ if valid {
3058
+ result.Code = 200
3059
+ } else {
3060
+ result.Code = 30000
3061
+ }
3062
+
3063
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3064
+ results = append(results, result)
3065
+ results = append(results, subResults...)
3066
+
3067
+ return results, nil
3068
+ }
3069
+ var Validate_tag_3_lsp_features = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3070
+
3071
+ if input.Config.SkipTestsDict != nil {
3072
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_3_lsp_features"]; skip {
3073
+ return []validationutils.ValidationOutput{}, nil
3074
+ }
3075
+ }
3076
+
3077
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/providers'][*].tags[?(@.code=='lsp_features')]", true)
3078
+
3079
+ subResults := make([]validationutils.ValidationOutput, 0)
3080
+ valid := true
3081
+ configureDebugInfo := ""
3082
+ for _, testObjMap := range scope {
3083
+ validationutils.UnusedFunction(testObjMap)
3084
+
3085
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
3086
+ validationutils.UnusedFunction(subTags)
3087
+ 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`})
3088
+ validationutils.UnusedFunction(validValues)
3089
+
3090
+ validate := validationutils.AllIn(subTags, validValues)
3091
+
3092
+ configureDebugInfo = `{"_NAME_":"validate_tag_3_lsp_features","_SCOPE_":"$.message.catalog['bpp/providers'][*].tags[?(@.code=='lsp_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"],"_RETURN_":"subTags all in validValues"}`
3093
+
3094
+ if !validate {
3095
+ result := validationutils.ValidationOutput{
3096
+ TestName: "validate_tag_3_lsp_features",
3097
+ Valid: false,
3098
+ Code: 30000,
3099
+ Description: `#### **validate_tag_3_lsp_features**
3100
+
3101
+ - All elements of $.message.catalog['bpp/providers'][*].tags[?(@.code=='lsp_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"]`,
3102
+ DebugInfo: &validationutils.DebugInfo{
3103
+ FedConfig: configureDebugInfo,
3104
+ },
3105
+ }
3106
+ return []validationutils.ValidationOutput{result}, nil
3107
+ }
3108
+
3109
+ }
3110
+
3111
+ result := validationutils.ValidationOutput{
3112
+ TestName: "Validate_tag_3_lsp_features",
3113
+ Valid: valid,
3114
+ Code: 0,
3115
+ DebugInfo: &validationutils.DebugInfo{
3116
+ FedConfig: configureDebugInfo,
3117
+ },
3118
+ }
3119
+
3120
+ if valid {
3121
+ result.Code = 200
3122
+ } else {
3123
+ result.Code = 30000
3124
+ }
3125
+
3126
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3127
+ results = append(results, result)
3128
+ results = append(results, subResults...)
3129
+
3130
+ return results, nil
3131
+ }
3132
+ var Validate_tag_3_special_req = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3133
+
3134
+ if input.Config.SkipTestsDict != nil {
3135
+ if _, skip := input.Config.SkipTestsDict["Validate_tag_3_special_req"]; skip {
3136
+ return []validationutils.ValidationOutput{}, nil
3137
+ }
3138
+ }
3139
+
3140
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.catalog['bpp/providers'][*].tags[?(@.code=='special_req')]", true)
3141
+
3142
+ subResults := make([]validationutils.ValidationOutput, 0)
3143
+ valid := true
3144
+ configureDebugInfo := ""
3145
+ for _, testObjMap := range scope {
3146
+ validationutils.UnusedFunction(testObjMap)
3147
+
3148
+ subTags := validationutils.GetJsonPath(testObjMap, "$.list[*].code", true)
3149
+ validationutils.UnusedFunction(subTags)
3150
+ validValues := validationutils.StringSliceToInterface([]string{`dangerous_goods`, `cold_storage`, `open_box_delivery`, `fragile_handling`, `cod_order`})
3151
+ validationutils.UnusedFunction(validValues)
3152
+
3153
+ validate := validationutils.AllIn(subTags, validValues)
3154
+
3155
+ configureDebugInfo = `{"_NAME_":"validate_tag_3_special_req","_SCOPE_":"$.message.catalog['bpp/providers'][*].tags[?(@.code=='special_req')]","subTags":"$.list[*].code","validValues":["dangerous_goods","cold_storage","open_box_delivery","fragile_handling","cod_order"],"_RETURN_":"subTags all in validValues"}`
3156
+
3157
+ if !validate {
3158
+ result := validationutils.ValidationOutput{
3159
+ TestName: "validate_tag_3_special_req",
3160
+ Valid: false,
3161
+ Code: 30000,
3162
+ Description: `#### **validate_tag_3_special_req**
3163
+
3164
+ - All elements of $.message.catalog['bpp/providers'][*].tags[?(@.code=='special_req')].list[*].code must be in ["dangerous_goods", "cold_storage", "open_box_delivery", "fragile_handling", "cod_order"]`,
3165
+ DebugInfo: &validationutils.DebugInfo{
3166
+ FedConfig: configureDebugInfo,
3167
+ },
3168
+ }
3169
+ return []validationutils.ValidationOutput{result}, nil
3170
+ }
3171
+
3172
+ }
3173
+
3174
+ result := validationutils.ValidationOutput{
3175
+ TestName: "Validate_tag_3_special_req",
3176
+ Valid: valid,
3177
+ Code: 0,
3178
+ DebugInfo: &validationutils.DebugInfo{
3179
+ FedConfig: configureDebugInfo,
3180
+ },
3181
+ }
3182
+
3183
+ if valid {
3184
+ result.Code = 200
3185
+ } else {
3186
+ result.Code = 30000
3187
+ }
3188
+
3189
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3190
+ results = append(results, result)
3191
+ results = append(results, subResults...)
3192
+
3193
+ return results, nil
3194
+ }
3195
+ var Validate_static_terms = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3196
+
3197
+ if input.Config.SkipTestsDict != nil {
3198
+ if _, skip := input.Config.SkipTestsDict["Validate_static_terms"]; skip {
3199
+ return []validationutils.ValidationOutput{}, nil
3200
+ }
3201
+ }
3202
+
3203
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3204
+
3205
+ subResults := make([]validationutils.ValidationOutput, 0)
3206
+ valid := true
3207
+ configureDebugInfo := ""
3208
+ for _, testObjMap := range scope {
3209
+ validationutils.UnusedFunction(testObjMap)
3210
+
3211
+ staticTerms := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/descriptor'].tags[?(@.code=='bpp_terms')].list[?(@.code=='static_terms')].value", true)
3212
+ validationutils.UnusedFunction(staticTerms)
3213
+ staticTermsNew := validationutils.GetJsonPath(testObjMap, "$.message.catalog['bpp/descriptor'].tags[?(@.code=='bpp_terms')].list[?(@.code=='static_terms_new')].value", true)
3214
+ validationutils.UnusedFunction(staticTermsNew)
3215
+
3216
+ validate := (validationutils.ArePresent(staticTermsNew)) || (validationutils.ArePresent(staticTerms))
3217
+
3218
+ configureDebugInfo = `{"_NAME_":"validate_static_terms","_DESCRIPTION_":"Static terms should be sent inside bpp/descriptor/tags","staticTerms":"$.message.catalog['bpp/descriptor'].tags[?(@.code=='bpp_terms')].list[?(@.code=='static_terms')].value","staticTermsNew":"$.message.catalog['bpp/descriptor'].tags[?(@.code=='bpp_terms')].list[?(@.code=='static_terms_new')].value","_RETURN_":"staticTermsNew are present || staticTerms are present"}`
3219
+
3220
+ if !validate {
3221
+ result := validationutils.ValidationOutput{
3222
+ TestName: "validate_static_terms",
3223
+ Valid: false,
3224
+ Code: 30000,
3225
+ Description: `#### **validate_static_terms**
3226
+
3227
+ Static terms should be sent inside bpp/descriptor/tags`,
3228
+ DebugInfo: &validationutils.DebugInfo{
3229
+ FedConfig: configureDebugInfo,
3230
+ },
3231
+ }
3232
+ return []validationutils.ValidationOutput{result}, nil
3233
+ }
3234
+
3235
+ }
3236
+
3237
+ result := validationutils.ValidationOutput{
3238
+ TestName: "Validate_static_terms",
3239
+ Valid: valid,
3240
+ Code: 0,
3241
+ DebugInfo: &validationutils.DebugInfo{
3242
+ FedConfig: configureDebugInfo,
3243
+ },
3244
+ }
3245
+
3246
+ if valid {
3247
+ result.Code = 200
3248
+ } else {
3249
+ result.Code = 30000
3250
+ }
3251
+
3252
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3253
+ results = append(results, result)
3254
+ results = append(results, subResults...)
3255
+
3256
+ return results, nil
3257
+ }
3258
+
3259
+ var testFunctions = validationutils.TestFunctionArray{
3260
+ REQUIRED_CONTEXT_DOMAIN,
3261
+ REQUIRED_CONTEXT_COUNTRY,
3262
+ REQUIRED_CONTEXT_CITY,
3263
+ REQUIRED_CONTEXT_ACTION,
3264
+ REQUIRED_CONTEXT_CORE_VERSION,
3265
+ REQUIRED_CONTEXT_BAP_ID,
3266
+ REQUIRED_CONTEXT_BAP_URI,
3267
+ REQUIRED_CONTEXT_BPP_ID,
3268
+ REQUIRED_CONTEXT_BPP_URI,
3269
+ REQUIRED_CONTEXT_TRANSACTION_ID,
3270
+ REQUIRED_CONTEXT_MESSAGE_ID,
3271
+ REQUIRED_CONTEXT_TIMESTAMP,
3272
+ REQUIRED_MESSAGE_NAME,
3273
+ REQUIRED_MESSAGE_ID,
3274
+ REQUIRED_MESSAGE_NAME_15,
3275
+ REQUIRED_MESSAGE_SHORT_DESC,
3276
+ REQUIRED_MESSAGE_LONG_DESC,
3277
+ REQUIRED_MESSAGE_ID_18,
3278
+ REQUIRED_MESSAGE_LABEL,
3279
+ REQUIRED_MESSAGE_DURATION,
3280
+ REQUIRED_MESSAGE_TIMESTAMP,
3281
+ REQUIRED_MESSAGE_ID_22,
3282
+ REQUIRED_MESSAGE_TYPE,
3283
+ REQUIRED_MESSAGE_ID_24,
3284
+ REQUIRED_MESSAGE_PARENT_ITEM_ID,
3285
+ REQUIRED_MESSAGE_CATEGORY_ID,
3286
+ REQUIRED_MESSAGE_FULFILLMENT_ID,
3287
+ REQUIRED_MESSAGE_NAME_28,
3288
+ REQUIRED_MESSAGE_SHORT_DESC_29,
3289
+ REQUIRED_MESSAGE_LONG_DESC_30,
3290
+ REQUIRED_MESSAGE_CURRENCY,
3291
+ REQUIRED_MESSAGE_VALUE,
3292
+ VALID_ENUM_CONTEXT_DOMAIN,
3293
+ VALID_ENUM_MESSAGE_CATEGORY_ID,
3294
+ VALID_ENUM_MESSAGE_ID,
3295
+ VALID_ENUM_MESSAGE_TYPE,
3296
+ Validate_tag_0,
3297
+ Validate_tag_0_bpp_terms,
3298
+ Validate_tag_1,
3299
+ Validate_tag_1_distance,
3300
+ Validate_tag_1_motorable_distance,
3301
+ Validate_tag_1_fulfill_request,
3302
+ Validate_tag_1_linked_provider,
3303
+ Validate_tag_1_fulfill_response,
3304
+ Validate_tag_2,
3305
+ Validate_tag_2_type,
3306
+ Validate_tag_3,
3307
+ Validate_tag_3_lsp_features,
3308
+ Validate_tag_3_special_req,
3309
+ Validate_static_terms,
3310
+ }
3311
+
3312
+ allResults := make([]validationutils.ValidationOutput, 0)
3313
+
3314
+ for _, testFunc := range testFunctions {
3315
+ results, err := testFunc(input)
3316
+ if err != nil {
3317
+ return nil, err
3318
+ }
3319
+ allResults = append(allResults, results...)
3320
+ }
3321
+
3322
+ subResults = allResults
3323
+ // if all subResults are valid, then valid is true
3324
+ valid = true
3325
+ for _, res := range subResults {
3326
+ if !res.Valid {
3327
+ valid = false
3328
+ break
3329
+ }
3330
+ }
3331
+
3332
+ configureDebugInfo = `NESTED_TEST_OBJECT`
3333
+
3334
+ }
3335
+
3336
+ result := validationutils.ValidationOutput{
3337
+ TestName: "On_searchValidations",
3338
+ Valid: valid,
3339
+ Code: 0,
3340
+ DebugInfo: &validationutils.DebugInfo{
3341
+ FedConfig: configureDebugInfo,
3342
+ },
3343
+ }
3344
+
3345
+ if valid {
3346
+ result.Code = 200
3347
+ } else {
3348
+ result.Code = 30000
3349
+ }
3350
+
3351
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3352
+ results = append(results, result)
3353
+ results = append(results, subResults...)
3354
+
3355
+ return results, nil
3356
+ }