X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=redismodule%2Ftst%2Fsrc%2Fexstrings_test.cpp;h=d239eeabda0728108c44cba56a5b402a6c7f08c2;hb=dc8b09a63af0b4cba51b49b758a999aeeac1630e;hp=2d540d54a2091a5b5f803af8b0aebbc9189c6cb7;hpb=87fd3ca9bf5cc0949dffc44ac68f0964964bee41;p=ric-plt%2Fdbaas.git diff --git a/redismodule/tst/src/exstrings_test.cpp b/redismodule/tst/src/exstrings_test.cpp index 2d540d5..d239eea 100755 --- a/redismodule/tst/src/exstrings_test.cpp +++ b/redismodule/tst/src/exstrings_test.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Nokia. + * Copyright (c) 2018-2020 Nokia. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,17 +14,10 @@ * limitations under the License. */ -#include -#include -#include -#include -#include -#include - - -//#include -//#include -//#include +/* + * This source code is part of the near-RT RIC (RAN Intelligent Controller) + * platform project (RICP). + */ extern "C" { @@ -41,6 +34,11 @@ extern "C" { #define OBJ_OP_IE (1<<4) /* OP if equal old value */ #define OBJ_OP_NE (1<<5) /* OP if not equal old value */ +typedef struct RedisModuleBlockedClientArgs { + RedisModuleBlockedClient *bc; + RedisModuleString **argv; + int argc; +} RedisModuleBlockedClientArgs; TEST_GROUP(exstring) { @@ -83,6 +81,7 @@ TEST(exstring, setie) int ret = SetIE_RedisCommand(&ctx, redisStrVec, 4); CHECK_EQUAL(ret, 0); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; } @@ -101,6 +100,7 @@ TEST(exstring, setne) mock().setData("RedisModule_String_same", 1); int ret = SetNE_RedisCommand(&ctx,redisStrVec, 4); CHECK_EQUAL(ret, 0); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; } @@ -261,6 +261,7 @@ TEST(exstring, delie) int ret = DelIE_RedisCommand(&ctx, redisStrVec, 3); CHECK_EQUAL(ret, 0); mock().checkExpectations(); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; } @@ -280,6 +281,7 @@ TEST(exstring, delne) int ret = DelNE_RedisCommand(&ctx,redisStrVec, 3); CHECK_EQUAL(ret, 0); mock().checkExpectations(); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; } @@ -441,200 +443,249 @@ TEST(exstring, delne_command_key_string_nosame_reply) } -TEST(exstring, setpub) +TEST(exstring, setpub_command_parameter_number_incorrect) { RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[5]); + int ret = 0; - redisStrVec[0] = (RedisModuleString *)1; - redisStrVec[1] = (RedisModuleString *)1; - redisStrVec[2] = (RedisModuleString *)1; - redisStrVec[3] = (RedisModuleString *)1; - redisStrVec[4] = (RedisModuleString *)1; + ret = SetPub_RedisCommand(&ctx, 0, 2); + CHECK_EQUAL(ret, REDISMODULE_ERR); - mock().setData("RedisModule_OpenKey_have", 1); - mock().setData("RedisModule_KeyType_str", 1); - mock().setData("RedisModule_String_same", 1); - mock().setData("RedisModule_CallReplyType_null", 1); + ret = 0; + ret = SetPub_RedisCommand(&ctx, 0, 8); + CHECK_EQUAL(ret, REDISMODULE_ERR); - mock().expectOneCall("RedisModule_CloseKey"); - int ret = SetPub_RedisCommand(&ctx, redisStrVec, 5); - CHECK_EQUAL(ret, REDISMODULE_OK); - mock().checkExpectations(); - delete []redisStrVec; -} + ret = 0; + ret = SetMPub_RedisCommand(&ctx, 0, 2); + CHECK_EQUAL(ret, REDISMODULE_ERR); -TEST(exstring, setxxpub) -{ - RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[5]); + ret = 0; + ret = SetMPub_RedisCommand(&ctx, 0, 8); + CHECK_EQUAL(ret, REDISMODULE_ERR); - redisStrVec[0] = (RedisModuleString *)1; - redisStrVec[1] = (RedisModuleString *)1; - redisStrVec[2] = (RedisModuleString *)1; - redisStrVec[3] = (RedisModuleString *)1; - redisStrVec[4] = (RedisModuleString *)1; + ret = 0; + ret = SetXXPub_RedisCommand(&ctx, 0, 3); + CHECK_EQUAL(ret, REDISMODULE_ERR); - mock().setData("RedisModule_OpenKey_have", 1); - mock().setData("RedisModule_KeyType_str", 1); - mock().setData("RedisModule_String_same", 1); - mock().setData("RedisModule_CallReplyType_null", 1); + ret = 0; + ret = SetXXPub_RedisCommand(&ctx, 0, 6); + CHECK_EQUAL(ret, REDISMODULE_ERR); - mock().expectOneCall("RedisModule_CloseKey"); - int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5); - CHECK_EQUAL(ret, REDISMODULE_OK); - mock().checkExpectations(); - delete []redisStrVec; + ret = 0; + ret = SetNXPub_RedisCommand(&ctx, 0, 3); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = SetNXMPub_RedisCommand(&ctx, 0, 3); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = SetNXPub_RedisCommand(&ctx, 0, 6); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = SetIEPub_RedisCommand(&ctx, 0, 4); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = SetIEMPub_RedisCommand(&ctx, 0, 4); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = SetIEPub_RedisCommand(&ctx, 0, 9); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = SetNEPub_RedisCommand(&ctx, 0, 4); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = SetNEPub_RedisCommand(&ctx, 0, 9); + CHECK_EQUAL(ret, REDISMODULE_ERR); } -TEST(exstring, setnxpub) +TEST(exstring, setpub_command_no_key_replystr) { RedisModuleCtx ctx; RedisModuleString ** redisStrVec = new (RedisModuleString*[5]); - redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[0] = (RedisModuleString *)0; redisStrVec[1] = (RedisModuleString *)1; - redisStrVec[2] = (RedisModuleString *)1; - redisStrVec[3] = (RedisModuleString *)1; - redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)2; + redisStrVec[3] = (RedisModuleString *)3; + redisStrVec[4] = (RedisModuleString *)4; - mock().setData("RedisModule_OpenKey_have", 1); - mock().setData("RedisModule_KeyType_str", 1); - mock().setData("RedisModule_String_same", 1); - mock().setData("RedisModule_CallReplyType_null", 1); + mock().setData("RedisModule_KeyType_empty", 1); + mock().setData("RedisModule_CallReplyType_str", 1); - mock().expectOneCall("RedisModule_CloseKey"); - int ret = SetNXPub_RedisCommand(&ctx, redisStrVec, 5); + int ret = SetPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); + CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); + CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1); + CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1); + CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); + delete []redisStrVec; + } -TEST(exstring, setiepub) +TEST(exstring, setmpub_command_negative_key_val_count) { RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[6]); + RedisModuleString ** redisStrVec = new (RedisModuleString*[7]); - redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[0] = (RedisModuleString *)0; redisStrVec[1] = (RedisModuleString *)1; - redisStrVec[2] = (RedisModuleString *)1; - redisStrVec[3] = (RedisModuleString *)1; - redisStrVec[4] = (RedisModuleString *)1; - redisStrVec[5] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)2; + redisStrVec[3] = (RedisModuleString *)3; + redisStrVec[4] = (RedisModuleString *)4; + redisStrVec[5] = (RedisModuleString *)5; + redisStrVec[6] = (RedisModuleString *)6; - mock().setData("RedisModule_OpenKey_have", 1); - mock().setData("RedisModule_KeyType_str", 1); - mock().setData("RedisModule_String_same", 1); - mock().setData("RedisModule_CallReplyType_null", 1); + mock().setData("RedisModule_KeyType_empty", 1); + mock().setData("RedisModule_CallReplyType_str", 1); + mock().setData("RedisModule_StringToLongLongCall_1", -1); + mock().setData("RedisModule_StringToLongLongCall_2", 1); - mock().expectOneCall("RedisModule_CloseKey"); - int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6); + int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(0, mock().getData("MSET").getIntValue()); + CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue()); + CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue()); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); + delete []redisStrVec; + } -TEST(exstring, setnepub) +TEST(exstring, setmpub_command_negative_chan_msg_count) { RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[6]); + RedisModuleString ** redisStrVec = new (RedisModuleString*[7]); - redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[0] = (RedisModuleString *)0; redisStrVec[1] = (RedisModuleString *)1; - redisStrVec[2] = (RedisModuleString *)1; - redisStrVec[3] = (RedisModuleString *)1; - redisStrVec[4] = (RedisModuleString *)1; - redisStrVec[5] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)2; + redisStrVec[3] = (RedisModuleString *)3; + redisStrVec[4] = (RedisModuleString *)4; + redisStrVec[5] = (RedisModuleString *)5; + redisStrVec[6] = (RedisModuleString *)6; - mock().setData("RedisModule_OpenKey_have", 1); - mock().setData("RedisModule_KeyType_str", 1); - mock().setData("RedisModule_String_same", 1); - mock().setData("RedisModule_CallReplyType_null", 1); + mock().setData("RedisModule_KeyType_empty", 1); + mock().setData("RedisModule_CallReplyType_str", 1); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", -1); - mock().expectOneCall("RedisModule_CloseKey"); - int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6); + int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(0, mock().getData("MSET").getIntValue()); + CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue()); + CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue()); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); + delete []redisStrVec; + } -TEST(exstring, setpub_command_parameter_number_incorrect) +TEST(exstring, setmpub_command_invalid_total_count) { RedisModuleCtx ctx; - int ret = 0; - ret = setPubStringGenericCommand(&ctx, 0, 2, OBJ_OP_NO); - CHECK_EQUAL(ret, REDISMODULE_ERR); + RedisModuleString ** redisStrVec = new (RedisModuleString*[7]); - ret = 0; - ret = setPubStringGenericCommand(&ctx, 0, 8, OBJ_OP_NO); - CHECK_EQUAL(ret, REDISMODULE_ERR); + redisStrVec[0] = (RedisModuleString *)0; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)2; + redisStrVec[3] = (RedisModuleString *)3; + redisStrVec[4] = (RedisModuleString *)4; + redisStrVec[5] = (RedisModuleString *)5; + redisStrVec[6] = (RedisModuleString *)6; - ret = 0; - ret = setPubStringGenericCommand(&ctx, 0, 3, OBJ_OP_XX); - CHECK_EQUAL(ret, REDISMODULE_ERR); + mock().setData("RedisModule_KeyType_empty", 1); + mock().setData("RedisModule_CallReplyType_str", 1); + mock().setData("RedisModule_StringToLongLongCall_1", 100); + mock().setData("RedisModule_StringToLongLongCall_2", 100); - ret = 0; - ret = setPubStringGenericCommand(&ctx, 0, 6, OBJ_OP_NX); - CHECK_EQUAL(ret, REDISMODULE_ERR); + int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7); + CHECK_EQUAL(ret, REDISMODULE_OK); + mock().checkExpectations(); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(0, mock().getData("MSET").getIntValue()); + CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue()); + CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue()); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); - ret = 0; - ret = setPubStringGenericCommand(&ctx, 0, 4, OBJ_OP_IE); - CHECK_EQUAL(ret, REDISMODULE_ERR); + delete []redisStrVec; - ret = 0; - ret = setPubStringGenericCommand(&ctx, 0, 8, OBJ_OP_NE); - CHECK_EQUAL(ret, REDISMODULE_ERR); } -TEST(exstring, setpub_command_no_key_replynull) +TEST(exstring, setmpub_command_set) { RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[5]); + RedisModuleString ** redisStrVec = new (RedisModuleString*[7]); redisStrVec[0] = (RedisModuleString *)0; redisStrVec[1] = (RedisModuleString *)1; redisStrVec[2] = (RedisModuleString *)2; redisStrVec[3] = (RedisModuleString *)3; redisStrVec[4] = (RedisModuleString *)4; + redisStrVec[5] = (RedisModuleString *)5; + redisStrVec[6] = (RedisModuleString *)6; mock().setData("RedisModule_KeyType_empty", 1); - mock().setData("RedisModule_CallReplyType_null", 1); + mock().setData("RedisModule_CallReplyType_str", 1); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", 1); - mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NO); + int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); - CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); - CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1); - CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); - CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(1, mock().getData("MSET").getIntValue()); + CHECK_EQUAL(1, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(2, mock().getData("RedisModule_FreeCallReply").getIntValue()); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; } -TEST(exstring, setpub_command_no_key_replystr) +TEST(exstring, setmpub_command_set_multipub) { RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[5]); + RedisModuleString ** redisStrVec = new (RedisModuleString*[9]); redisStrVec[0] = (RedisModuleString *)0; redisStrVec[1] = (RedisModuleString *)1; redisStrVec[2] = (RedisModuleString *)2; redisStrVec[3] = (RedisModuleString *)3; redisStrVec[4] = (RedisModuleString *)4; + redisStrVec[5] = (RedisModuleString *)5; + redisStrVec[6] = (RedisModuleString *)6; + redisStrVec[7] = (RedisModuleString *)7; + redisStrVec[8] = (RedisModuleString *)8; mock().setData("RedisModule_KeyType_empty", 1); mock().setData("RedisModule_CallReplyType_str", 1); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", 2); - mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NO); + int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 9); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); - CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); - CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1); - CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(1, mock().getData("MSET").getIntValue()); + CHECK_EQUAL(2, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(3, mock().getData("RedisModule_FreeCallReply").getIntValue()); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -655,7 +706,7 @@ TEST(exstring, setxxpub_command_has_no_key) mock().setData("RedisModule_CallReplyType_null", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_XX); + int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -664,6 +715,7 @@ TEST(exstring, setxxpub_command_has_no_key) CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0); CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -683,7 +735,7 @@ TEST(exstring, setxxpub_command_parameter_has_key_set) mock().setData("RedisModule_KeyType_set", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_XX); + int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -692,6 +744,7 @@ TEST(exstring, setxxpub_command_parameter_has_key_set) CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0); CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -712,7 +765,7 @@ TEST(exstring, setxxpub_command_has_key_string) mock().setData("RedisModule_CallReplyType_str", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_XX); + int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -721,6 +774,7 @@ TEST(exstring, setxxpub_command_has_key_string) CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1); CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -742,7 +796,7 @@ TEST(exstring, setnxpub_command_has_key_string) mock().setData("RedisModule_CallReplyType_null", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NX); + int ret = SetNXPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -751,6 +805,7 @@ TEST(exstring, setnxpub_command_has_key_string) CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0); CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -771,7 +826,7 @@ TEST(exstring, setnxpub_command_has_no_key) mock().setData("RedisModule_CallReplyType_str", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NX); + int ret = SetNXPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -780,6 +835,7 @@ TEST(exstring, setnxpub_command_has_no_key) CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1); CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -803,7 +859,7 @@ TEST(exstring, setiepub_command_has_no_key) mock().setData("RedisModule_CallReplyType_str", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 6, OBJ_OP_IE); + int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -812,6 +868,7 @@ TEST(exstring, setiepub_command_has_no_key) CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0); CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -835,7 +892,7 @@ TEST(exstring, setiepub_command_key_string_nosame) mock().setData("RedisModule_String_nosame", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 6, OBJ_OP_IE); + int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -844,37 +901,7 @@ TEST(exstring, setiepub_command_key_string_nosame) CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0); CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1); - - delete []redisStrVec; - -} - -TEST(exstring, setiepub_command_key_same_string_replynull) -{ - RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[6]); - - redisStrVec[0] = (RedisModuleString *)0; - redisStrVec[1] = (RedisModuleString *)1; - redisStrVec[2] = (RedisModuleString *)2; - redisStrVec[3] = (RedisModuleString *)3; - redisStrVec[4] = (RedisModuleString *)4; - redisStrVec[5] = (RedisModuleString *)5; - - mock().setData("RedisModule_KeyType_str", 1); - mock().setData("RedisModule_String_same", 1); - mock().setData("RedisModule_CallReplyType_null", 1); - - mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 6, OBJ_OP_IE); - - CHECK_EQUAL(ret, REDISMODULE_OK); - mock().checkExpectations(); - CHECK_EQUAL(mock().getData("GET").getIntValue(), 1); - CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1); - CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); - CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -897,7 +924,7 @@ TEST(exstring, setiepub_command_key_same_string_reply) mock().setData("RedisModule_CallReplyType_str", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 6, OBJ_OP_IE); + int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -906,6 +933,7 @@ TEST(exstring, setiepub_command_key_same_string_reply) CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -928,7 +956,7 @@ TEST(exstring, setnepub_command_has_no_key) mock().setData("RedisModule_String_nosame", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 6, OBJ_OP_NE); + int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -937,6 +965,7 @@ TEST(exstring, setnepub_command_has_no_key) CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1); CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3); + CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1); delete []redisStrVec; @@ -959,7 +988,7 @@ TEST(exstring, setnepub_command_key_string_same_reply) mock().setData("RedisModule_CallReplyType_str", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 6, OBJ_OP_NE); + int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -991,7 +1020,7 @@ TEST(exstring, setnepub_command_key_string_nosame_reply) mock().setData("RedisModule_String_nosame", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = setPubStringGenericCommand(&ctx, redisStrVec, 6, OBJ_OP_NE); + int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); @@ -1026,6 +1055,34 @@ TEST(exstring, delpub) delete []redisStrVec; } +TEST(exstring, delmpub) +{ + RedisModuleCtx ctx; + RedisModuleString ** redisStrVec = new (RedisModuleString*[8]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[5] = (RedisModuleString *)1; + redisStrVec[6] = (RedisModuleString *)1; + redisStrVec[7] = (RedisModuleString *)1; + + mock().setData("RedisModule_OpenKey_have", 1); + mock().setData("RedisModule_KeyType_str", 1); + mock().setData("RedisModule_String_same", 1); + mock().setData("RedisModule_CallReplyType_null", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", 2); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 8); + CHECK_EQUAL(ret, REDISMODULE_OK); + + delete []redisStrVec; +} + TEST(exstring, deliepub) { RedisModuleCtx ctx; @@ -1049,6 +1106,29 @@ TEST(exstring, deliepub) delete []redisStrVec; } +TEST(exstring, deliempub) +{ + RedisModuleCtx ctx; + RedisModuleString ** redisStrVec = new (RedisModuleString*[5]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + + mock().setData("RedisModule_OpenKey_have", 1); + mock().setData("RedisModule_KeyType_str", 1); + mock().setData("RedisModule_String_same", 1); + mock().setData("RedisModule_CallReplyType_null", 1); + + mock().expectOneCall("RedisModule_CloseKey"); + int ret = DelIEMPub_RedisCommand(&ctx, redisStrVec, 5); + CHECK_EQUAL(ret, REDISMODULE_OK); + mock().checkExpectations(); + delete []redisStrVec; +} + TEST(exstring, delnepub) { RedisModuleCtx ctx; @@ -1076,15 +1156,23 @@ TEST(exstring, delpub_command_parameter_number_incorrect) { RedisModuleCtx ctx; int ret = 0; - ret = delPubStringGenericCommand(&ctx, 0, 2, OBJ_OP_NO); + ret = DelPub_RedisCommand(&ctx, 0, 2); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = DelMPub_RedisCommand(&ctx, 0, 5); + CHECK_EQUAL(ret, REDISMODULE_ERR); + + ret = 0; + ret = DelIEPub_RedisCommand(&ctx, 0, 4); CHECK_EQUAL(ret, REDISMODULE_ERR); ret = 0; - ret = delPubStringGenericCommand(&ctx, 0, 4, OBJ_OP_IE); + ret = DelIEMPub_RedisCommand(&ctx, 0, 4); CHECK_EQUAL(ret, REDISMODULE_ERR); ret = 0; - ret = delPubStringGenericCommand(&ctx, 0, 8, OBJ_OP_NE); + ret = DelNEPub_RedisCommand(&ctx, 0, 8); CHECK_EQUAL(ret, REDISMODULE_ERR); } @@ -1102,7 +1190,7 @@ TEST(exstring, delpub_command_reply_null) mock().setData("RedisModule_CallReplyType_inter", 1); mock().setData("RedisModule_Call_Return_Null", 0); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NO); + int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, 0); CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1); @@ -1127,13 +1215,13 @@ TEST(exstring, delpub_command_reply_error) mock().setData("RedisModule_CallReplyInteger", 0); mock().setData("RedisModule_CallReplyType_err", 1); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NO); - CHECK_EQUAL(ret, REDISMODULE_ERR); + int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5); + CHECK_EQUAL(ret, REDISMODULE_OK); CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1); CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1); + CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0); delete []redisStrVec; @@ -1152,7 +1240,7 @@ TEST(exstring, delpub_command_has_no_key) mock().setData("RedisModule_CallReplyInteger", 0); mock().setData("RedisModule_CallReplyType_inter", 1); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NO); + int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, 0); CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1); @@ -1163,6 +1251,243 @@ TEST(exstring, delpub_command_has_no_key) } +TEST(exstring, delmpub_command_reply_null) +{ + RedisModuleCtx ctx; + RedisModuleString **redisStrVec = new (RedisModuleString*[6]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[5] = (RedisModuleString *)1; + + mock().setData("RedisModule_Call_Return_Null", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", 1); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6); + CHECK_EQUAL(ret, 0); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue()); + CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(0, mock().getData("RedisModule_ReplyWithCallReply").getIntValue()); + CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue()); + delete []redisStrVec; + +} + +TEST(exstring, delmpub_command_reply_error) +{ + RedisModuleCtx ctx; + RedisModuleString **redisStrVec = new (RedisModuleString*[6]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + + mock().setData("RedisModule_CallReplyInteger", 0); + mock().setData("RedisModule_CallReplyType_err", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", 1); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6); + CHECK_EQUAL(ret, REDISMODULE_OK); + CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); + CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1); + CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); + CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1); + CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0); + CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0); + delete []redisStrVec; + +} + +TEST(exstring, delmpub_command_has_no_key) +{ + RedisModuleCtx ctx; + RedisModuleString **redisStrVec = new (RedisModuleString*[6]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[5] = (RedisModuleString *)1; + + mock().setData("RedisModule_CallReplyInteger", 0); + mock().setData("RedisModule_CallReplyType_inter", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", 1); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6); + CHECK_EQUAL(ret, 0); + CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); + CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1); + CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0); + CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1); + CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1); + delete []redisStrVec; + +} + +TEST(exstring, delmpub_command_key_deleted) +{ + RedisModuleCtx ctx; + RedisModuleString **redisStrVec = new (RedisModuleString*[6]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[5] = (RedisModuleString *)1; + + mock().setData("RedisModule_CallReplyInteger", 1); + mock().setData("RedisModule_CallReplyType_inter", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", 1); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6); + CHECK_EQUAL(ret, 0); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue()); + CHECK_EQUAL(1, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithCallReply").getIntValue()); + CHECK_EQUAL(2, mock().getData("RedisModule_FreeCallReply").getIntValue()); + delete []redisStrVec; + +} + +TEST(exstring, delmpub_command_key_deleted_multi_pub) +{ + RedisModuleCtx ctx; + RedisModuleString **redisStrVec = new (RedisModuleString*[10]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[5] = (RedisModuleString *)1; + redisStrVec[6] = (RedisModuleString *)1; + redisStrVec[7] = (RedisModuleString *)1; + redisStrVec[8] = (RedisModuleString *)1; + redisStrVec[9] = (RedisModuleString *)1; + + mock().setData("RedisModule_CallReplyInteger", 1); + mock().setData("RedisModule_CallReplyType_inter", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", 3); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 10); + CHECK_EQUAL(0, ret); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue()); + CHECK_EQUAL(3, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithCallReply").getIntValue()); + CHECK_EQUAL(4, mock().getData("RedisModule_FreeCallReply").getIntValue()); + delete []redisStrVec; + +} + +TEST(exstring, delmpub_command_negative_del_count) +{ + RedisModuleCtx ctx; + RedisModuleString **redisStrVec = new (RedisModuleString*[6]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[5] = (RedisModuleString *)1; + + mock().setData("RedisModule_CallReplyInteger", 1); + mock().setData("RedisModule_CallReplyType_inter", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", -1); + mock().setData("RedisModule_StringToLongLongCall_2", 1); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6); + CHECK_EQUAL(0, ret); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue()); + CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue()); + CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue()); + delete []redisStrVec; + +} + +TEST(exstring, delmpub_command_negative_chan_msg_count) +{ + RedisModuleCtx ctx; + RedisModuleString **redisStrVec = new (RedisModuleString*[6]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[5] = (RedisModuleString *)1; + + mock().setData("RedisModule_CallReplyInteger", 1); + mock().setData("RedisModule_CallReplyType_inter", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", 1); + mock().setData("RedisModule_StringToLongLongCall_2", -1); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6); + CHECK_EQUAL(0, ret); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue()); + CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue()); + CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue()); + delete []redisStrVec; + +} + +TEST(exstring, delmpub_command_invalid_total_count) +{ + RedisModuleCtx ctx; + RedisModuleString **redisStrVec = new (RedisModuleString*[6]); + + redisStrVec[0] = (RedisModuleString *)1; + redisStrVec[1] = (RedisModuleString *)1; + redisStrVec[2] = (RedisModuleString *)1; + redisStrVec[3] = (RedisModuleString *)1; + redisStrVec[4] = (RedisModuleString *)1; + redisStrVec[5] = (RedisModuleString *)1; + + mock().setData("RedisModule_CallReplyInteger", 1); + mock().setData("RedisModule_CallReplyType_inter", 1); + mock().setData("RedisModule_StringToLongLongCallCount", 0); + mock().setData("RedisModule_StringToLongLongCall_1", 100); + mock().setData("RedisModule_StringToLongLongCall_2", 100); + + int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6); + CHECK_EQUAL(0, ret); + CHECK_EQUAL(0, mock().getData("GET").getIntValue()); + CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue()); + CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue()); + CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue()); + CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue()); + delete []redisStrVec; + +} + TEST(exstring, deliepub_command_has_no_key) { RedisModuleCtx ctx; @@ -1176,7 +1501,7 @@ TEST(exstring, deliepub_command_has_no_key) mock().setData("RedisModule_KeyType_empty", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_IE); + int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, 0); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0); CHECK_EQUAL(mock().getData("GET").getIntValue(), 0); @@ -1202,7 +1527,7 @@ TEST(exstring, deliepub_command_has_key_set) mock().setData("RedisModule_OpenKey_have", 1); mock().setData("RedisModule_KeyType_set", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_IE); + int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1); @@ -1230,7 +1555,7 @@ TEST(exstring, deliepub_command_key_string_nosame) mock().setData("RedisModule_KeyType_str", 1); mock().setData("RedisModule_String_nosame", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_IE); + int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0); @@ -1260,7 +1585,7 @@ TEST(exstring, deliepub_command_same_string_replynull) mock().setData("RedisModule_String_same", 1); mock().setData("RedisModule_CallReplyType_null", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_IE); + int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0); @@ -1291,7 +1616,7 @@ TEST(exstring, deliepub_command_same_string_reply) mock().setData("RedisModule_CallReplyType_str", 1); mock().setData("RedisModule_CallReplyInteger", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_IE); + int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0); @@ -1321,7 +1646,7 @@ TEST(exstring, delnepub_command_same_string_reply) mock().setData("RedisModule_String_same", 1); mock().setData("RedisModule_CallReplyType_str", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NE); + int ret = DelNEPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0); @@ -1352,7 +1677,7 @@ TEST(exstring, delnepub_command_nosame_string_reply) mock().setData("RedisModule_CallReplyType_str", 1); mock().setData("RedisModule_CallReplyInteger", 1); mock().expectOneCall("RedisModule_CloseKey"); - int ret = delPubStringGenericCommand(&ctx, redisStrVec, 5, OBJ_OP_NE); + int ret = DelNEPub_RedisCommand(&ctx, redisStrVec, 5); CHECK_EQUAL(ret, REDISMODULE_OK); mock().checkExpectations(); CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0); @@ -1364,100 +1689,3 @@ TEST(exstring, delnepub_command_nosame_string_reply) delete []redisStrVec; } - -TEST(exstring, nget_command_parameter_number_incorrect) -{ - RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[2]); - redisStrVec[0] = (RedisModuleString *)1; - redisStrVec[1] = (RedisModuleString *)1; - - int ret = NGet_RedisCommand(&ctx, redisStrVec, 3); - CHECK_EQUAL(ret, REDISMODULE_ERR); - - delete []redisStrVec; -} - -TEST(exstring, nget_command_zero_item) -{ - RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[2]); - redisStrVec[0] = (RedisModuleString *)1; - redisStrVec[1] = (RedisModuleString *)1; - - mock().setData("RedisModule_CallReplyLength", 0); - int ret = NGet_RedisCommand(&ctx, redisStrVec, 2); - CHECK_EQUAL(ret, REDISMODULE_OK); - CHECK_EQUAL(mock().getData("KEYS").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1); - - delete []redisStrVec; -} - -TEST(exstring, nget_command_none_zero_items) -{ - RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[2]); - redisStrVec[0] = (RedisModuleString *)1; - redisStrVec[1] = (RedisModuleString *)1; - - mock().setData("RedisModule_CallReplyLength", 3); - int ret = NGet_RedisCommand(&ctx, redisStrVec, 2); - CHECK_EQUAL(ret, REDISMODULE_OK); - CHECK_EQUAL(mock().getData("KEYS").getIntValue(), 1); - CHECK_EQUAL(mock().getData("MGET").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_ReplyWithArray").getIntValue(), 3*2); - CHECK_EQUAL(mock().getData("RedisModule_ReplyWithString").getIntValue(), 3*2); - CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2); - - delete []redisStrVec; -} - -TEST(exstring, ndel_command_parameter_parameter_number_incorrect) -{ - RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[2]); - redisStrVec[0] = (RedisModuleString *)1; - redisStrVec[1] = (RedisModuleString *)1; - - int ret = NDel_RedisCommand(&ctx, redisStrVec, 3); - CHECK_EQUAL(ret, REDISMODULE_ERR); - - delete []redisStrVec; -} - -TEST(exstring, ndel_command_zero_item) -{ - RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[2]); - redisStrVec[0] = (RedisModuleString *)1; - redisStrVec[1] = (RedisModuleString *)1; - - mock().setData("RedisModule_CallReplyLength", 0); - int ret = NDel_RedisCommand(&ctx, redisStrVec, 2); - CHECK_EQUAL(ret, REDISMODULE_OK); - CHECK_EQUAL(mock().getData("KEYS").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0); - CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1); - - delete []redisStrVec; -} - -TEST(exstring, ndel_command_none_zero_items) -{ - RedisModuleCtx ctx; - RedisModuleString ** redisStrVec = new (RedisModuleString*[2]); - redisStrVec[0] = (RedisModuleString *)1; - redisStrVec[1] = (RedisModuleString *)1; - - mock().setData("RedisModule_CallReplyLength", 3); - int ret = NDel_RedisCommand(&ctx, redisStrVec, 2); - CHECK_EQUAL(ret, REDISMODULE_OK); - CHECK_EQUAL(mock().getData("KEYS").getIntValue(), 1); - CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1); - CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2); - - delete []redisStrVec; -}