@@ -477,6 +477,58 @@ TEST(DBConnector, RedisClient)
477
477
cout << " Done." << endl;
478
478
}
479
479
480
+ TEST (DBConnector, HmsetAndDel)
481
+ {
482
+ DBConnector db (" TEST_DB" , 0 , true );
483
+ clearDB ();
484
+
485
+ unordered_map<string, vector<pair<string, string>>> multiHash;
486
+ vector<FieldValueTuple> values;
487
+ values.push_back (make_pair (" field_1" , " 1" ));
488
+ values.push_back (make_pair (" field_2" , " 2" ));
489
+
490
+ vector<string> keys;
491
+ for (int idx =0 ; idx<10 ; idx++)
492
+ {
493
+ string key = " hash_key_" + to_string (idx);
494
+ multiHash[key] = values;
495
+ keys.push_back (key);
496
+ }
497
+
498
+ // set multiple hash with hmset
499
+ db.hmset (multiHash);
500
+
501
+ // check all key exist
502
+ for (auto & key : keys)
503
+ {
504
+ auto fvs = db.hgetall (key);
505
+ EXPECT_EQ (fvs.size (), 2 );
506
+
507
+ for (auto fv: fvs)
508
+ {
509
+ string value_1 = " 1" , value_2 = " 2" ;
510
+ if (fvField (fv) == " field_1" )
511
+ {
512
+ EXPECT_EQ (fvValue (fv), value_1);
513
+ }
514
+ if (fvField (fv) == " field_2" )
515
+ {
516
+ EXPECT_EQ (fvValue (fv), value_2);
517
+ }
518
+ }
519
+ }
520
+
521
+ // delete multiple hash with del
522
+ db.del (keys);
523
+
524
+ // check all key deleted
525
+ for (auto & key : keys)
526
+ {
527
+ auto fvs = db.hgetall (key);
528
+ EXPECT_EQ (fvs.size (), 0 );
529
+ }
530
+ }
531
+
480
532
TEST (DBConnector, test)
481
533
{
482
534
thread *producerThreads[NUMBER_OF_THREADS];
0 commit comments