2 * Copyright (c) 2018-2020 Nokia.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * This source code is part of the near-RT RIC (RAN Intelligent Controller)
19 * platform project (RICP).
24 #include "exstringsStub.h"
25 #include "redismodule.h"
28 #include "CppUTest/TestHarness.h"
29 #include "CppUTestExt/MockSupport.h"
32 #define OBJ_OP_XX (1<<1) /* OP if key exist */
33 #define OBJ_OP_NX (1<<2) /* OP if key not exist */
34 #define OBJ_OP_IE (1<<4) /* OP if equal old value */
35 #define OBJ_OP_NE (1<<5) /* OP if not equal old value */
37 typedef struct RedisModuleBlockedClientArgs {
38 RedisModuleBlockedClient *bc;
39 RedisModuleString **argv;
41 } RedisModuleBlockedClientArgs;
49 mock().ignoreOtherCalls();
60 TEST(exstring, OnLoad)
63 int ret = RedisModule_OnLoad(&ctx, 0, 0);
70 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
72 redisStrVec[0] = (RedisModuleString *)1;
73 redisStrVec[1] = (RedisModuleString *)1;
74 redisStrVec[2] = (RedisModuleString *)1;
75 redisStrVec[3] = (RedisModuleString *)1;
77 mock().setData("RedisModule_OpenKey_have", 1);
78 mock().setData("RedisModule_KeyType_str", 1);
79 mock().setData("RedisModule_String_same", 1);
80 mock().setData("RedisModule_CallReplyType_null", 1);
82 int ret = SetIE_RedisCommand(&ctx, redisStrVec, 4);
84 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
91 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
93 redisStrVec[0] = (RedisModuleString *)1;
94 redisStrVec[1] = (RedisModuleString *)1;
95 redisStrVec[2] = (RedisModuleString *)1;
96 redisStrVec[3] = (RedisModuleString *)1;
98 mock().setData("RedisModule_OpenKey_have", 1);
99 mock().setData("RedisModule_KeyType_str", 1);
100 mock().setData("RedisModule_String_same", 1);
101 int ret = SetNE_RedisCommand(&ctx,redisStrVec, 4);
103 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
104 delete []redisStrVec;
107 TEST(exstring, command_parameter_number_incorrect)
110 int ret = setStringGenericCommand(&ctx, 0, 3, OBJ_OP_IE);
115 TEST(exstring, setie_command_no_key)
118 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
120 redisStrVec[0] = (RedisModuleString *)1;
121 redisStrVec[1] = (RedisModuleString *)1;
122 redisStrVec[2] = (RedisModuleString *)1;
123 redisStrVec[3] = (RedisModuleString *)1;
124 mock().setData("RedisModule_OpenKey_no", 1);
126 int ret = setStringGenericCommand(&ctx, redisStrVec, 4, OBJ_OP_IE);
128 delete []redisStrVec;
133 TEST(exstring, setie_command_has_key_set)
136 //RedisModuleString str;
137 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
139 redisStrVec[0] = (RedisModuleString *)1;
140 redisStrVec[1] = (RedisModuleString *)1;
141 redisStrVec[2] = (RedisModuleString *)1;
142 redisStrVec[3] = (RedisModuleString *)1;
144 mock().setData("RedisModule_OpenKey_have", 1);
145 mock().setData("RedisModule_KeyType_set", 1);
146 int ret = setStringGenericCommand(&ctx, redisStrVec, 4, OBJ_OP_IE);
147 CHECK_EQUAL(ret, REDISMODULE_OK);
148 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
149 delete []redisStrVec;
153 TEST(exstring, setie_command_key_string_nosame)
156 //RedisModuleString str;
157 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
159 redisStrVec[0] = (RedisModuleString *)1;
160 redisStrVec[1] = (RedisModuleString *)1;
161 redisStrVec[2] = (RedisModuleString *)1;
162 redisStrVec[3] = (RedisModuleString *)1;
164 mock().setData("RedisModule_OpenKey_have", 1);
165 mock().setData("RedisModule_KeyType_str", 1);
167 mock().setData("RedisModule_String_nosame", 1);
170 int ret = setStringGenericCommand(&ctx, redisStrVec, 4, OBJ_OP_IE);
172 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
173 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
174 delete []redisStrVec;
178 TEST(exstring, setie_command_key_same_string_reply)
181 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
183 redisStrVec[0] = (RedisModuleString *)1;
184 redisStrVec[1] = (RedisModuleString *)1;
185 redisStrVec[2] = (RedisModuleString *)1;
186 redisStrVec[3] = (RedisModuleString *)1;
188 mock().setData("RedisModule_OpenKey_have", 1);
189 mock().setData("RedisModule_KeyType_str", 1);
190 mock().setData("RedisModule_String_same", 1);
191 mock().setData("RedisModule_CallReplyType_null", 1);
193 int ret = setStringGenericCommand(&ctx, redisStrVec, 4, OBJ_OP_IE);
195 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
196 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
197 delete []redisStrVec;
202 TEST(exstring, setne_command_key_string_same_replrstr)
205 //RedisModuleString str;
206 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
208 redisStrVec[0] = (RedisModuleString *)1;
209 redisStrVec[1] = (RedisModuleString *)1;
210 redisStrVec[2] = (RedisModuleString *)1;
211 redisStrVec[3] = (RedisModuleString *)1;
213 mock().setData("RedisModule_OpenKey_have", 1);
214 mock().setData("RedisModule_KeyType_str", 1);
215 mock().setData("RedisModule_String_same", 1);
216 //mock().setData("RedisModule_CallReplyType_str", 1);
218 int ret = setStringGenericCommand(&ctx, redisStrVec, 4, OBJ_OP_NE);
220 delete []redisStrVec;
224 TEST(exstring, setne_command_setne_key_string_nosame_replrstr)
227 //RedisModuleString str;
228 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
230 redisStrVec[0] = (RedisModuleString *)1;
231 redisStrVec[1] = (RedisModuleString *)1;
232 redisStrVec[2] = (RedisModuleString *)1;
233 redisStrVec[3] = (RedisModuleString *)1;
235 mock().setData("RedisModule_OpenKey_have", 1);
236 mock().setData("RedisModule_KeyType_str", 1);
237 mock().setData("RedisModule_String_nosame", 1);
238 mock().setData("RedisModule_CallReplyType_str", 1);
240 int ret = setStringGenericCommand(&ctx, redisStrVec, 4, OBJ_OP_NE);
242 delete []redisStrVec;
246 TEST(exstring, delie)
249 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
251 redisStrVec[0] = (RedisModuleString *)1;
252 redisStrVec[1] = (RedisModuleString *)1;
253 redisStrVec[2] = (RedisModuleString *)1;
255 mock().setData("RedisModule_OpenKey_have", 1);
256 mock().setData("RedisModule_KeyType_str", 1);
257 mock().setData("RedisModule_String_same", 1);
258 mock().setData("RedisModule_CallReplyType_null", 1);
260 mock().expectOneCall("RedisModule_CloseKey");
261 int ret = DelIE_RedisCommand(&ctx, redisStrVec, 3);
263 mock().checkExpectations();
264 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
265 delete []redisStrVec;
268 TEST(exstring, delne)
271 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
273 redisStrVec[0] = (RedisModuleString *)1;
274 redisStrVec[1] = (RedisModuleString *)1;
275 redisStrVec[2] = (RedisModuleString *)1;
277 mock().setData("RedisModule_OpenKey_have", 1);
278 mock().setData("RedisModule_KeyType_str", 1);
279 mock().setData("RedisModule_String_same", 1);
280 mock().expectOneCall("RedisModule_CloseKey");
281 int ret = DelNE_RedisCommand(&ctx,redisStrVec, 3);
283 mock().checkExpectations();
284 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
285 delete []redisStrVec;
288 TEST(exstring, del_command_parameter_number_incorrect)
292 ret = delStringGenericCommand(&ctx, 0, 2, OBJ_OP_IE);
296 ret = delStringGenericCommand(&ctx, 0, 4, OBJ_OP_NE);
300 TEST(exstring, delie_command_no_key)
303 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
305 redisStrVec[0] = (RedisModuleString *)1;
306 redisStrVec[1] = (RedisModuleString *)1;
307 redisStrVec[2] = (RedisModuleString *)1;
308 mock().setData("RedisModule_OpenKey_no", 1);
310 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_IE);
312 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
313 delete []redisStrVec;
317 TEST(exstring, delie_command_have_key_set)
320 //RedisModuleString str;
321 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
323 redisStrVec[0] = (RedisModuleString *)1;
324 redisStrVec[1] = (RedisModuleString *)1;
325 redisStrVec[2] = (RedisModuleString *)1;
327 mock().setData("RedisModule_OpenKey_have", 1);
328 mock().setData("RedisModule_KeyType_set", 1);
329 mock().expectOneCall("RedisModule_CloseKey");
330 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_IE);
331 CHECK_EQUAL(ret, REDISMODULE_OK);
332 mock().checkExpectations();
333 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
334 delete []redisStrVec;
337 TEST(exstring, delie_command_key_string_nosame)
340 //RedisModuleString str;
341 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
343 redisStrVec[0] = (RedisModuleString *)1;
344 redisStrVec[1] = (RedisModuleString *)1;
345 redisStrVec[2] = (RedisModuleString *)1;
347 mock().setData("RedisModule_OpenKey_have", 1);
348 mock().setData("RedisModule_KeyType_str", 1);
350 mock().setData("RedisModule_String_nosame", 1);
353 mock().expectOneCall("RedisModule_CloseKey");
354 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_IE);
356 mock().checkExpectations();
357 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
358 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
359 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
360 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
361 delete []redisStrVec;
366 TEST(exstring, delie_command_key_same_string_reply)
369 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
371 redisStrVec[0] = (RedisModuleString *)1;
372 redisStrVec[1] = (RedisModuleString *)1;
373 redisStrVec[2] = (RedisModuleString *)1;
375 mock().setData("RedisModule_OpenKey_have", 1);
376 mock().setData("RedisModule_KeyType_str", 1);
377 mock().setData("RedisModule_String_same", 1);
378 mock().setData("RedisModule_CallReplyType_null", 1);
380 mock().expectOneCall("RedisModule_CloseKey");
381 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_IE);
383 mock().checkExpectations();
384 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
385 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
386 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
387 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
388 delete []redisStrVec;
392 TEST(exstring, delne_command_key_string_same_reply)
395 //RedisModuleString str;
396 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
398 redisStrVec[0] = (RedisModuleString *)1;
399 redisStrVec[1] = (RedisModuleString *)1;
400 redisStrVec[2] = (RedisModuleString *)1;
402 mock().setData("RedisModule_OpenKey_have", 1);
403 mock().setData("RedisModule_KeyType_str", 1);
404 mock().setData("RedisModule_String_same", 1);
405 mock().setData("RedisModule_CallReplyType_inter", 1);
407 mock().expectOneCall("RedisModule_CloseKey");
408 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_NE);
410 mock().checkExpectations();
411 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
412 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
413 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
414 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
415 delete []redisStrVec;
419 TEST(exstring, delne_command_key_string_nosame_reply)
422 //RedisModuleString str;
423 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
425 redisStrVec[0] = (RedisModuleString *)1;
426 redisStrVec[1] = (RedisModuleString *)1;
427 redisStrVec[2] = (RedisModuleString *)1;
429 mock().setData("RedisModule_OpenKey_have", 1);
430 mock().setData("RedisModule_KeyType_str", 1);
431 mock().setData("RedisModule_String_nosame", 1);
432 mock().setData("RedisModule_CallReplyType_inter", 1);
434 mock().expectOneCall("RedisModule_CloseKey");
435 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_NE);
437 mock().checkExpectations();
438 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
439 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
440 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
441 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
442 delete []redisStrVec;
446 TEST(exstring, setpub_command_parameter_number_incorrect)
451 ret = SetPub_RedisCommand(&ctx, 0, 2);
452 CHECK_EQUAL(ret, REDISMODULE_ERR);
455 ret = SetPub_RedisCommand(&ctx, 0, 8);
456 CHECK_EQUAL(ret, REDISMODULE_ERR);
459 ret = SetMPub_RedisCommand(&ctx, 0, 2);
460 CHECK_EQUAL(ret, REDISMODULE_ERR);
463 ret = SetMPub_RedisCommand(&ctx, 0, 8);
464 CHECK_EQUAL(ret, REDISMODULE_ERR);
467 ret = SetXXPub_RedisCommand(&ctx, 0, 3);
468 CHECK_EQUAL(ret, REDISMODULE_ERR);
471 ret = SetXXPub_RedisCommand(&ctx, 0, 6);
472 CHECK_EQUAL(ret, REDISMODULE_ERR);
475 ret = SetNXPub_RedisCommand(&ctx, 0, 3);
476 CHECK_EQUAL(ret, REDISMODULE_ERR);
479 ret = SetNXMPub_RedisCommand(&ctx, 0, 3);
480 CHECK_EQUAL(ret, REDISMODULE_ERR);
483 ret = SetNXPub_RedisCommand(&ctx, 0, 6);
484 CHECK_EQUAL(ret, REDISMODULE_ERR);
487 ret = SetIEPub_RedisCommand(&ctx, 0, 4);
488 CHECK_EQUAL(ret, REDISMODULE_ERR);
491 ret = SetIEMPub_RedisCommand(&ctx, 0, 4);
492 CHECK_EQUAL(ret, REDISMODULE_ERR);
495 ret = SetIEPub_RedisCommand(&ctx, 0, 9);
496 CHECK_EQUAL(ret, REDISMODULE_ERR);
499 ret = SetNEPub_RedisCommand(&ctx, 0, 4);
500 CHECK_EQUAL(ret, REDISMODULE_ERR);
503 ret = SetNEPub_RedisCommand(&ctx, 0, 9);
504 CHECK_EQUAL(ret, REDISMODULE_ERR);
507 TEST(exstring, setpub_command_no_key_replystr)
510 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
512 redisStrVec[0] = (RedisModuleString *)0;
513 redisStrVec[1] = (RedisModuleString *)1;
514 redisStrVec[2] = (RedisModuleString *)2;
515 redisStrVec[3] = (RedisModuleString *)3;
516 redisStrVec[4] = (RedisModuleString *)4;
518 mock().setData("RedisModule_KeyType_empty", 1);
519 mock().setData("RedisModule_CallReplyType_str", 1);
521 int ret = SetPub_RedisCommand(&ctx, redisStrVec, 5);
522 CHECK_EQUAL(ret, REDISMODULE_OK);
523 mock().checkExpectations();
524 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
525 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
526 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
527 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
528 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
530 delete []redisStrVec;
534 TEST(exstring, setmpub_command_negative_key_val_count)
537 RedisModuleString ** redisStrVec = new (RedisModuleString*[7]);
539 redisStrVec[0] = (RedisModuleString *)0;
540 redisStrVec[1] = (RedisModuleString *)1;
541 redisStrVec[2] = (RedisModuleString *)2;
542 redisStrVec[3] = (RedisModuleString *)3;
543 redisStrVec[4] = (RedisModuleString *)4;
544 redisStrVec[5] = (RedisModuleString *)5;
545 redisStrVec[6] = (RedisModuleString *)6;
547 mock().setData("RedisModule_KeyType_empty", 1);
548 mock().setData("RedisModule_CallReplyType_str", 1);
549 mock().setData("RedisModule_StringToLongLongCall_1", -1);
550 mock().setData("RedisModule_StringToLongLongCall_2", 1);
552 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7);
553 CHECK_EQUAL(ret, REDISMODULE_OK);
554 mock().checkExpectations();
555 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
556 CHECK_EQUAL(0, mock().getData("MSET").getIntValue());
557 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
558 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
559 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
560 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
562 delete []redisStrVec;
566 TEST(exstring, setmpub_command_negative_chan_msg_count)
569 RedisModuleString ** redisStrVec = new (RedisModuleString*[7]);
571 redisStrVec[0] = (RedisModuleString *)0;
572 redisStrVec[1] = (RedisModuleString *)1;
573 redisStrVec[2] = (RedisModuleString *)2;
574 redisStrVec[3] = (RedisModuleString *)3;
575 redisStrVec[4] = (RedisModuleString *)4;
576 redisStrVec[5] = (RedisModuleString *)5;
577 redisStrVec[6] = (RedisModuleString *)6;
579 mock().setData("RedisModule_KeyType_empty", 1);
580 mock().setData("RedisModule_CallReplyType_str", 1);
581 mock().setData("RedisModule_StringToLongLongCall_1", 1);
582 mock().setData("RedisModule_StringToLongLongCall_2", -1);
584 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7);
585 CHECK_EQUAL(ret, REDISMODULE_OK);
586 mock().checkExpectations();
587 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
588 CHECK_EQUAL(0, mock().getData("MSET").getIntValue());
589 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
590 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
591 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
592 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
594 delete []redisStrVec;
598 TEST(exstring, setmpub_command_invalid_total_count)
601 RedisModuleString ** redisStrVec = new (RedisModuleString*[7]);
603 redisStrVec[0] = (RedisModuleString *)0;
604 redisStrVec[1] = (RedisModuleString *)1;
605 redisStrVec[2] = (RedisModuleString *)2;
606 redisStrVec[3] = (RedisModuleString *)3;
607 redisStrVec[4] = (RedisModuleString *)4;
608 redisStrVec[5] = (RedisModuleString *)5;
609 redisStrVec[6] = (RedisModuleString *)6;
611 mock().setData("RedisModule_KeyType_empty", 1);
612 mock().setData("RedisModule_CallReplyType_str", 1);
613 mock().setData("RedisModule_StringToLongLongCall_1", 100);
614 mock().setData("RedisModule_StringToLongLongCall_2", 100);
616 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7);
617 CHECK_EQUAL(ret, REDISMODULE_OK);
618 mock().checkExpectations();
619 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
620 CHECK_EQUAL(0, mock().getData("MSET").getIntValue());
621 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
622 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
623 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
624 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
626 delete []redisStrVec;
630 TEST(exstring, setmpub_command_set)
633 RedisModuleString ** redisStrVec = new (RedisModuleString*[7]);
635 redisStrVec[0] = (RedisModuleString *)0;
636 redisStrVec[1] = (RedisModuleString *)1;
637 redisStrVec[2] = (RedisModuleString *)2;
638 redisStrVec[3] = (RedisModuleString *)3;
639 redisStrVec[4] = (RedisModuleString *)4;
640 redisStrVec[5] = (RedisModuleString *)5;
641 redisStrVec[6] = (RedisModuleString *)6;
643 mock().setData("RedisModule_KeyType_empty", 1);
644 mock().setData("RedisModule_CallReplyType_str", 1);
645 mock().setData("RedisModule_StringToLongLongCall_1", 1);
646 mock().setData("RedisModule_StringToLongLongCall_2", 1);
648 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7);
649 CHECK_EQUAL(ret, REDISMODULE_OK);
650 mock().checkExpectations();
651 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
652 CHECK_EQUAL(1, mock().getData("MSET").getIntValue());
653 CHECK_EQUAL(1, mock().getData("PUBLISH").getIntValue());
654 CHECK_EQUAL(2, mock().getData("RedisModule_FreeCallReply").getIntValue());
655 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
657 delete []redisStrVec;
661 TEST(exstring, setmpub_command_set_multipub)
664 RedisModuleString ** redisStrVec = new (RedisModuleString*[9]);
666 redisStrVec[0] = (RedisModuleString *)0;
667 redisStrVec[1] = (RedisModuleString *)1;
668 redisStrVec[2] = (RedisModuleString *)2;
669 redisStrVec[3] = (RedisModuleString *)3;
670 redisStrVec[4] = (RedisModuleString *)4;
671 redisStrVec[5] = (RedisModuleString *)5;
672 redisStrVec[6] = (RedisModuleString *)6;
673 redisStrVec[7] = (RedisModuleString *)7;
674 redisStrVec[8] = (RedisModuleString *)8;
676 mock().setData("RedisModule_KeyType_empty", 1);
677 mock().setData("RedisModule_CallReplyType_str", 1);
678 mock().setData("RedisModule_StringToLongLongCall_1", 1);
679 mock().setData("RedisModule_StringToLongLongCall_2", 2);
681 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 9);
682 CHECK_EQUAL(ret, REDISMODULE_OK);
683 mock().checkExpectations();
684 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
685 CHECK_EQUAL(1, mock().getData("MSET").getIntValue());
686 CHECK_EQUAL(2, mock().getData("PUBLISH").getIntValue());
687 CHECK_EQUAL(3, mock().getData("RedisModule_FreeCallReply").getIntValue());
688 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
690 delete []redisStrVec;
694 TEST(exstring, setxxpub_command_has_no_key)
697 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
699 redisStrVec[0] = (RedisModuleString *)0;
700 redisStrVec[1] = (RedisModuleString *)1;
701 redisStrVec[2] = (RedisModuleString *)2;
702 redisStrVec[3] = (RedisModuleString *)3;
703 redisStrVec[4] = (RedisModuleString *)4;
705 mock().setData("RedisModule_KeyType_empty", 1);
706 mock().setData("RedisModule_CallReplyType_null", 1);
708 mock().expectOneCall("RedisModule_CloseKey");
709 int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5);
711 CHECK_EQUAL(ret, REDISMODULE_OK);
712 mock().checkExpectations();
713 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
714 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
715 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
716 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
717 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
718 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
720 delete []redisStrVec;
724 TEST(exstring, setxxpub_command_parameter_has_key_set)
727 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
729 redisStrVec[0] = (RedisModuleString *)0;
730 redisStrVec[1] = (RedisModuleString *)1;
731 redisStrVec[2] = (RedisModuleString *)2;
732 redisStrVec[3] = (RedisModuleString *)3;
733 redisStrVec[4] = (RedisModuleString *)4;
735 mock().setData("RedisModule_KeyType_set", 1);
737 mock().expectOneCall("RedisModule_CloseKey");
738 int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5);
740 CHECK_EQUAL(ret, REDISMODULE_OK);
741 mock().checkExpectations();
742 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
743 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
744 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
745 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
746 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
747 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
749 delete []redisStrVec;
753 TEST(exstring, setxxpub_command_has_key_string)
756 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
758 redisStrVec[0] = (RedisModuleString *)0;
759 redisStrVec[1] = (RedisModuleString *)1;
760 redisStrVec[2] = (RedisModuleString *)2;
761 redisStrVec[3] = (RedisModuleString *)3;
762 redisStrVec[4] = (RedisModuleString *)4;
764 mock().setData("RedisModule_KeyType_str", 1);
765 mock().setData("RedisModule_CallReplyType_str", 1);
767 mock().expectOneCall("RedisModule_CloseKey");
768 int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5);
770 CHECK_EQUAL(ret, REDISMODULE_OK);
771 mock().checkExpectations();
772 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
773 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
774 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
775 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
776 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
777 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
779 delete []redisStrVec;
784 TEST(exstring, setnxpub_command_has_key_string)
787 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
789 redisStrVec[0] = (RedisModuleString *)0;
790 redisStrVec[1] = (RedisModuleString *)1;
791 redisStrVec[2] = (RedisModuleString *)2;
792 redisStrVec[3] = (RedisModuleString *)3;
793 redisStrVec[4] = (RedisModuleString *)4;
795 mock().setData("RedisModule_KeyType_str", 1);
796 mock().setData("RedisModule_CallReplyType_null", 1);
798 mock().expectOneCall("RedisModule_CloseKey");
799 int ret = SetNXPub_RedisCommand(&ctx, redisStrVec, 5);
801 CHECK_EQUAL(ret, REDISMODULE_OK);
802 mock().checkExpectations();
803 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
804 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
805 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
806 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
807 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
808 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
810 delete []redisStrVec;
814 TEST(exstring, setnxpub_command_has_no_key)
817 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
819 redisStrVec[0] = (RedisModuleString *)0;
820 redisStrVec[1] = (RedisModuleString *)1;
821 redisStrVec[2] = (RedisModuleString *)2;
822 redisStrVec[3] = (RedisModuleString *)3;
823 redisStrVec[4] = (RedisModuleString *)4;
825 mock().setData("RedisModule_KeyType_empty", 1);
826 mock().setData("RedisModule_CallReplyType_str", 1);
828 mock().expectOneCall("RedisModule_CloseKey");
829 int ret = SetNXPub_RedisCommand(&ctx, redisStrVec, 5);
831 CHECK_EQUAL(ret, REDISMODULE_OK);
832 mock().checkExpectations();
833 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
834 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
835 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
836 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
837 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
838 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
840 delete []redisStrVec;
846 TEST(exstring, setiepub_command_has_no_key)
849 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
851 redisStrVec[0] = (RedisModuleString *)0;
852 redisStrVec[1] = (RedisModuleString *)1;
853 redisStrVec[2] = (RedisModuleString *)2;
854 redisStrVec[3] = (RedisModuleString *)3;
855 redisStrVec[4] = (RedisModuleString *)4;
856 redisStrVec[5] = (RedisModuleString *)5;
858 mock().setData("RedisModule_KeyType_empty", 1);
859 mock().setData("RedisModule_CallReplyType_str", 1);
861 mock().expectOneCall("RedisModule_CloseKey");
862 int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6);
864 CHECK_EQUAL(ret, REDISMODULE_OK);
865 mock().checkExpectations();
866 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
867 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
868 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
869 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
870 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
871 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
873 delete []redisStrVec;
878 TEST(exstring, setiepub_command_key_string_nosame)
881 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
883 redisStrVec[0] = (RedisModuleString *)0;
884 redisStrVec[1] = (RedisModuleString *)1;
885 redisStrVec[2] = (RedisModuleString *)2;
886 redisStrVec[3] = (RedisModuleString *)3;
887 redisStrVec[4] = (RedisModuleString *)4;
888 redisStrVec[5] = (RedisModuleString *)5;
890 mock().setData("RedisModule_KeyType_str", 1);
891 mock().setData("RedisModule_CallReplyType_str", 1);
892 mock().setData("RedisModule_String_nosame", 1);
894 mock().expectOneCall("RedisModule_CloseKey");
895 int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6);
897 CHECK_EQUAL(ret, REDISMODULE_OK);
898 mock().checkExpectations();
899 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
900 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
901 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
902 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
903 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
904 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
906 delete []redisStrVec;
910 TEST(exstring, setiepub_command_key_same_string_reply)
913 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
915 redisStrVec[0] = (RedisModuleString *)0;
916 redisStrVec[1] = (RedisModuleString *)1;
917 redisStrVec[2] = (RedisModuleString *)2;
918 redisStrVec[3] = (RedisModuleString *)3;
919 redisStrVec[4] = (RedisModuleString *)4;
920 redisStrVec[5] = (RedisModuleString *)5;
922 mock().setData("RedisModule_KeyType_str", 1);
923 mock().setData("RedisModule_String_same", 1);
924 mock().setData("RedisModule_CallReplyType_str", 1);
926 mock().expectOneCall("RedisModule_CloseKey");
927 int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6);
929 CHECK_EQUAL(ret, REDISMODULE_OK);
930 mock().checkExpectations();
931 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
932 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
933 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
934 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
935 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
936 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
938 delete []redisStrVec;
942 TEST(exstring, setnepub_command_has_no_key)
945 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
947 redisStrVec[0] = (RedisModuleString *)0;
948 redisStrVec[1] = (RedisModuleString *)1;
949 redisStrVec[2] = (RedisModuleString *)2;
950 redisStrVec[3] = (RedisModuleString *)3;
951 redisStrVec[4] = (RedisModuleString *)4;
952 redisStrVec[5] = (RedisModuleString *)5;
954 mock().setData("RedisModule_KeyType_empty", 1);
955 mock().setData("RedisModule_CallReplyType_str", 1);
956 mock().setData("RedisModule_String_nosame", 1);
958 mock().expectOneCall("RedisModule_CloseKey");
959 int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6);
961 CHECK_EQUAL(ret, REDISMODULE_OK);
962 mock().checkExpectations();
963 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
964 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
965 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
966 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
967 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
968 CHECK_EQUAL(mock().getData("RedisModule_AutoMemory").getIntValue(),1);
970 delete []redisStrVec;
974 TEST(exstring, setnepub_command_key_string_same_reply)
977 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
979 redisStrVec[0] = (RedisModuleString *)0;
980 redisStrVec[1] = (RedisModuleString *)1;
981 redisStrVec[2] = (RedisModuleString *)2;
982 redisStrVec[3] = (RedisModuleString *)3;
983 redisStrVec[4] = (RedisModuleString *)4;
984 redisStrVec[5] = (RedisModuleString *)5;
986 mock().setData("RedisModule_KeyType_str", 1);
987 mock().setData("RedisModule_String_same", 1);
988 mock().setData("RedisModule_CallReplyType_str", 1);
990 mock().expectOneCall("RedisModule_CloseKey");
991 int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6);
993 CHECK_EQUAL(ret, REDISMODULE_OK);
994 mock().checkExpectations();
995 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
996 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
997 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
998 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
999 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1001 delete []redisStrVec;
1006 TEST(exstring, setnepub_command_key_string_nosame_reply)
1009 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
1011 redisStrVec[0] = (RedisModuleString *)0;
1012 redisStrVec[1] = (RedisModuleString *)1;
1013 redisStrVec[2] = (RedisModuleString *)2;
1014 redisStrVec[3] = (RedisModuleString *)3;
1015 redisStrVec[4] = (RedisModuleString *)4;
1016 redisStrVec[5] = (RedisModuleString *)5;
1018 mock().setData("RedisModule_KeyType_str", 1);
1019 mock().setData("RedisModule_CallReplyType_str", 1);
1020 mock().setData("RedisModule_String_nosame", 1);
1022 mock().expectOneCall("RedisModule_CloseKey");
1023 int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6);
1025 CHECK_EQUAL(ret, REDISMODULE_OK);
1026 mock().checkExpectations();
1027 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1028 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
1029 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1030 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1031 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
1033 delete []redisStrVec;
1037 TEST(exstring, delpub)
1040 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
1042 redisStrVec[0] = (RedisModuleString *)1;
1043 redisStrVec[1] = (RedisModuleString *)1;
1044 redisStrVec[2] = (RedisModuleString *)1;
1045 redisStrVec[3] = (RedisModuleString *)1;
1047 mock().setData("RedisModule_OpenKey_have", 1);
1048 mock().setData("RedisModule_KeyType_str", 1);
1049 mock().setData("RedisModule_String_same", 1);
1050 mock().setData("RedisModule_CallReplyType_null", 1);
1052 int ret = DelPub_RedisCommand(&ctx, redisStrVec, 4);
1053 CHECK_EQUAL(ret, REDISMODULE_OK);
1055 delete []redisStrVec;
1058 TEST(exstring, delmpub)
1061 RedisModuleString ** redisStrVec = new (RedisModuleString*[8]);
1063 redisStrVec[0] = (RedisModuleString *)1;
1064 redisStrVec[1] = (RedisModuleString *)1;
1065 redisStrVec[2] = (RedisModuleString *)1;
1066 redisStrVec[3] = (RedisModuleString *)1;
1067 redisStrVec[4] = (RedisModuleString *)1;
1068 redisStrVec[5] = (RedisModuleString *)1;
1069 redisStrVec[6] = (RedisModuleString *)1;
1070 redisStrVec[7] = (RedisModuleString *)1;
1072 mock().setData("RedisModule_OpenKey_have", 1);
1073 mock().setData("RedisModule_KeyType_str", 1);
1074 mock().setData("RedisModule_String_same", 1);
1075 mock().setData("RedisModule_CallReplyType_null", 1);
1076 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1077 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1078 mock().setData("RedisModule_StringToLongLongCall_2", 2);
1080 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 8);
1081 CHECK_EQUAL(ret, REDISMODULE_OK);
1083 delete []redisStrVec;
1086 TEST(exstring, deliepub)
1089 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1091 redisStrVec[0] = (RedisModuleString *)1;
1092 redisStrVec[1] = (RedisModuleString *)1;
1093 redisStrVec[2] = (RedisModuleString *)1;
1094 redisStrVec[3] = (RedisModuleString *)1;
1095 redisStrVec[4] = (RedisModuleString *)1;
1097 mock().setData("RedisModule_OpenKey_have", 1);
1098 mock().setData("RedisModule_KeyType_str", 1);
1099 mock().setData("RedisModule_String_same", 1);
1100 mock().setData("RedisModule_CallReplyType_null", 1);
1102 mock().expectOneCall("RedisModule_CloseKey");
1103 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1104 CHECK_EQUAL(ret, REDISMODULE_OK);
1105 mock().checkExpectations();
1106 delete []redisStrVec;
1109 TEST(exstring, deliempub)
1112 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1114 redisStrVec[0] = (RedisModuleString *)1;
1115 redisStrVec[1] = (RedisModuleString *)1;
1116 redisStrVec[2] = (RedisModuleString *)1;
1117 redisStrVec[3] = (RedisModuleString *)1;
1118 redisStrVec[4] = (RedisModuleString *)1;
1120 mock().setData("RedisModule_OpenKey_have", 1);
1121 mock().setData("RedisModule_KeyType_str", 1);
1122 mock().setData("RedisModule_String_same", 1);
1123 mock().setData("RedisModule_CallReplyType_null", 1);
1125 mock().expectOneCall("RedisModule_CloseKey");
1126 int ret = DelIEMPub_RedisCommand(&ctx, redisStrVec, 5);
1127 CHECK_EQUAL(ret, REDISMODULE_OK);
1128 mock().checkExpectations();
1129 delete []redisStrVec;
1132 TEST(exstring, delnepub)
1135 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1137 redisStrVec[0] = (RedisModuleString *)1;
1138 redisStrVec[1] = (RedisModuleString *)1;
1139 redisStrVec[2] = (RedisModuleString *)1;
1140 redisStrVec[3] = (RedisModuleString *)1;
1141 redisStrVec[4] = (RedisModuleString *)1;
1143 mock().setData("RedisModule_OpenKey_have", 1);
1144 mock().setData("RedisModule_KeyType_str", 1);
1145 mock().setData("RedisModule_String_same", 1);
1146 mock().setData("RedisModule_CallReplyType_null", 1);
1148 mock().expectOneCall("RedisModule_CloseKey");
1149 int ret = DelNEPub_RedisCommand(&ctx, redisStrVec, 5);
1150 CHECK_EQUAL(ret, REDISMODULE_OK);
1151 mock().checkExpectations();
1152 delete []redisStrVec;
1155 TEST(exstring, delpub_command_parameter_number_incorrect)
1159 ret = DelPub_RedisCommand(&ctx, 0, 2);
1160 CHECK_EQUAL(ret, REDISMODULE_ERR);
1163 ret = DelMPub_RedisCommand(&ctx, 0, 5);
1164 CHECK_EQUAL(ret, REDISMODULE_ERR);
1167 ret = DelIEPub_RedisCommand(&ctx, 0, 4);
1168 CHECK_EQUAL(ret, REDISMODULE_ERR);
1171 ret = DelIEMPub_RedisCommand(&ctx, 0, 4);
1172 CHECK_EQUAL(ret, REDISMODULE_ERR);
1175 ret = DelNEPub_RedisCommand(&ctx, 0, 8);
1176 CHECK_EQUAL(ret, REDISMODULE_ERR);
1179 TEST(exstring, delpub_command_reply_null)
1182 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1184 redisStrVec[0] = (RedisModuleString *)1;
1185 redisStrVec[1] = (RedisModuleString *)1;
1186 redisStrVec[2] = (RedisModuleString *)1;
1187 redisStrVec[3] = (RedisModuleString *)1;
1188 redisStrVec[4] = (RedisModuleString *)1;
1189 mock().setData("RedisModule_CallReplyInteger", 0);
1190 mock().setData("RedisModule_CallReplyType_inter", 1);
1191 mock().setData("RedisModule_Call_Return_Null", 0);
1193 int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5);
1194 CHECK_EQUAL(ret, 0);
1195 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1196 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1197 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1198 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 0);
1199 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1200 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
1201 delete []redisStrVec;
1205 TEST(exstring, delpub_command_reply_error)
1208 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1210 redisStrVec[0] = (RedisModuleString *)1;
1211 redisStrVec[1] = (RedisModuleString *)1;
1212 redisStrVec[2] = (RedisModuleString *)1;
1213 redisStrVec[3] = (RedisModuleString *)1;
1214 redisStrVec[4] = (RedisModuleString *)1;
1215 mock().setData("RedisModule_CallReplyInteger", 0);
1216 mock().setData("RedisModule_CallReplyType_err", 1);
1218 int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5);
1219 CHECK_EQUAL(ret, REDISMODULE_OK);
1220 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1221 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1222 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1223 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1224 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1225 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1226 delete []redisStrVec;
1230 TEST(exstring, delpub_command_has_no_key)
1233 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1235 redisStrVec[0] = (RedisModuleString *)1;
1236 redisStrVec[1] = (RedisModuleString *)1;
1237 redisStrVec[2] = (RedisModuleString *)1;
1238 redisStrVec[3] = (RedisModuleString *)1;
1239 redisStrVec[4] = (RedisModuleString *)1;
1240 mock().setData("RedisModule_CallReplyInteger", 0);
1241 mock().setData("RedisModule_CallReplyType_inter", 1);
1243 int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5);
1244 CHECK_EQUAL(ret, 0);
1245 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1246 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1247 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1248 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1249 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1250 delete []redisStrVec;
1254 TEST(exstring, delmpub_command_reply_null)
1257 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1259 redisStrVec[0] = (RedisModuleString *)1;
1260 redisStrVec[1] = (RedisModuleString *)1;
1261 redisStrVec[2] = (RedisModuleString *)1;
1262 redisStrVec[3] = (RedisModuleString *)1;
1263 redisStrVec[4] = (RedisModuleString *)1;
1264 redisStrVec[5] = (RedisModuleString *)1;
1266 mock().setData("RedisModule_Call_Return_Null", 1);
1267 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1268 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1269 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1271 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1272 CHECK_EQUAL(ret, 0);
1273 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1274 CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue());
1275 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
1276 CHECK_EQUAL(0, mock().getData("RedisModule_ReplyWithCallReply").getIntValue());
1277 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
1278 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
1279 delete []redisStrVec;
1283 TEST(exstring, delmpub_command_reply_error)
1286 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1288 redisStrVec[0] = (RedisModuleString *)1;
1289 redisStrVec[1] = (RedisModuleString *)1;
1290 redisStrVec[2] = (RedisModuleString *)1;
1291 redisStrVec[3] = (RedisModuleString *)1;
1292 redisStrVec[4] = (RedisModuleString *)1;
1293 redisStrVec[4] = (RedisModuleString *)1;
1295 mock().setData("RedisModule_CallReplyInteger", 0);
1296 mock().setData("RedisModule_CallReplyType_err", 1);
1297 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1298 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1299 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1301 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1302 CHECK_EQUAL(ret, REDISMODULE_OK);
1303 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1304 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1305 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1306 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1307 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1308 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1309 delete []redisStrVec;
1313 TEST(exstring, delmpub_command_has_no_key)
1316 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1318 redisStrVec[0] = (RedisModuleString *)1;
1319 redisStrVec[1] = (RedisModuleString *)1;
1320 redisStrVec[2] = (RedisModuleString *)1;
1321 redisStrVec[3] = (RedisModuleString *)1;
1322 redisStrVec[4] = (RedisModuleString *)1;
1323 redisStrVec[5] = (RedisModuleString *)1;
1325 mock().setData("RedisModule_CallReplyInteger", 0);
1326 mock().setData("RedisModule_CallReplyType_inter", 1);
1327 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1328 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1329 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1331 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1332 CHECK_EQUAL(ret, 0);
1333 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1334 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1335 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1336 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1337 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1338 delete []redisStrVec;
1342 TEST(exstring, delmpub_command_key_deleted)
1345 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1347 redisStrVec[0] = (RedisModuleString *)1;
1348 redisStrVec[1] = (RedisModuleString *)1;
1349 redisStrVec[2] = (RedisModuleString *)1;
1350 redisStrVec[3] = (RedisModuleString *)1;
1351 redisStrVec[4] = (RedisModuleString *)1;
1352 redisStrVec[5] = (RedisModuleString *)1;
1354 mock().setData("RedisModule_CallReplyInteger", 1);
1355 mock().setData("RedisModule_CallReplyType_inter", 1);
1356 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1357 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1358 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1360 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1361 CHECK_EQUAL(ret, 0);
1362 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1363 CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue());
1364 CHECK_EQUAL(1, mock().getData("PUBLISH").getIntValue());
1365 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithCallReply").getIntValue());
1366 CHECK_EQUAL(2, mock().getData("RedisModule_FreeCallReply").getIntValue());
1367 delete []redisStrVec;
1371 TEST(exstring, delmpub_command_key_deleted_multi_pub)
1374 RedisModuleString **redisStrVec = new (RedisModuleString*[10]);
1376 redisStrVec[0] = (RedisModuleString *)1;
1377 redisStrVec[1] = (RedisModuleString *)1;
1378 redisStrVec[2] = (RedisModuleString *)1;
1379 redisStrVec[3] = (RedisModuleString *)1;
1380 redisStrVec[4] = (RedisModuleString *)1;
1381 redisStrVec[5] = (RedisModuleString *)1;
1382 redisStrVec[6] = (RedisModuleString *)1;
1383 redisStrVec[7] = (RedisModuleString *)1;
1384 redisStrVec[8] = (RedisModuleString *)1;
1385 redisStrVec[9] = (RedisModuleString *)1;
1387 mock().setData("RedisModule_CallReplyInteger", 1);
1388 mock().setData("RedisModule_CallReplyType_inter", 1);
1389 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1390 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1391 mock().setData("RedisModule_StringToLongLongCall_2", 3);
1393 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 10);
1394 CHECK_EQUAL(0, ret);
1395 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1396 CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue());
1397 CHECK_EQUAL(3, mock().getData("PUBLISH").getIntValue());
1398 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithCallReply").getIntValue());
1399 CHECK_EQUAL(4, mock().getData("RedisModule_FreeCallReply").getIntValue());
1400 delete []redisStrVec;
1404 TEST(exstring, delmpub_command_negative_del_count)
1407 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1409 redisStrVec[0] = (RedisModuleString *)1;
1410 redisStrVec[1] = (RedisModuleString *)1;
1411 redisStrVec[2] = (RedisModuleString *)1;
1412 redisStrVec[3] = (RedisModuleString *)1;
1413 redisStrVec[4] = (RedisModuleString *)1;
1414 redisStrVec[5] = (RedisModuleString *)1;
1416 mock().setData("RedisModule_CallReplyInteger", 1);
1417 mock().setData("RedisModule_CallReplyType_inter", 1);
1418 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1419 mock().setData("RedisModule_StringToLongLongCall_1", -1);
1420 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1422 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1423 CHECK_EQUAL(0, ret);
1424 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1425 CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue());
1426 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
1427 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
1428 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
1429 delete []redisStrVec;
1433 TEST(exstring, delmpub_command_negative_chan_msg_count)
1436 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1438 redisStrVec[0] = (RedisModuleString *)1;
1439 redisStrVec[1] = (RedisModuleString *)1;
1440 redisStrVec[2] = (RedisModuleString *)1;
1441 redisStrVec[3] = (RedisModuleString *)1;
1442 redisStrVec[4] = (RedisModuleString *)1;
1443 redisStrVec[5] = (RedisModuleString *)1;
1445 mock().setData("RedisModule_CallReplyInteger", 1);
1446 mock().setData("RedisModule_CallReplyType_inter", 1);
1447 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1448 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1449 mock().setData("RedisModule_StringToLongLongCall_2", -1);
1451 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1452 CHECK_EQUAL(0, ret);
1453 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1454 CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue());
1455 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
1456 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
1457 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
1458 delete []redisStrVec;
1462 TEST(exstring, delmpub_command_invalid_total_count)
1465 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1467 redisStrVec[0] = (RedisModuleString *)1;
1468 redisStrVec[1] = (RedisModuleString *)1;
1469 redisStrVec[2] = (RedisModuleString *)1;
1470 redisStrVec[3] = (RedisModuleString *)1;
1471 redisStrVec[4] = (RedisModuleString *)1;
1472 redisStrVec[5] = (RedisModuleString *)1;
1474 mock().setData("RedisModule_CallReplyInteger", 1);
1475 mock().setData("RedisModule_CallReplyType_inter", 1);
1476 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1477 mock().setData("RedisModule_StringToLongLongCall_1", 100);
1478 mock().setData("RedisModule_StringToLongLongCall_2", 100);
1480 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1481 CHECK_EQUAL(0, ret);
1482 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1483 CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue());
1484 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
1485 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
1486 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
1487 delete []redisStrVec;
1491 TEST(exstring, deliepub_command_has_no_key)
1494 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1496 redisStrVec[0] = (RedisModuleString *)1;
1497 redisStrVec[1] = (RedisModuleString *)1;
1498 redisStrVec[2] = (RedisModuleString *)1;
1499 redisStrVec[3] = (RedisModuleString *)1;
1500 redisStrVec[4] = (RedisModuleString *)1;
1501 mock().setData("RedisModule_KeyType_empty", 1);
1503 mock().expectOneCall("RedisModule_CloseKey");
1504 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1505 CHECK_EQUAL(ret, 0);
1506 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
1507 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1508 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
1509 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1510 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1511 delete []redisStrVec;
1515 TEST(exstring, deliepub_command_has_key_set)
1518 //RedisModuleString str;
1519 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1521 redisStrVec[0] = (RedisModuleString *)1;
1522 redisStrVec[1] = (RedisModuleString *)1;
1523 redisStrVec[2] = (RedisModuleString *)1;
1524 redisStrVec[3] = (RedisModuleString *)1;
1525 redisStrVec[4] = (RedisModuleString *)1;
1527 mock().setData("RedisModule_OpenKey_have", 1);
1528 mock().setData("RedisModule_KeyType_set", 1);
1529 mock().expectOneCall("RedisModule_CloseKey");
1530 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1531 CHECK_EQUAL(ret, REDISMODULE_OK);
1532 mock().checkExpectations();
1533 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
1534 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1535 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
1536 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1537 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1539 delete []redisStrVec;
1542 TEST(exstring, deliepub_command_key_string_nosame)
1545 //RedisModuleString str;
1546 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1548 redisStrVec[0] = (RedisModuleString *)1;
1549 redisStrVec[1] = (RedisModuleString *)1;
1550 redisStrVec[2] = (RedisModuleString *)1;
1551 redisStrVec[3] = (RedisModuleString *)1;
1552 redisStrVec[4] = (RedisModuleString *)1;
1554 mock().setData("RedisModule_OpenKey_have", 1);
1555 mock().setData("RedisModule_KeyType_str", 1);
1556 mock().setData("RedisModule_String_nosame", 1);
1557 mock().expectOneCall("RedisModule_CloseKey");
1558 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1559 CHECK_EQUAL(ret, REDISMODULE_OK);
1560 mock().checkExpectations();
1561 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1562 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1563 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
1564 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1565 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
1566 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1568 delete []redisStrVec;
1571 TEST(exstring, deliepub_command_same_string_replynull)
1574 //RedisModuleString str;
1575 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1577 redisStrVec[0] = (RedisModuleString *)1;
1578 redisStrVec[1] = (RedisModuleString *)1;
1579 redisStrVec[2] = (RedisModuleString *)1;
1580 redisStrVec[3] = (RedisModuleString *)1;
1581 redisStrVec[4] = (RedisModuleString *)1;
1583 mock().setData("RedisModule_OpenKey_have", 1);
1584 mock().setData("RedisModule_KeyType_str", 1);
1585 mock().setData("RedisModule_String_same", 1);
1586 mock().setData("RedisModule_CallReplyType_null", 1);
1587 mock().expectOneCall("RedisModule_CloseKey");
1588 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1589 CHECK_EQUAL(ret, REDISMODULE_OK);
1590 mock().checkExpectations();
1591 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1592 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1593 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1594 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1595 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
1596 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
1598 delete []redisStrVec;
1601 TEST(exstring, deliepub_command_same_string_reply)
1604 //RedisModuleString str;
1605 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1607 redisStrVec[0] = (RedisModuleString *)1;
1608 redisStrVec[1] = (RedisModuleString *)1;
1609 redisStrVec[2] = (RedisModuleString *)1;
1610 redisStrVec[3] = (RedisModuleString *)1;
1611 redisStrVec[4] = (RedisModuleString *)1;
1613 mock().setData("RedisModule_OpenKey_have", 1);
1614 mock().setData("RedisModule_KeyType_str", 1);
1615 mock().setData("RedisModule_String_same", 1);
1616 mock().setData("RedisModule_CallReplyType_str", 1);
1617 mock().setData("RedisModule_CallReplyInteger", 1);
1618 mock().expectOneCall("RedisModule_CloseKey");
1619 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1620 CHECK_EQUAL(ret, REDISMODULE_OK);
1621 mock().checkExpectations();
1622 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1623 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1624 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1625 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1626 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1627 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
1629 delete []redisStrVec;
1632 TEST(exstring, delnepub_command_same_string_reply)
1635 //RedisModuleString str;
1636 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1638 redisStrVec[0] = (RedisModuleString *)1;
1639 redisStrVec[1] = (RedisModuleString *)1;
1640 redisStrVec[2] = (RedisModuleString *)1;
1641 redisStrVec[3] = (RedisModuleString *)1;
1642 redisStrVec[4] = (RedisModuleString *)1;
1644 mock().setData("RedisModule_OpenKey_have", 1);
1645 mock().setData("RedisModule_KeyType_str", 1);
1646 mock().setData("RedisModule_String_same", 1);
1647 mock().setData("RedisModule_CallReplyType_str", 1);
1648 mock().expectOneCall("RedisModule_CloseKey");
1649 int ret = DelNEPub_RedisCommand(&ctx, redisStrVec, 5);
1650 CHECK_EQUAL(ret, REDISMODULE_OK);
1651 mock().checkExpectations();
1652 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1653 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1654 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
1655 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1656 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
1657 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1659 delete []redisStrVec;
1662 TEST(exstring, delnepub_command_nosame_string_reply)
1665 //RedisModuleString str;
1666 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1668 redisStrVec[0] = (RedisModuleString *)1;
1669 redisStrVec[1] = (RedisModuleString *)1;
1670 redisStrVec[2] = (RedisModuleString *)1;
1671 redisStrVec[3] = (RedisModuleString *)1;
1672 redisStrVec[4] = (RedisModuleString *)1;
1674 mock().setData("RedisModule_OpenKey_have", 1);
1675 mock().setData("RedisModule_KeyType_str", 1);
1676 mock().setData("RedisModule_String_nosame", 1);
1677 mock().setData("RedisModule_CallReplyType_str", 1);
1678 mock().setData("RedisModule_CallReplyInteger", 1);
1679 mock().expectOneCall("RedisModule_CloseKey");
1680 int ret = DelNEPub_RedisCommand(&ctx, redisStrVec, 5);
1681 CHECK_EQUAL(ret, REDISMODULE_OK);
1682 mock().checkExpectations();
1683 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1684 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1685 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1686 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1687 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1688 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
1690 delete []redisStrVec;