37#include "../res/ari/ari_model_validators.h"
39#if defined(TEST_FRAMEWORK)
46static int wrap_ast_ari_validate_int(
struct ast_json *json)
52#if defined(TEST_FRAMEWORK)
59static int wrap_ast_ari_validate_string(
struct ast_json *json)
73 info->name = __func__;
74 info->category =
"/ari/validators/";
75 info->summary =
"Test byte validation";
77 "Test byte validation";
84 ast_test_validate(
test,
NULL != uut);
88 ast_test_validate(
test, 0 == res);
92 ast_test_validate(
test, 0 == res);
96 ast_test_validate(
test, 0 == res);
100 ast_test_validate(
test, 0 == res);
109 ast_test_validate(
test, 0 == res);
124 info->name = __func__;
125 info->category =
"/ari/validators/";
126 info->summary =
"Test byte validation";
128 "Test byte validation";
143 ast_test_validate(
test, 0 == res);
148 ast_test_validate(
test, 0 == res);
164 info->name = __func__;
165 info->category =
"/ari/validators/";
166 info->summary =
"Test int validation";
168 "Test int validation";
175 ast_test_validate(
test,
NULL != uut);
179 ast_test_validate(
test, 0 == res);
183 ast_test_validate(
test, 0 == res);
187 ast_test_validate(
test, 0 == res);
191 ast_test_validate(
test, 0 == res);
200 ast_test_validate(
test, 0 == res);
216 info->name = __func__;
217 info->category =
"/ari/validators/";
218 info->summary =
"Test long validation";
220 "Test long validation";
227 ast_test_validate(
test,
NULL != uut);
236 ast_test_validate(
test, 0 == res);
252 info->name = __func__;
253 info->category =
"/ari/validators/";
254 info->summary =
"Test string validation";
256 "Test string validation";
263 ast_test_validate(
test,
NULL != uut);
267 ast_test_validate(
test, 0 == res);
282 const char *valid_dates[] = {
288 "2013-06-17T23:59:59Z",
290 "2013-06-30T23:59:61Z",
292 "2013-06-17T23:59:59.999999Z",
294 "2013-06-17T23:59-06:00",
295 "2013-06-17T23:59:59-06:00",
296 "2013-06-30T23:59:61-06:00",
297 "2013-06-17T23:59:59.999999-06:00",
299 "2013-06-17T23:59+06:30",
300 "2013-06-17T23:59:59+06:30",
301 "2013-06-30T23:59:61+06:30",
302 "2013-06-17T23:59:59.999999+06:30",
304 "2013-06-17T23:59-0600",
305 "2013-06-17T23:59:59-0600",
306 "2013-06-30T23:59:61-0600",
307 "2013-06-17T23:59:59.999999-0600",
309 "2013-06-17T23:59+0630",
310 "2013-06-17T23:59:59+0630",
311 "2013-06-30T23:59:61+0630",
312 "2013-06-17T23:59:59.999999+0630",
313 "9999-12-31T23:59:61.999999Z",
315 "2013-06-17T23:59-06",
316 "2013-06-17T23:59:59-06",
317 "2013-06-30T23:59:61-06",
318 "2013-06-17T23:59:59.999999-06",
328 const char *invalid_dates[] = {
332 "2013-06-17T23:59:59.Z",
334 "2013-06-17T23:59:59.999999",
335 "9999-99-31T23:59:61.999999Z",
336 "9999-12-99T23:59:61.999999Z",
337 "9999-12-31T99:59:61.999999Z",
338 "9999-12-31T23:99:61.999999Z",
339 "9999-12-31T23:59:99.999999Z",
340 "2013-06-17T23:59:59.999999-99:00",
341 "2013-06-17T23:59:59.999999-06:99",
342 "2013-06-17T23:59:59.999999-06:",
343 "2013-06-17T23:59:59.999999-06:0",
344 "2013-06-17T23:59:59.999999-060",
349 info->name = __func__;
350 info->category =
"/ari/validators/";
351 info->summary =
"Test date validation";
353 "Test date validation";
360 ast_test_validate(
test,
NULL != uut);
365 for (i = 0; i <
ARRAY_LEN(valid_dates); ++i) {
367 ast_test_validate(
test, 0 == res);
370 "Expected '%s' to be a valid date\n",
376 for (i = 0; i <
ARRAY_LEN(invalid_dates); ++i) {
378 ast_test_validate(
test, 0 == res);
381 "Expected '%s' to be an invalid date\n",
400 info->name = __func__;
401 info->category =
"/ari/validators/";
402 info->summary =
"Test list validation";
404 "Test list validation";
411 ast_test_validate(
test,
NULL != uut);
416 ast_test_validate(
test, 0 == res);
421 ast_test_validate(
test, 0 == res);
425 ast_test_validate(
test,
459 .
requires =
"res_ari_model",
int ast_ari_validate_int(struct ast_json *json)
Validator for native Swagger int.
int ast_ari_validate_long(struct ast_json *json)
Validator for native Swagger long.
int ast_ari_validate_byte(struct ast_json *json)
Validator for native Swagger byte.
int ast_ari_validate_string(struct ast_json *json)
Validator for native Swagger string.
int ast_ari_validate_boolean(struct ast_json *json)
Validator for native Swagger boolean.
int ast_ari_validate_date(struct ast_json *json)
Validator for native Swagger date.
int ast_ari_validate_list(struct ast_json *json, int(*fn)(struct ast_json *))
Validator for a Swagger List[]/JSON array.
Asterisk main include file. File version handling, generic pbx functions.
struct ast_json * ast_json_false(void)
Get the JSON false value.
struct ast_json * ast_json_string_create(const char *value)
Construct a JSON string from value.
struct ast_json * ast_json_null(void)
Get the JSON null value.
void ast_json_unref(struct ast_json *value)
Decrease refcount on value. If refcount reaches zero, value is freed.
int ast_json_array_append(struct ast_json *array, struct ast_json *value)
Append to an array.
int ast_json_integer_set(struct ast_json *integer, intmax_t value)
Set the value of a JSON integer.
struct ast_json * ast_json_integer_create(intmax_t value)
Create a JSON integer.
struct ast_json * ast_json_array_create(void)
Create a empty JSON array.
struct ast_json * ast_json_true(void)
Get the JSON true value.
int ast_json_string_set(struct ast_json *string, const char *value)
Change the value of a JSON string.
Asterisk module definitions.
#define AST_MODULE_INFO(keystr, flags_to_set, desc, fields...)
@ AST_MODULE_SUPPORT_CORE
#define ASTERISK_GPL_KEY
The text the key() function should return.
@ AST_MODULE_LOAD_SUCCESS
Abstract JSON element (object, array, string, int, ...).
#define AST_TEST_REGISTER(cb)
#define ast_test_status_update(a, b, c...)
#define AST_TEST_UNREGISTER(cb)
AST_TEST_DEFINE(validate_byte)
static int load_module(void)
static int unload_module(void)
static enum ast_test_result_state test_res
#define RAII_VAR(vartype, varname, initval, dtor)
Declare a variable that will call a destructor function when it goes out of scope.