2 * Copyright (c) 2018-2019 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.
31 #include "exstringsStub.h"
32 #include "redismodule.h"
35 #include "CppUTest/TestHarness.h"
36 #include "CppUTestExt/MockSupport.h"
39 #define OBJ_OP_XX (1<<1) /* OP if key exist */
40 #define OBJ_OP_NX (1<<2) /* OP if key not exist */
41 #define OBJ_OP_IE (1<<4) /* OP if equal old value */
42 #define OBJ_OP_NE (1<<5) /* OP if not equal old value */
51 mock().ignoreOtherCalls();
62 TEST(exstring, OnLoad)
65 int ret = RedisModule_OnLoad(&ctx, 0, 0);
72 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
74 redisStrVec[0] = (RedisModuleString *)1;
75 redisStrVec[1] = (RedisModuleString *)1;
76 redisStrVec[2] = (RedisModuleString *)1;
77 redisStrVec[3] = (RedisModuleString *)1;
79 mock().setData("RedisModule_OpenKey_have", 1);
80 mock().setData("RedisModule_KeyType_str", 1);
81 mock().setData("RedisModule_String_same", 1);
82 mock().setData("RedisModule_CallReplyType_null", 1);
84 int ret = SetIE_RedisCommand(&ctx, redisStrVec, 4);
92 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
94 redisStrVec[0] = (RedisModuleString *)1;
95 redisStrVec[1] = (RedisModuleString *)1;
96 redisStrVec[2] = (RedisModuleString *)1;
97 redisStrVec[3] = (RedisModuleString *)1;
99 mock().setData("RedisModule_OpenKey_have", 1);
100 mock().setData("RedisModule_KeyType_str", 1);
101 mock().setData("RedisModule_String_same", 1);
102 int ret = SetNE_RedisCommand(&ctx,redisStrVec, 4);
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 delete []redisStrVec;
267 TEST(exstring, delne)
270 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
272 redisStrVec[0] = (RedisModuleString *)1;
273 redisStrVec[1] = (RedisModuleString *)1;
274 redisStrVec[2] = (RedisModuleString *)1;
276 mock().setData("RedisModule_OpenKey_have", 1);
277 mock().setData("RedisModule_KeyType_str", 1);
278 mock().setData("RedisModule_String_same", 1);
279 mock().expectOneCall("RedisModule_CloseKey");
280 int ret = DelNE_RedisCommand(&ctx,redisStrVec, 3);
282 mock().checkExpectations();
283 delete []redisStrVec;
286 TEST(exstring, del_command_parameter_number_incorrect)
290 ret = delStringGenericCommand(&ctx, 0, 2, OBJ_OP_IE);
294 ret = delStringGenericCommand(&ctx, 0, 4, OBJ_OP_NE);
298 TEST(exstring, delie_command_no_key)
301 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
303 redisStrVec[0] = (RedisModuleString *)1;
304 redisStrVec[1] = (RedisModuleString *)1;
305 redisStrVec[2] = (RedisModuleString *)1;
306 mock().setData("RedisModule_OpenKey_no", 1);
308 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_IE);
310 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
311 delete []redisStrVec;
315 TEST(exstring, delie_command_have_key_set)
318 //RedisModuleString str;
319 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
321 redisStrVec[0] = (RedisModuleString *)1;
322 redisStrVec[1] = (RedisModuleString *)1;
323 redisStrVec[2] = (RedisModuleString *)1;
325 mock().setData("RedisModule_OpenKey_have", 1);
326 mock().setData("RedisModule_KeyType_set", 1);
327 mock().expectOneCall("RedisModule_CloseKey");
328 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_IE);
329 CHECK_EQUAL(ret, REDISMODULE_OK);
330 mock().checkExpectations();
331 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
332 delete []redisStrVec;
335 TEST(exstring, delie_command_key_string_nosame)
338 //RedisModuleString str;
339 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
341 redisStrVec[0] = (RedisModuleString *)1;
342 redisStrVec[1] = (RedisModuleString *)1;
343 redisStrVec[2] = (RedisModuleString *)1;
345 mock().setData("RedisModule_OpenKey_have", 1);
346 mock().setData("RedisModule_KeyType_str", 1);
348 mock().setData("RedisModule_String_nosame", 1);
351 mock().expectOneCall("RedisModule_CloseKey");
352 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_IE);
354 mock().checkExpectations();
355 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
356 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
357 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
358 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
359 delete []redisStrVec;
364 TEST(exstring, delie_command_key_same_string_reply)
367 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
369 redisStrVec[0] = (RedisModuleString *)1;
370 redisStrVec[1] = (RedisModuleString *)1;
371 redisStrVec[2] = (RedisModuleString *)1;
373 mock().setData("RedisModule_OpenKey_have", 1);
374 mock().setData("RedisModule_KeyType_str", 1);
375 mock().setData("RedisModule_String_same", 1);
376 mock().setData("RedisModule_CallReplyType_null", 1);
378 mock().expectOneCall("RedisModule_CloseKey");
379 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_IE);
381 mock().checkExpectations();
382 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
383 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
384 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
385 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
386 delete []redisStrVec;
390 TEST(exstring, delne_command_key_string_same_reply)
393 //RedisModuleString str;
394 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
396 redisStrVec[0] = (RedisModuleString *)1;
397 redisStrVec[1] = (RedisModuleString *)1;
398 redisStrVec[2] = (RedisModuleString *)1;
400 mock().setData("RedisModule_OpenKey_have", 1);
401 mock().setData("RedisModule_KeyType_str", 1);
402 mock().setData("RedisModule_String_same", 1);
403 mock().setData("RedisModule_CallReplyType_inter", 1);
405 mock().expectOneCall("RedisModule_CloseKey");
406 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_NE);
408 mock().checkExpectations();
409 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
410 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
411 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
412 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
413 delete []redisStrVec;
417 TEST(exstring, delne_command_key_string_nosame_reply)
420 //RedisModuleString str;
421 RedisModuleString ** redisStrVec = new (RedisModuleString*[3]);
423 redisStrVec[0] = (RedisModuleString *)1;
424 redisStrVec[1] = (RedisModuleString *)1;
425 redisStrVec[2] = (RedisModuleString *)1;
427 mock().setData("RedisModule_OpenKey_have", 1);
428 mock().setData("RedisModule_KeyType_str", 1);
429 mock().setData("RedisModule_String_nosame", 1);
430 mock().setData("RedisModule_CallReplyType_inter", 1);
432 mock().expectOneCall("RedisModule_CloseKey");
433 int ret = delStringGenericCommand(&ctx, redisStrVec, 3, OBJ_OP_NE);
435 mock().checkExpectations();
436 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
437 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
438 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
439 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
440 delete []redisStrVec;
444 TEST(exstring, setpub)
447 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
449 redisStrVec[0] = (RedisModuleString *)1;
450 redisStrVec[1] = (RedisModuleString *)1;
451 redisStrVec[2] = (RedisModuleString *)1;
452 redisStrVec[3] = (RedisModuleString *)1;
453 redisStrVec[4] = (RedisModuleString *)1;
455 mock().setData("RedisModule_OpenKey_have", 1);
456 mock().setData("RedisModule_KeyType_str", 1);
457 mock().setData("RedisModule_String_same", 1);
458 mock().setData("RedisModule_CallReplyType_null", 1);
460 int ret = SetPub_RedisCommand(&ctx, redisStrVec, 5);
461 CHECK_EQUAL(ret, REDISMODULE_OK);
462 mock().checkExpectations();
463 delete []redisStrVec;
466 TEST(exstring, setmpub)
469 RedisModuleString ** redisStrVec = new (RedisModuleString*[11]);
471 for (int i = 0 ; i < 11 ; ++i)
472 redisStrVec[i] = (RedisModuleString *)1;
474 mock().setData("RedisModule_OpenKey_have", 1);
475 mock().setData("RedisModule_KeyType_str", 1);
476 mock().setData("RedisModule_String_same", 1);
477 mock().setData("RedisModule_CallReplyType_null", 1);
478 mock().setData("RedisModule_StringToLongLongCallCount", 0);
479 mock().setData("RedisModule_StringToLongLongCall_1", 2);
480 mock().setData("RedisModule_StringToLongLongCall_2", 2);
482 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 11);
483 CHECK_EQUAL(ret, REDISMODULE_OK);
484 mock().checkExpectations();
485 delete []redisStrVec;
488 TEST(exstring, setxxpub)
491 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
493 redisStrVec[0] = (RedisModuleString *)1;
494 redisStrVec[1] = (RedisModuleString *)1;
495 redisStrVec[2] = (RedisModuleString *)1;
496 redisStrVec[3] = (RedisModuleString *)1;
497 redisStrVec[4] = (RedisModuleString *)1;
499 mock().setData("RedisModule_OpenKey_have", 1);
500 mock().setData("RedisModule_KeyType_str", 1);
501 mock().setData("RedisModule_String_same", 1);
502 mock().setData("RedisModule_CallReplyType_null", 1);
504 mock().expectOneCall("RedisModule_CloseKey");
505 int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5);
506 CHECK_EQUAL(ret, REDISMODULE_OK);
507 mock().checkExpectations();
508 delete []redisStrVec;
511 TEST(exstring, setnxpub)
514 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
516 redisStrVec[0] = (RedisModuleString *)1;
517 redisStrVec[1] = (RedisModuleString *)1;
518 redisStrVec[2] = (RedisModuleString *)1;
519 redisStrVec[3] = (RedisModuleString *)1;
520 redisStrVec[4] = (RedisModuleString *)1;
522 mock().setData("RedisModule_OpenKey_have", 1);
523 mock().setData("RedisModule_KeyType_str", 1);
524 mock().setData("RedisModule_String_same", 1);
525 mock().setData("RedisModule_CallReplyType_null", 1);
527 mock().expectOneCall("RedisModule_CloseKey");
528 int ret = SetNXPub_RedisCommand(&ctx, redisStrVec, 5);
529 CHECK_EQUAL(ret, REDISMODULE_OK);
530 mock().checkExpectations();
531 delete []redisStrVec;
534 TEST(exstring, setiepub)
537 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
539 redisStrVec[0] = (RedisModuleString *)1;
540 redisStrVec[1] = (RedisModuleString *)1;
541 redisStrVec[2] = (RedisModuleString *)1;
542 redisStrVec[3] = (RedisModuleString *)1;
543 redisStrVec[4] = (RedisModuleString *)1;
544 redisStrVec[5] = (RedisModuleString *)1;
546 mock().setData("RedisModule_OpenKey_have", 1);
547 mock().setData("RedisModule_KeyType_str", 1);
548 mock().setData("RedisModule_String_same", 1);
549 mock().setData("RedisModule_CallReplyType_null", 1);
551 mock().expectOneCall("RedisModule_CloseKey");
552 int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6);
553 CHECK_EQUAL(ret, REDISMODULE_OK);
554 mock().checkExpectations();
555 delete []redisStrVec;
558 TEST(exstring, setnepub)
561 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
563 redisStrVec[0] = (RedisModuleString *)1;
564 redisStrVec[1] = (RedisModuleString *)1;
565 redisStrVec[2] = (RedisModuleString *)1;
566 redisStrVec[3] = (RedisModuleString *)1;
567 redisStrVec[4] = (RedisModuleString *)1;
568 redisStrVec[5] = (RedisModuleString *)1;
570 mock().setData("RedisModule_OpenKey_have", 1);
571 mock().setData("RedisModule_KeyType_str", 1);
572 mock().setData("RedisModule_String_same", 1);
573 mock().setData("RedisModule_CallReplyType_null", 1);
575 mock().expectOneCall("RedisModule_CloseKey");
576 int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6);
577 CHECK_EQUAL(ret, REDISMODULE_OK);
578 mock().checkExpectations();
579 delete []redisStrVec;
582 TEST(exstring, setpub_command_parameter_number_incorrect)
587 ret = SetPub_RedisCommand(&ctx, 0, 2);
588 CHECK_EQUAL(ret, REDISMODULE_ERR);
591 ret = SetPub_RedisCommand(&ctx, 0, 8);
592 CHECK_EQUAL(ret, REDISMODULE_ERR);
595 ret = SetMPub_RedisCommand(&ctx, 0, 2);
596 CHECK_EQUAL(ret, REDISMODULE_ERR);
599 ret = SetMPub_RedisCommand(&ctx, 0, 8);
600 CHECK_EQUAL(ret, REDISMODULE_ERR);
603 ret = SetXXPub_RedisCommand(&ctx, 0, 3);
604 CHECK_EQUAL(ret, REDISMODULE_ERR);
607 ret = SetXXPub_RedisCommand(&ctx, 0, 6);
608 CHECK_EQUAL(ret, REDISMODULE_ERR);
611 ret = SetNXPub_RedisCommand(&ctx, 0, 3);
612 CHECK_EQUAL(ret, REDISMODULE_ERR);
615 ret = SetNXPub_RedisCommand(&ctx, 0, 6);
616 CHECK_EQUAL(ret, REDISMODULE_ERR);
619 ret = SetIEPub_RedisCommand(&ctx, 0, 4);
620 CHECK_EQUAL(ret, REDISMODULE_ERR);
623 ret = SetIEPub_RedisCommand(&ctx, 0, 9);
624 CHECK_EQUAL(ret, REDISMODULE_ERR);
627 ret = SetNEPub_RedisCommand(&ctx, 0, 4);
628 CHECK_EQUAL(ret, REDISMODULE_ERR);
631 ret = SetNEPub_RedisCommand(&ctx, 0, 9);
632 CHECK_EQUAL(ret, REDISMODULE_ERR);
635 TEST(exstring, setpub_command_no_key_replynull)
638 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
640 redisStrVec[0] = (RedisModuleString *)0;
641 redisStrVec[1] = (RedisModuleString *)1;
642 redisStrVec[2] = (RedisModuleString *)2;
643 redisStrVec[3] = (RedisModuleString *)3;
644 redisStrVec[4] = (RedisModuleString *)4;
646 mock().setData("RedisModule_KeyType_empty", 1);
647 mock().setData("RedisModule_CallReplyType_null", 1);
649 int ret = SetPub_RedisCommand(&ctx, redisStrVec, 5);
650 CHECK_EQUAL(ret, REDISMODULE_OK);
651 mock().checkExpectations();
652 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
653 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
654 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
655 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
657 delete []redisStrVec;
661 TEST(exstring, setpub_command_no_key_replystr)
664 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
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;
672 mock().setData("RedisModule_KeyType_empty", 1);
673 mock().setData("RedisModule_CallReplyType_str", 1);
675 int ret = SetPub_RedisCommand(&ctx, redisStrVec, 5);
676 CHECK_EQUAL(ret, REDISMODULE_OK);
677 mock().checkExpectations();
678 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
679 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
680 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
681 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
683 delete []redisStrVec;
687 TEST(exstring, setmpub_command_no_key_replynull)
690 RedisModuleString ** redisStrVec = new (RedisModuleString*[9]);
692 redisStrVec[0] = (RedisModuleString *)0;
693 redisStrVec[1] = (RedisModuleString *)1;
694 redisStrVec[2] = (RedisModuleString *)2;
695 redisStrVec[3] = (RedisModuleString *)3;
696 redisStrVec[4] = (RedisModuleString *)4;
697 redisStrVec[5] = (RedisModuleString *)5;
698 redisStrVec[6] = (RedisModuleString *)6;
699 redisStrVec[7] = (RedisModuleString *)7;
700 redisStrVec[8] = (RedisModuleString *)8;
702 mock().setData("RedisModule_KeyType_empty", 1);
703 mock().setData("RedisModule_CallReplyType_null", 1);
704 mock().setData("RedisModule_StringToLongLongCall_1", 1);
705 mock().setData("RedisModule_StringToLongLongCall_2", 2);
707 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 9);
708 CHECK_EQUAL(ret, REDISMODULE_OK);
709 mock().checkExpectations();
710 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
711 CHECK_EQUAL(1, mock().getData("MSET").getIntValue());
712 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
713 CHECK_EQUAL(1, mock().getData("RedisModule_FreeCallReply").getIntValue());
715 delete []redisStrVec;
719 TEST(exstring, setmpub_command_negative_key_val_count)
722 RedisModuleString ** redisStrVec = new (RedisModuleString*[7]);
724 redisStrVec[0] = (RedisModuleString *)0;
725 redisStrVec[1] = (RedisModuleString *)1;
726 redisStrVec[2] = (RedisModuleString *)2;
727 redisStrVec[3] = (RedisModuleString *)3;
728 redisStrVec[4] = (RedisModuleString *)4;
729 redisStrVec[5] = (RedisModuleString *)5;
730 redisStrVec[6] = (RedisModuleString *)6;
732 mock().setData("RedisModule_KeyType_empty", 1);
733 mock().setData("RedisModule_CallReplyType_str", 1);
734 mock().setData("RedisModule_StringToLongLongCall_1", -1);
735 mock().setData("RedisModule_StringToLongLongCall_2", 1);
737 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7);
738 CHECK_EQUAL(ret, REDISMODULE_OK);
739 mock().checkExpectations();
740 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
741 CHECK_EQUAL(0, mock().getData("MSET").getIntValue());
742 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
743 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
744 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
746 delete []redisStrVec;
750 TEST(exstring, setmpub_command_negative_chan_msg_count)
753 RedisModuleString ** redisStrVec = new (RedisModuleString*[7]);
755 redisStrVec[0] = (RedisModuleString *)0;
756 redisStrVec[1] = (RedisModuleString *)1;
757 redisStrVec[2] = (RedisModuleString *)2;
758 redisStrVec[3] = (RedisModuleString *)3;
759 redisStrVec[4] = (RedisModuleString *)4;
760 redisStrVec[5] = (RedisModuleString *)5;
761 redisStrVec[6] = (RedisModuleString *)6;
763 mock().setData("RedisModule_KeyType_empty", 1);
764 mock().setData("RedisModule_CallReplyType_str", 1);
765 mock().setData("RedisModule_StringToLongLongCall_1", 1);
766 mock().setData("RedisModule_StringToLongLongCall_2", -1);
768 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7);
769 CHECK_EQUAL(ret, REDISMODULE_OK);
770 mock().checkExpectations();
771 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
772 CHECK_EQUAL(0, mock().getData("MSET").getIntValue());
773 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
774 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
775 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
777 delete []redisStrVec;
781 TEST(exstring, setmpub_command_invalid_total_count)
784 RedisModuleString ** redisStrVec = new (RedisModuleString*[7]);
786 redisStrVec[0] = (RedisModuleString *)0;
787 redisStrVec[1] = (RedisModuleString *)1;
788 redisStrVec[2] = (RedisModuleString *)2;
789 redisStrVec[3] = (RedisModuleString *)3;
790 redisStrVec[4] = (RedisModuleString *)4;
791 redisStrVec[5] = (RedisModuleString *)5;
792 redisStrVec[6] = (RedisModuleString *)6;
794 mock().setData("RedisModule_KeyType_empty", 1);
795 mock().setData("RedisModule_CallReplyType_str", 1);
796 mock().setData("RedisModule_StringToLongLongCall_1", 100);
797 mock().setData("RedisModule_StringToLongLongCall_2", 100);
799 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7);
800 CHECK_EQUAL(ret, REDISMODULE_OK);
801 mock().checkExpectations();
802 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
803 CHECK_EQUAL(0, mock().getData("MSET").getIntValue());
804 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
805 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
806 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
808 delete []redisStrVec;
812 TEST(exstring, setmpub_command_set)
815 RedisModuleString ** redisStrVec = new (RedisModuleString*[7]);
817 redisStrVec[0] = (RedisModuleString *)0;
818 redisStrVec[1] = (RedisModuleString *)1;
819 redisStrVec[2] = (RedisModuleString *)2;
820 redisStrVec[3] = (RedisModuleString *)3;
821 redisStrVec[4] = (RedisModuleString *)4;
822 redisStrVec[5] = (RedisModuleString *)5;
823 redisStrVec[6] = (RedisModuleString *)6;
825 mock().setData("RedisModule_KeyType_empty", 1);
826 mock().setData("RedisModule_CallReplyType_str", 1);
827 mock().setData("RedisModule_StringToLongLongCall_1", 1);
828 mock().setData("RedisModule_StringToLongLongCall_2", 1);
830 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 7);
831 CHECK_EQUAL(ret, REDISMODULE_OK);
832 mock().checkExpectations();
833 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
834 CHECK_EQUAL(1, mock().getData("MSET").getIntValue());
835 CHECK_EQUAL(1, mock().getData("PUBLISH").getIntValue());
836 CHECK_EQUAL(2, mock().getData("RedisModule_FreeCallReply").getIntValue());
838 delete []redisStrVec;
842 TEST(exstring, setmpub_command_set_multipub)
845 RedisModuleString ** redisStrVec = new (RedisModuleString*[9]);
847 redisStrVec[0] = (RedisModuleString *)0;
848 redisStrVec[1] = (RedisModuleString *)1;
849 redisStrVec[2] = (RedisModuleString *)2;
850 redisStrVec[3] = (RedisModuleString *)3;
851 redisStrVec[4] = (RedisModuleString *)4;
852 redisStrVec[5] = (RedisModuleString *)5;
853 redisStrVec[6] = (RedisModuleString *)6;
854 redisStrVec[7] = (RedisModuleString *)7;
855 redisStrVec[8] = (RedisModuleString *)8;
857 mock().setData("RedisModule_KeyType_empty", 1);
858 mock().setData("RedisModule_CallReplyType_str", 1);
859 mock().setData("RedisModule_StringToLongLongCall_1", 1);
860 mock().setData("RedisModule_StringToLongLongCall_2", 2);
862 int ret = SetMPub_RedisCommand(&ctx, redisStrVec, 9);
863 CHECK_EQUAL(ret, REDISMODULE_OK);
864 mock().checkExpectations();
865 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
866 CHECK_EQUAL(1, mock().getData("MSET").getIntValue());
867 CHECK_EQUAL(2, mock().getData("PUBLISH").getIntValue());
868 CHECK_EQUAL(3, mock().getData("RedisModule_FreeCallReply").getIntValue());
870 delete []redisStrVec;
874 TEST(exstring, setxxpub_command_has_no_key)
877 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
879 redisStrVec[0] = (RedisModuleString *)0;
880 redisStrVec[1] = (RedisModuleString *)1;
881 redisStrVec[2] = (RedisModuleString *)2;
882 redisStrVec[3] = (RedisModuleString *)3;
883 redisStrVec[4] = (RedisModuleString *)4;
885 mock().setData("RedisModule_KeyType_empty", 1);
886 mock().setData("RedisModule_CallReplyType_null", 1);
888 mock().expectOneCall("RedisModule_CloseKey");
889 int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5);
891 CHECK_EQUAL(ret, REDISMODULE_OK);
892 mock().checkExpectations();
893 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
894 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
895 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
896 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
897 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
899 delete []redisStrVec;
903 TEST(exstring, setxxpub_command_parameter_has_key_set)
906 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
908 redisStrVec[0] = (RedisModuleString *)0;
909 redisStrVec[1] = (RedisModuleString *)1;
910 redisStrVec[2] = (RedisModuleString *)2;
911 redisStrVec[3] = (RedisModuleString *)3;
912 redisStrVec[4] = (RedisModuleString *)4;
914 mock().setData("RedisModule_KeyType_set", 1);
916 mock().expectOneCall("RedisModule_CloseKey");
917 int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5);
919 CHECK_EQUAL(ret, REDISMODULE_OK);
920 mock().checkExpectations();
921 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
922 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
923 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
924 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
925 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
927 delete []redisStrVec;
931 TEST(exstring, setxxpub_command_has_key_string)
934 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
936 redisStrVec[0] = (RedisModuleString *)0;
937 redisStrVec[1] = (RedisModuleString *)1;
938 redisStrVec[2] = (RedisModuleString *)2;
939 redisStrVec[3] = (RedisModuleString *)3;
940 redisStrVec[4] = (RedisModuleString *)4;
942 mock().setData("RedisModule_KeyType_str", 1);
943 mock().setData("RedisModule_CallReplyType_str", 1);
945 mock().expectOneCall("RedisModule_CloseKey");
946 int ret = SetXXPub_RedisCommand(&ctx, redisStrVec, 5);
948 CHECK_EQUAL(ret, REDISMODULE_OK);
949 mock().checkExpectations();
950 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
951 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
952 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
953 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
954 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
956 delete []redisStrVec;
961 TEST(exstring, setnxpub_command_has_key_string)
964 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
966 redisStrVec[0] = (RedisModuleString *)0;
967 redisStrVec[1] = (RedisModuleString *)1;
968 redisStrVec[2] = (RedisModuleString *)2;
969 redisStrVec[3] = (RedisModuleString *)3;
970 redisStrVec[4] = (RedisModuleString *)4;
972 mock().setData("RedisModule_KeyType_str", 1);
973 mock().setData("RedisModule_CallReplyType_null", 1);
975 mock().expectOneCall("RedisModule_CloseKey");
976 int ret = SetNXPub_RedisCommand(&ctx, redisStrVec, 5);
978 CHECK_EQUAL(ret, REDISMODULE_OK);
979 mock().checkExpectations();
980 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
981 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
982 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
983 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
984 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
986 delete []redisStrVec;
990 TEST(exstring, setnxpub_command_has_no_key)
993 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
995 redisStrVec[0] = (RedisModuleString *)0;
996 redisStrVec[1] = (RedisModuleString *)1;
997 redisStrVec[2] = (RedisModuleString *)2;
998 redisStrVec[3] = (RedisModuleString *)3;
999 redisStrVec[4] = (RedisModuleString *)4;
1001 mock().setData("RedisModule_KeyType_empty", 1);
1002 mock().setData("RedisModule_CallReplyType_str", 1);
1004 mock().expectOneCall("RedisModule_CloseKey");
1005 int ret = SetNXPub_RedisCommand(&ctx, redisStrVec, 5);
1007 CHECK_EQUAL(ret, REDISMODULE_OK);
1008 mock().checkExpectations();
1009 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1010 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1011 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
1012 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1013 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
1015 delete []redisStrVec;
1021 TEST(exstring, setiepub_command_has_no_key)
1024 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
1026 redisStrVec[0] = (RedisModuleString *)0;
1027 redisStrVec[1] = (RedisModuleString *)1;
1028 redisStrVec[2] = (RedisModuleString *)2;
1029 redisStrVec[3] = (RedisModuleString *)3;
1030 redisStrVec[4] = (RedisModuleString *)4;
1031 redisStrVec[5] = (RedisModuleString *)5;
1033 mock().setData("RedisModule_KeyType_empty", 1);
1034 mock().setData("RedisModule_CallReplyType_str", 1);
1036 mock().expectOneCall("RedisModule_CloseKey");
1037 int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6);
1039 CHECK_EQUAL(ret, REDISMODULE_OK);
1040 mock().checkExpectations();
1041 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
1042 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1043 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
1044 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1045 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1047 delete []redisStrVec;
1052 TEST(exstring, setiepub_command_key_string_nosame)
1055 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
1057 redisStrVec[0] = (RedisModuleString *)0;
1058 redisStrVec[1] = (RedisModuleString *)1;
1059 redisStrVec[2] = (RedisModuleString *)2;
1060 redisStrVec[3] = (RedisModuleString *)3;
1061 redisStrVec[4] = (RedisModuleString *)4;
1062 redisStrVec[5] = (RedisModuleString *)5;
1064 mock().setData("RedisModule_KeyType_str", 1);
1065 mock().setData("RedisModule_CallReplyType_str", 1);
1066 mock().setData("RedisModule_String_nosame", 1);
1068 mock().expectOneCall("RedisModule_CloseKey");
1069 int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6);
1071 CHECK_EQUAL(ret, REDISMODULE_OK);
1072 mock().checkExpectations();
1073 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
1074 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1075 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
1076 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1077 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1079 delete []redisStrVec;
1083 TEST(exstring, setiepub_command_key_same_string_replynull)
1086 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
1088 redisStrVec[0] = (RedisModuleString *)0;
1089 redisStrVec[1] = (RedisModuleString *)1;
1090 redisStrVec[2] = (RedisModuleString *)2;
1091 redisStrVec[3] = (RedisModuleString *)3;
1092 redisStrVec[4] = (RedisModuleString *)4;
1093 redisStrVec[5] = (RedisModuleString *)5;
1095 mock().setData("RedisModule_KeyType_str", 1);
1096 mock().setData("RedisModule_String_same", 1);
1097 mock().setData("RedisModule_CallReplyType_null", 1);
1099 mock().expectOneCall("RedisModule_CloseKey");
1100 int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6);
1102 CHECK_EQUAL(ret, REDISMODULE_OK);
1103 mock().checkExpectations();
1104 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1105 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
1106 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
1107 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1108 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
1110 delete []redisStrVec;
1114 TEST(exstring, setiepub_command_key_same_string_reply)
1117 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
1119 redisStrVec[0] = (RedisModuleString *)0;
1120 redisStrVec[1] = (RedisModuleString *)1;
1121 redisStrVec[2] = (RedisModuleString *)2;
1122 redisStrVec[3] = (RedisModuleString *)3;
1123 redisStrVec[4] = (RedisModuleString *)4;
1124 redisStrVec[5] = (RedisModuleString *)5;
1126 mock().setData("RedisModule_KeyType_str", 1);
1127 mock().setData("RedisModule_String_same", 1);
1128 mock().setData("RedisModule_CallReplyType_str", 1);
1130 mock().expectOneCall("RedisModule_CloseKey");
1131 int ret = SetIEPub_RedisCommand(&ctx, redisStrVec, 6);
1133 CHECK_EQUAL(ret, REDISMODULE_OK);
1134 mock().checkExpectations();
1135 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1136 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
1137 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1138 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1139 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
1141 delete []redisStrVec;
1145 TEST(exstring, setnepub_command_has_no_key)
1148 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
1150 redisStrVec[0] = (RedisModuleString *)0;
1151 redisStrVec[1] = (RedisModuleString *)1;
1152 redisStrVec[2] = (RedisModuleString *)2;
1153 redisStrVec[3] = (RedisModuleString *)3;
1154 redisStrVec[4] = (RedisModuleString *)4;
1155 redisStrVec[5] = (RedisModuleString *)5;
1157 mock().setData("RedisModule_KeyType_empty", 1);
1158 mock().setData("RedisModule_CallReplyType_str", 1);
1159 mock().setData("RedisModule_String_nosame", 1);
1161 mock().expectOneCall("RedisModule_CloseKey");
1162 int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6);
1164 CHECK_EQUAL(ret, REDISMODULE_OK);
1165 mock().checkExpectations();
1166 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1167 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
1168 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1169 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1170 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
1172 delete []redisStrVec;
1176 TEST(exstring, setnepub_command_key_string_same_reply)
1179 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
1181 redisStrVec[0] = (RedisModuleString *)0;
1182 redisStrVec[1] = (RedisModuleString *)1;
1183 redisStrVec[2] = (RedisModuleString *)2;
1184 redisStrVec[3] = (RedisModuleString *)3;
1185 redisStrVec[4] = (RedisModuleString *)4;
1186 redisStrVec[5] = (RedisModuleString *)5;
1188 mock().setData("RedisModule_KeyType_str", 1);
1189 mock().setData("RedisModule_String_same", 1);
1190 mock().setData("RedisModule_CallReplyType_str", 1);
1192 mock().expectOneCall("RedisModule_CloseKey");
1193 int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6);
1195 CHECK_EQUAL(ret, REDISMODULE_OK);
1196 mock().checkExpectations();
1197 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1198 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 0);
1199 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
1200 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1201 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1203 delete []redisStrVec;
1208 TEST(exstring, setnepub_command_key_string_nosame_reply)
1211 RedisModuleString ** redisStrVec = new (RedisModuleString*[6]);
1213 redisStrVec[0] = (RedisModuleString *)0;
1214 redisStrVec[1] = (RedisModuleString *)1;
1215 redisStrVec[2] = (RedisModuleString *)2;
1216 redisStrVec[3] = (RedisModuleString *)3;
1217 redisStrVec[4] = (RedisModuleString *)4;
1218 redisStrVec[5] = (RedisModuleString *)5;
1220 mock().setData("RedisModule_KeyType_str", 1);
1221 mock().setData("RedisModule_CallReplyType_str", 1);
1222 mock().setData("RedisModule_String_nosame", 1);
1224 mock().expectOneCall("RedisModule_CloseKey");
1225 int ret = SetNEPub_RedisCommand(&ctx, redisStrVec, 6);
1227 CHECK_EQUAL(ret, REDISMODULE_OK);
1228 mock().checkExpectations();
1229 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1230 CHECK_EQUAL(mock().getData("MSET").getIntValue(), 1);
1231 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1232 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1233 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
1235 delete []redisStrVec;
1239 TEST(exstring, delpub)
1242 RedisModuleString ** redisStrVec = new (RedisModuleString*[4]);
1244 redisStrVec[0] = (RedisModuleString *)1;
1245 redisStrVec[1] = (RedisModuleString *)1;
1246 redisStrVec[2] = (RedisModuleString *)1;
1247 redisStrVec[3] = (RedisModuleString *)1;
1249 mock().setData("RedisModule_OpenKey_have", 1);
1250 mock().setData("RedisModule_KeyType_str", 1);
1251 mock().setData("RedisModule_String_same", 1);
1252 mock().setData("RedisModule_CallReplyType_null", 1);
1254 int ret = DelPub_RedisCommand(&ctx, redisStrVec, 4);
1255 CHECK_EQUAL(ret, REDISMODULE_OK);
1257 delete []redisStrVec;
1260 TEST(exstring, delmpub)
1263 RedisModuleString ** redisStrVec = new (RedisModuleString*[8]);
1265 redisStrVec[0] = (RedisModuleString *)1;
1266 redisStrVec[1] = (RedisModuleString *)1;
1267 redisStrVec[2] = (RedisModuleString *)1;
1268 redisStrVec[3] = (RedisModuleString *)1;
1269 redisStrVec[4] = (RedisModuleString *)1;
1270 redisStrVec[5] = (RedisModuleString *)1;
1271 redisStrVec[6] = (RedisModuleString *)1;
1272 redisStrVec[7] = (RedisModuleString *)1;
1274 mock().setData("RedisModule_OpenKey_have", 1);
1275 mock().setData("RedisModule_KeyType_str", 1);
1276 mock().setData("RedisModule_String_same", 1);
1277 mock().setData("RedisModule_CallReplyType_null", 1);
1278 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1279 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1280 mock().setData("RedisModule_StringToLongLongCall_2", 2);
1282 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 8);
1283 CHECK_EQUAL(ret, REDISMODULE_OK);
1285 delete []redisStrVec;
1288 TEST(exstring, deliepub)
1291 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1293 redisStrVec[0] = (RedisModuleString *)1;
1294 redisStrVec[1] = (RedisModuleString *)1;
1295 redisStrVec[2] = (RedisModuleString *)1;
1296 redisStrVec[3] = (RedisModuleString *)1;
1297 redisStrVec[4] = (RedisModuleString *)1;
1299 mock().setData("RedisModule_OpenKey_have", 1);
1300 mock().setData("RedisModule_KeyType_str", 1);
1301 mock().setData("RedisModule_String_same", 1);
1302 mock().setData("RedisModule_CallReplyType_null", 1);
1304 mock().expectOneCall("RedisModule_CloseKey");
1305 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1306 CHECK_EQUAL(ret, REDISMODULE_OK);
1307 mock().checkExpectations();
1308 delete []redisStrVec;
1311 TEST(exstring, delnepub)
1314 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1316 redisStrVec[0] = (RedisModuleString *)1;
1317 redisStrVec[1] = (RedisModuleString *)1;
1318 redisStrVec[2] = (RedisModuleString *)1;
1319 redisStrVec[3] = (RedisModuleString *)1;
1320 redisStrVec[4] = (RedisModuleString *)1;
1322 mock().setData("RedisModule_OpenKey_have", 1);
1323 mock().setData("RedisModule_KeyType_str", 1);
1324 mock().setData("RedisModule_String_same", 1);
1325 mock().setData("RedisModule_CallReplyType_null", 1);
1327 mock().expectOneCall("RedisModule_CloseKey");
1328 int ret = DelNEPub_RedisCommand(&ctx, redisStrVec, 5);
1329 CHECK_EQUAL(ret, REDISMODULE_OK);
1330 mock().checkExpectations();
1331 delete []redisStrVec;
1334 TEST(exstring, delpub_command_parameter_number_incorrect)
1338 ret = DelPub_RedisCommand(&ctx, 0, 2);
1339 CHECK_EQUAL(ret, REDISMODULE_ERR);
1342 ret = DelMPub_RedisCommand(&ctx, 0, 5);
1343 CHECK_EQUAL(ret, REDISMODULE_ERR);
1346 ret = DelIEPub_RedisCommand(&ctx, 0, 4);
1347 CHECK_EQUAL(ret, REDISMODULE_ERR);
1350 ret = DelNEPub_RedisCommand(&ctx, 0, 8);
1351 CHECK_EQUAL(ret, REDISMODULE_ERR);
1354 TEST(exstring, delpub_command_reply_null)
1357 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1359 redisStrVec[0] = (RedisModuleString *)1;
1360 redisStrVec[1] = (RedisModuleString *)1;
1361 redisStrVec[2] = (RedisModuleString *)1;
1362 redisStrVec[3] = (RedisModuleString *)1;
1363 redisStrVec[4] = (RedisModuleString *)1;
1364 mock().setData("RedisModule_CallReplyInteger", 0);
1365 mock().setData("RedisModule_CallReplyType_inter", 1);
1366 mock().setData("RedisModule_Call_Return_Null", 0);
1368 int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5);
1369 CHECK_EQUAL(ret, 0);
1370 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1371 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1372 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1373 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 0);
1374 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1375 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
1376 delete []redisStrVec;
1380 TEST(exstring, delpub_command_reply_error)
1383 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1385 redisStrVec[0] = (RedisModuleString *)1;
1386 redisStrVec[1] = (RedisModuleString *)1;
1387 redisStrVec[2] = (RedisModuleString *)1;
1388 redisStrVec[3] = (RedisModuleString *)1;
1389 redisStrVec[4] = (RedisModuleString *)1;
1390 mock().setData("RedisModule_CallReplyInteger", 0);
1391 mock().setData("RedisModule_CallReplyType_err", 1);
1393 int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5);
1394 CHECK_EQUAL(ret, REDISMODULE_ERR);
1395 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1396 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1397 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1398 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1399 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1400 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1401 delete []redisStrVec;
1405 TEST(exstring, delpub_command_has_no_key)
1408 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1410 redisStrVec[0] = (RedisModuleString *)1;
1411 redisStrVec[1] = (RedisModuleString *)1;
1412 redisStrVec[2] = (RedisModuleString *)1;
1413 redisStrVec[3] = (RedisModuleString *)1;
1414 redisStrVec[4] = (RedisModuleString *)1;
1415 mock().setData("RedisModule_CallReplyInteger", 0);
1416 mock().setData("RedisModule_CallReplyType_inter", 1);
1418 int ret = DelPub_RedisCommand(&ctx, redisStrVec, 5);
1419 CHECK_EQUAL(ret, 0);
1420 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1421 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1422 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1423 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1424 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1425 delete []redisStrVec;
1429 TEST(exstring, delmpub_command_reply_null)
1432 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1434 redisStrVec[0] = (RedisModuleString *)1;
1435 redisStrVec[1] = (RedisModuleString *)1;
1436 redisStrVec[2] = (RedisModuleString *)1;
1437 redisStrVec[3] = (RedisModuleString *)1;
1438 redisStrVec[4] = (RedisModuleString *)1;
1439 redisStrVec[5] = (RedisModuleString *)1;
1441 mock().setData("RedisModule_Call_Return_Null", 1);
1442 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1443 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1444 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1446 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1447 CHECK_EQUAL(ret, 0);
1448 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1449 CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue());
1450 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
1451 CHECK_EQUAL(0, mock().getData("RedisModule_ReplyWithCallReply").getIntValue());
1452 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
1453 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
1454 delete []redisStrVec;
1458 TEST(exstring, delmpub_command_reply_error)
1461 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1463 redisStrVec[0] = (RedisModuleString *)1;
1464 redisStrVec[1] = (RedisModuleString *)1;
1465 redisStrVec[2] = (RedisModuleString *)1;
1466 redisStrVec[3] = (RedisModuleString *)1;
1467 redisStrVec[4] = (RedisModuleString *)1;
1468 redisStrVec[4] = (RedisModuleString *)1;
1470 mock().setData("RedisModule_CallReplyInteger", 0);
1471 mock().setData("RedisModule_CallReplyType_err", 1);
1472 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1473 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1474 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1476 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1477 CHECK_EQUAL(ret, REDISMODULE_ERR);
1478 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1479 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1480 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1481 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1482 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1483 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1484 delete []redisStrVec;
1488 TEST(exstring, delmpub_command_has_no_key)
1491 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1493 redisStrVec[0] = (RedisModuleString *)1;
1494 redisStrVec[1] = (RedisModuleString *)1;
1495 redisStrVec[2] = (RedisModuleString *)1;
1496 redisStrVec[3] = (RedisModuleString *)1;
1497 redisStrVec[4] = (RedisModuleString *)1;
1498 redisStrVec[5] = (RedisModuleString *)1;
1500 mock().setData("RedisModule_CallReplyInteger", 0);
1501 mock().setData("RedisModule_CallReplyType_inter", 1);
1502 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1503 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1504 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1506 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1507 CHECK_EQUAL(ret, 0);
1508 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1509 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1510 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1511 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1512 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1513 delete []redisStrVec;
1517 TEST(exstring, delmpub_command_key_deleted)
1520 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1522 redisStrVec[0] = (RedisModuleString *)1;
1523 redisStrVec[1] = (RedisModuleString *)1;
1524 redisStrVec[2] = (RedisModuleString *)1;
1525 redisStrVec[3] = (RedisModuleString *)1;
1526 redisStrVec[4] = (RedisModuleString *)1;
1527 redisStrVec[5] = (RedisModuleString *)1;
1529 mock().setData("RedisModule_CallReplyInteger", 1);
1530 mock().setData("RedisModule_CallReplyType_inter", 1);
1531 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1532 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1533 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1535 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1536 CHECK_EQUAL(ret, 0);
1537 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1538 CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue());
1539 CHECK_EQUAL(1, mock().getData("PUBLISH").getIntValue());
1540 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithCallReply").getIntValue());
1541 CHECK_EQUAL(2, mock().getData("RedisModule_FreeCallReply").getIntValue());
1542 delete []redisStrVec;
1546 TEST(exstring, delmpub_command_key_deleted_multi_pub)
1549 RedisModuleString **redisStrVec = new (RedisModuleString*[10]);
1551 redisStrVec[0] = (RedisModuleString *)1;
1552 redisStrVec[1] = (RedisModuleString *)1;
1553 redisStrVec[2] = (RedisModuleString *)1;
1554 redisStrVec[3] = (RedisModuleString *)1;
1555 redisStrVec[4] = (RedisModuleString *)1;
1556 redisStrVec[5] = (RedisModuleString *)1;
1557 redisStrVec[6] = (RedisModuleString *)1;
1558 redisStrVec[7] = (RedisModuleString *)1;
1559 redisStrVec[8] = (RedisModuleString *)1;
1560 redisStrVec[9] = (RedisModuleString *)1;
1562 mock().setData("RedisModule_CallReplyInteger", 1);
1563 mock().setData("RedisModule_CallReplyType_inter", 1);
1564 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1565 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1566 mock().setData("RedisModule_StringToLongLongCall_2", 3);
1568 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 10);
1569 CHECK_EQUAL(0, ret);
1570 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1571 CHECK_EQUAL(1, mock().getData("UNLINK").getIntValue());
1572 CHECK_EQUAL(3, mock().getData("PUBLISH").getIntValue());
1573 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithCallReply").getIntValue());
1574 CHECK_EQUAL(4, mock().getData("RedisModule_FreeCallReply").getIntValue());
1575 delete []redisStrVec;
1579 TEST(exstring, delmpub_command_negative_del_count)
1582 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1584 redisStrVec[0] = (RedisModuleString *)1;
1585 redisStrVec[1] = (RedisModuleString *)1;
1586 redisStrVec[2] = (RedisModuleString *)1;
1587 redisStrVec[3] = (RedisModuleString *)1;
1588 redisStrVec[4] = (RedisModuleString *)1;
1589 redisStrVec[5] = (RedisModuleString *)1;
1591 mock().setData("RedisModule_CallReplyInteger", 1);
1592 mock().setData("RedisModule_CallReplyType_inter", 1);
1593 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1594 mock().setData("RedisModule_StringToLongLongCall_1", -1);
1595 mock().setData("RedisModule_StringToLongLongCall_2", 1);
1597 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1598 CHECK_EQUAL(0, ret);
1599 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1600 CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue());
1601 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
1602 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
1603 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
1604 delete []redisStrVec;
1608 TEST(exstring, delmpub_command_negative_chan_msg_count)
1611 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1613 redisStrVec[0] = (RedisModuleString *)1;
1614 redisStrVec[1] = (RedisModuleString *)1;
1615 redisStrVec[2] = (RedisModuleString *)1;
1616 redisStrVec[3] = (RedisModuleString *)1;
1617 redisStrVec[4] = (RedisModuleString *)1;
1618 redisStrVec[5] = (RedisModuleString *)1;
1620 mock().setData("RedisModule_CallReplyInteger", 1);
1621 mock().setData("RedisModule_CallReplyType_inter", 1);
1622 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1623 mock().setData("RedisModule_StringToLongLongCall_1", 1);
1624 mock().setData("RedisModule_StringToLongLongCall_2", -1);
1626 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1627 CHECK_EQUAL(0, ret);
1628 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1629 CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue());
1630 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
1631 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
1632 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
1633 delete []redisStrVec;
1637 TEST(exstring, delmpub_command_invalid_total_count)
1640 RedisModuleString **redisStrVec = new (RedisModuleString*[6]);
1642 redisStrVec[0] = (RedisModuleString *)1;
1643 redisStrVec[1] = (RedisModuleString *)1;
1644 redisStrVec[2] = (RedisModuleString *)1;
1645 redisStrVec[3] = (RedisModuleString *)1;
1646 redisStrVec[4] = (RedisModuleString *)1;
1647 redisStrVec[5] = (RedisModuleString *)1;
1649 mock().setData("RedisModule_CallReplyInteger", 1);
1650 mock().setData("RedisModule_CallReplyType_inter", 1);
1651 mock().setData("RedisModule_StringToLongLongCallCount", 0);
1652 mock().setData("RedisModule_StringToLongLongCall_1", 100);
1653 mock().setData("RedisModule_StringToLongLongCall_2", 100);
1655 int ret = DelMPub_RedisCommand(&ctx, redisStrVec, 6);
1656 CHECK_EQUAL(0, ret);
1657 CHECK_EQUAL(0, mock().getData("GET").getIntValue());
1658 CHECK_EQUAL(0, mock().getData("UNLINK").getIntValue());
1659 CHECK_EQUAL(0, mock().getData("PUBLISH").getIntValue());
1660 CHECK_EQUAL(1, mock().getData("RedisModule_ReplyWithError").getIntValue());
1661 CHECK_EQUAL(0, mock().getData("RedisModule_FreeCallReply").getIntValue());
1662 delete []redisStrVec;
1666 TEST(exstring, deliepub_command_has_no_key)
1669 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1671 redisStrVec[0] = (RedisModuleString *)1;
1672 redisStrVec[1] = (RedisModuleString *)1;
1673 redisStrVec[2] = (RedisModuleString *)1;
1674 redisStrVec[3] = (RedisModuleString *)1;
1675 redisStrVec[4] = (RedisModuleString *)1;
1676 mock().setData("RedisModule_KeyType_empty", 1);
1678 mock().expectOneCall("RedisModule_CloseKey");
1679 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1680 CHECK_EQUAL(ret, 0);
1681 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
1682 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1683 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
1684 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1685 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1686 delete []redisStrVec;
1690 TEST(exstring, deliepub_command_has_key_set)
1693 //RedisModuleString str;
1694 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1696 redisStrVec[0] = (RedisModuleString *)1;
1697 redisStrVec[1] = (RedisModuleString *)1;
1698 redisStrVec[2] = (RedisModuleString *)1;
1699 redisStrVec[3] = (RedisModuleString *)1;
1700 redisStrVec[4] = (RedisModuleString *)1;
1702 mock().setData("RedisModule_OpenKey_have", 1);
1703 mock().setData("RedisModule_KeyType_set", 1);
1704 mock().expectOneCall("RedisModule_CloseKey");
1705 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1706 CHECK_EQUAL(ret, REDISMODULE_OK);
1707 mock().checkExpectations();
1708 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 1);
1709 CHECK_EQUAL(mock().getData("GET").getIntValue(), 0);
1710 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
1711 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1712 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 0);
1714 delete []redisStrVec;
1717 TEST(exstring, deliepub_command_key_string_nosame)
1720 //RedisModuleString str;
1721 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1723 redisStrVec[0] = (RedisModuleString *)1;
1724 redisStrVec[1] = (RedisModuleString *)1;
1725 redisStrVec[2] = (RedisModuleString *)1;
1726 redisStrVec[3] = (RedisModuleString *)1;
1727 redisStrVec[4] = (RedisModuleString *)1;
1729 mock().setData("RedisModule_OpenKey_have", 1);
1730 mock().setData("RedisModule_KeyType_str", 1);
1731 mock().setData("RedisModule_String_nosame", 1);
1732 mock().expectOneCall("RedisModule_CloseKey");
1733 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1734 CHECK_EQUAL(ret, REDISMODULE_OK);
1735 mock().checkExpectations();
1736 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1737 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1738 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
1739 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1740 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
1741 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1743 delete []redisStrVec;
1746 TEST(exstring, deliepub_command_same_string_replynull)
1749 //RedisModuleString str;
1750 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1752 redisStrVec[0] = (RedisModuleString *)1;
1753 redisStrVec[1] = (RedisModuleString *)1;
1754 redisStrVec[2] = (RedisModuleString *)1;
1755 redisStrVec[3] = (RedisModuleString *)1;
1756 redisStrVec[4] = (RedisModuleString *)1;
1758 mock().setData("RedisModule_OpenKey_have", 1);
1759 mock().setData("RedisModule_KeyType_str", 1);
1760 mock().setData("RedisModule_String_same", 1);
1761 mock().setData("RedisModule_CallReplyType_null", 1);
1762 mock().expectOneCall("RedisModule_CloseKey");
1763 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1764 CHECK_EQUAL(ret, REDISMODULE_OK);
1765 mock().checkExpectations();
1766 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1767 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1768 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1769 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1770 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithNull").getIntValue(), 1);
1771 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
1773 delete []redisStrVec;
1776 TEST(exstring, deliepub_command_same_string_reply)
1779 //RedisModuleString str;
1780 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1782 redisStrVec[0] = (RedisModuleString *)1;
1783 redisStrVec[1] = (RedisModuleString *)1;
1784 redisStrVec[2] = (RedisModuleString *)1;
1785 redisStrVec[3] = (RedisModuleString *)1;
1786 redisStrVec[4] = (RedisModuleString *)1;
1788 mock().setData("RedisModule_OpenKey_have", 1);
1789 mock().setData("RedisModule_KeyType_str", 1);
1790 mock().setData("RedisModule_String_same", 1);
1791 mock().setData("RedisModule_CallReplyType_str", 1);
1792 mock().setData("RedisModule_CallReplyInteger", 1);
1793 mock().expectOneCall("RedisModule_CloseKey");
1794 int ret = DelIEPub_RedisCommand(&ctx, redisStrVec, 5);
1795 CHECK_EQUAL(ret, REDISMODULE_OK);
1796 mock().checkExpectations();
1797 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1798 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1799 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1800 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1801 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1802 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
1804 delete []redisStrVec;
1807 TEST(exstring, delnepub_command_same_string_reply)
1810 //RedisModuleString str;
1811 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1813 redisStrVec[0] = (RedisModuleString *)1;
1814 redisStrVec[1] = (RedisModuleString *)1;
1815 redisStrVec[2] = (RedisModuleString *)1;
1816 redisStrVec[3] = (RedisModuleString *)1;
1817 redisStrVec[4] = (RedisModuleString *)1;
1819 mock().setData("RedisModule_OpenKey_have", 1);
1820 mock().setData("RedisModule_KeyType_str", 1);
1821 mock().setData("RedisModule_String_same", 1);
1822 mock().setData("RedisModule_CallReplyType_str", 1);
1823 mock().expectOneCall("RedisModule_CloseKey");
1824 int ret = DelNEPub_RedisCommand(&ctx, redisStrVec, 5);
1825 CHECK_EQUAL(ret, REDISMODULE_OK);
1826 mock().checkExpectations();
1827 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1828 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1829 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 0);
1830 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 0);
1831 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
1832 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1834 delete []redisStrVec;
1837 TEST(exstring, delnepub_command_nosame_string_reply)
1840 //RedisModuleString str;
1841 RedisModuleString ** redisStrVec = new (RedisModuleString*[5]);
1843 redisStrVec[0] = (RedisModuleString *)1;
1844 redisStrVec[1] = (RedisModuleString *)1;
1845 redisStrVec[2] = (RedisModuleString *)1;
1846 redisStrVec[3] = (RedisModuleString *)1;
1847 redisStrVec[4] = (RedisModuleString *)1;
1849 mock().setData("RedisModule_OpenKey_have", 1);
1850 mock().setData("RedisModule_KeyType_str", 1);
1851 mock().setData("RedisModule_String_nosame", 1);
1852 mock().setData("RedisModule_CallReplyType_str", 1);
1853 mock().setData("RedisModule_CallReplyInteger", 1);
1854 mock().expectOneCall("RedisModule_CloseKey");
1855 int ret = DelNEPub_RedisCommand(&ctx, redisStrVec, 5);
1856 CHECK_EQUAL(ret, REDISMODULE_OK);
1857 mock().checkExpectations();
1858 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithError").getIntValue(), 0);
1859 CHECK_EQUAL(mock().getData("GET").getIntValue(), 1);
1860 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1861 CHECK_EQUAL(mock().getData("PUBLISH").getIntValue(), 1);
1862 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1863 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 3);
1865 delete []redisStrVec;
1868 TEST(exstring, nget_command_parameter_number_incorrect)
1871 RedisModuleString ** redisStrVec = new (RedisModuleString*[2]);
1872 redisStrVec[0] = (RedisModuleString *)1;
1873 redisStrVec[1] = (RedisModuleString *)1;
1875 int ret = NGet_RedisCommand(&ctx, redisStrVec, 3);
1876 CHECK_EQUAL(ret, REDISMODULE_ERR);
1878 delete []redisStrVec;
1881 TEST(exstring, nget_command_zero_item)
1884 RedisModuleString ** redisStrVec = new (RedisModuleString*[2]);
1885 redisStrVec[0] = (RedisModuleString *)1;
1886 redisStrVec[1] = (RedisModuleString *)1;
1888 mock().setData("RedisModule_CallReplyLength", 0);
1889 int ret = NGet_RedisCommand(&ctx, redisStrVec, 2);
1890 CHECK_EQUAL(ret, REDISMODULE_OK);
1891 CHECK_EQUAL(mock().getData("KEYS").getIntValue(), 1);
1892 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1893 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1895 delete []redisStrVec;
1898 TEST(exstring, nget_command_none_zero_items)
1901 RedisModuleString ** redisStrVec = new (RedisModuleString*[2]);
1902 redisStrVec[0] = (RedisModuleString *)1;
1903 redisStrVec[1] = (RedisModuleString *)1;
1905 mock().setData("RedisModule_CallReplyLength", 3);
1906 int ret = NGet_RedisCommand(&ctx, redisStrVec, 2);
1907 CHECK_EQUAL(ret, REDISMODULE_OK);
1908 CHECK_EQUAL(mock().getData("KEYS").getIntValue(), 1);
1909 CHECK_EQUAL(mock().getData("MGET").getIntValue(), 1);
1910 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithArray").getIntValue(), 3*2);
1911 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithString").getIntValue(), 3*2);
1912 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
1914 delete []redisStrVec;
1917 TEST(exstring, ndel_command_parameter_parameter_number_incorrect)
1920 RedisModuleString ** redisStrVec = new (RedisModuleString*[2]);
1921 redisStrVec[0] = (RedisModuleString *)1;
1922 redisStrVec[1] = (RedisModuleString *)1;
1924 int ret = NDel_RedisCommand(&ctx, redisStrVec, 3);
1925 CHECK_EQUAL(ret, REDISMODULE_ERR);
1927 delete []redisStrVec;
1930 TEST(exstring, ndel_command_zero_item)
1933 RedisModuleString ** redisStrVec = new (RedisModuleString*[2]);
1934 redisStrVec[0] = (RedisModuleString *)1;
1935 redisStrVec[1] = (RedisModuleString *)1;
1937 mock().setData("RedisModule_CallReplyLength", 0);
1938 int ret = NDel_RedisCommand(&ctx, redisStrVec, 2);
1939 CHECK_EQUAL(ret, REDISMODULE_OK);
1940 CHECK_EQUAL(mock().getData("KEYS").getIntValue(), 1);
1941 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithLongLong").getIntValue(), 0);
1942 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 1);
1944 delete []redisStrVec;
1947 TEST(exstring, ndel_command_none_zero_items)
1950 RedisModuleString ** redisStrVec = new (RedisModuleString*[2]);
1951 redisStrVec[0] = (RedisModuleString *)1;
1952 redisStrVec[1] = (RedisModuleString *)1;
1954 mock().setData("RedisModule_CallReplyLength", 3);
1955 int ret = NDel_RedisCommand(&ctx, redisStrVec, 2);
1956 CHECK_EQUAL(ret, REDISMODULE_OK);
1957 CHECK_EQUAL(mock().getData("KEYS").getIntValue(), 1);
1958 CHECK_EQUAL(mock().getData("UNLINK").getIntValue(), 1);
1959 CHECK_EQUAL(mock().getData("RedisModule_ReplyWithCallReply").getIntValue(), 1);
1960 CHECK_EQUAL(mock().getData("RedisModule_FreeCallReply").getIntValue(), 2);
1962 delete []redisStrVec;