Files
neuron/tests/schema_valid_test.cc
T

90 lines
2.3 KiB
C++

#include <stdlib.h>
#include <gtest/gtest.h>
#include "schema/schema.h"
#include "json/json.h"
#define SCHEMA_FILE "./plugin_param_schema_test.json"
TEST(JsonSchema, SchemaValidTagType)
{
char buf[40960] = { 0 };
FILE *fp = fopen(SCHEMA_FILE, "r");
fread(buf, 1, sizeof(buf), fp);
fclose(fp);
neu_schema_valid_t *sv = neu_schema_load(buf, (char *) "test-plugin");
EXPECT_EQ(-1, neu_schema_valid_tag_type(sv, 1));
EXPECT_EQ(0, neu_schema_valid_tag_type(sv, 4));
neu_schema_free(sv);
}
TEST(JsonSchema, SchemaValidInt)
{
char buf[40960] = { 0 };
FILE *fp = fopen(SCHEMA_FILE, "r");
fread(buf, 1, sizeof(buf), fp);
fclose(fp);
neu_schema_valid_t *sv = neu_schema_load(buf, (char *) "test-plugin");
EXPECT_EQ(0, neu_schema_valid_param_int(sv, 1234, (char *) "port"));
EXPECT_EQ(-1, neu_schema_valid_param_int(sv, 1, (char *) "port"));
neu_schema_free(sv);
}
TEST(JsonSchema, SchemaValidString)
{
char buf[40960] = { 0 };
FILE *fp = fopen(SCHEMA_FILE, "r");
fread(buf, 1, sizeof(buf), fp);
fclose(fp);
neu_schema_valid_t *sv = neu_schema_load(buf, (char *) "test-plugin");
char *str1 = (char *) "1234";
char *str2 = (char *) "1234567890123456789012345678901";
EXPECT_EQ(0, neu_schema_valid_param_string(sv, str1, (char *) "host"));
EXPECT_EQ(-1, neu_schema_valid_param_string(sv, str2, (char *) "host"));
neu_schema_free(sv);
}
TEST(JsonSchema, SchemaValidReal)
{
char buf[40960] = { 0 };
FILE *fp = fopen(SCHEMA_FILE, "r");
fread(buf, 1, sizeof(buf), fp);
fclose(fp);
neu_schema_valid_t *sv = neu_schema_load(buf, (char *) "test-plugin");
EXPECT_EQ(0, neu_schema_valid_param_real(sv, 10.1, (char *) "real_param"));
EXPECT_EQ(-1, neu_schema_valid_param_real(sv, 30.5, (char *) "real_param"));
neu_schema_free(sv);
}
TEST(JsonSchema, SchemaValidEnum)
{
char buf[40960] = { 0 };
FILE *fp = fopen(SCHEMA_FILE, "r");
fread(buf, 1, sizeof(buf), fp);
fclose(fp);
neu_schema_valid_t *sv = neu_schema_load(buf, (char *) "test-plugin");
EXPECT_EQ(0, neu_schema_valid_param_enum(sv, 9600, (char *) "baud_rate"));
EXPECT_EQ(-1, neu_schema_valid_param_enum(sv, 1234, (char *) "baud_rate"));
neu_schema_free(sv);
}