@@ -649,18 +649,79 @@ public void SortedSetScoreSingle()
649649 var db = conn . GetDatabase ( ) ;
650650 var me = Me ( ) ;
651651
652- var setKey = $ "{ me } :ZScoreSet ";
653- var memberName = $ " { me } :ZScoreMember ";
652+ var setKey = $ "{ me } :ZScoreSetSingle ";
653+ var memberName = "member ";
654654
655+ db . KeyDelete ( setKey ) ;
655656 db . SortedSetAdd ( setKey , memberName , 1.5 ) ;
657+
656658 var score = db . SortedSetScore ( setKey , memberName ) ;
657659
658660 Assert . NotNull ( score ) ;
659661 Assert . Equal ( ( double ) 1.5 , score . Value ) ;
660662 }
661663
662664 [ Fact ]
663- public void SortedSetScoreSingle_ReturnsNull ( )
665+ public async Task SortedSetScoreSingleAsync ( )
666+ {
667+ using var conn = Create ( ) ;
668+ Skip . IfBelow ( conn , RedisFeatures . v2_1_0 ) ;
669+
670+ var db = conn . GetDatabase ( ) ;
671+ var me = Me ( ) ;
672+
673+ var setKey = $ "{ me } :ZScoreSetSingleAsync";
674+ var memberName = "member" ;
675+
676+ await db . KeyDeleteAsync ( setKey ) ;
677+ await db . SortedSetAddAsync ( setKey , memberName , 1.5 ) ;
678+
679+ var score = await db . SortedSetScoreAsync ( setKey , memberName ) ;
680+
681+ Assert . NotNull ( score ) ;
682+ Assert . Equal ( ( double ) 1.5 , score . Value ) ;
683+ }
684+
685+ [ Fact ]
686+ public void SortedSetScoreSingle_MissingSetStillReturnsNull ( )
687+ {
688+ using var conn = Create ( ) ;
689+ Skip . IfBelow ( conn , RedisFeatures . v2_1_0 ) ;
690+
691+ var db = conn . GetDatabase ( ) ;
692+ var me = Me ( ) ;
693+
694+ var setKey = $ "{ me } :ZScoreMissingSetSingle";
695+
696+ db . KeyDelete ( setKey ) ;
697+
698+ // Attempt to retrieve score for a missing set, should still return null.
699+ var score = db . SortedSetScore ( setKey , "bogusMemberName" ) ;
700+
701+ Assert . Null ( score ) ;
702+ }
703+
704+ [ Fact ]
705+ public async Task SortedSetScoreSingle_MissingSetStillReturnsNullAsync ( )
706+ {
707+ using var conn = Create ( ) ;
708+ Skip . IfBelow ( conn , RedisFeatures . v2_1_0 ) ;
709+
710+ var db = conn . GetDatabase ( ) ;
711+ var me = Me ( ) ;
712+
713+ var setKey = $ "{ me } :ZScoreMissingSetSingleAsync";
714+
715+ await db . KeyDeleteAsync ( setKey ) ;
716+
717+ // Attempt to retrieve score for a missing set, should still return null.
718+ var score = await db . SortedSetScoreAsync ( setKey , "bogusMemberName" ) ;
719+
720+ Assert . Null ( score ) ;
721+ }
722+
723+ [ Fact ]
724+ public void SortedSetScoreSingle_ReturnsNullForMissingMember ( )
664725 {
665726 using var conn = Create ( ) ;
666727 Skip . IfBelow ( conn , RedisFeatures . v2_1_0 ) ;
@@ -669,11 +730,36 @@ public void SortedSetScoreSingle_ReturnsNull()
669730 var me = Me ( ) ;
670731
671732 var setKey = $ "{ me } :ZScoreSetNullValue";
733+
734+ db . KeyDelete ( setKey ) ;
735+ db . SortedSetAdd ( setKey , "member1" , 1.5 ) ;
736+
737+ // Attempt to retrieve score for a missing member, should return null.
672738 var score = db . SortedSetScore ( setKey , "bogusMemberName" ) ;
673739
674740 Assert . Null ( score ) ;
675741 }
676742
743+ [ Fact ]
744+ public async Task SortedSetScoreSingle_ReturnsNullForMissingMemberAsync ( )
745+ {
746+ using var conn = Create ( ) ;
747+ Skip . IfBelow ( conn , RedisFeatures . v2_1_0 ) ;
748+
749+ var db = conn . GetDatabase ( ) ;
750+ var me = Me ( ) ;
751+
752+ var setKey = $ "{ me } :ZScoreSetNullValueAsync";
753+
754+ await db . KeyDeleteAsync ( setKey ) ;
755+ await db . SortedSetAddAsync ( setKey , "member1" , 1.5 ) ;
756+
757+ // Attempt to retrieve score for a missing member, should return null.
758+ var score = await db . SortedSetScoreAsync ( setKey , "bogusMemberName" ) ;
759+
760+ Assert . Null ( score ) ;
761+ }
762+
677763 [ Fact ]
678764 public void SortedSetScoreMultiple ( )
679765 {
@@ -684,10 +770,11 @@ public void SortedSetScoreMultiple()
684770 var me = Me ( ) ;
685771
686772 var setKey = $ "{ me } :ZScoreSetMultiple";
687- var member1 = $ " { me } :ZScoreSetMultiple_Member1 ";
688- var member2 = $ " { me } :ZScoreSetMultiple_Member2 ";
689- var member3 = $ " { me } :ZScoreSetMultiple_Member3 ";
773+ var member1 = "member1 ";
774+ var member2 = "member2 ";
775+ var member3 = "member3 ";
690776
777+ db . KeyDelete ( setKey ) ;
691778 db . SortedSetAdd ( setKey , member1 , 1.5 ) ;
692779 db . SortedSetAdd ( setKey , member2 , 1.75 ) ;
693780 db . SortedSetAdd ( setKey , member3 , 2 ) ;
@@ -698,23 +785,99 @@ public void SortedSetScoreMultiple()
698785 Assert . Equal ( 3 , scores . Length ) ;
699786 Assert . Equal ( ( double ) 1.5 , scores [ 0 ] ) ;
700787 Assert . Equal ( ( double ) 1.75 , scores [ 1 ] ) ;
701- Assert . Equal ( ( double ) 2 , scores [ 2 ] ) ;
788+ Assert . Equal ( 2 , scores [ 2 ] ) ;
702789 }
703790
704791 [ Fact ]
705- public void SortedSetScoreMultiple_ReturnsNullItems ( )
792+ public async Task SortedSetScoreMultipleAsync ( )
706793 {
707794 using var conn = Create ( ) ;
708795 Skip . IfBelow ( conn , RedisFeatures . v6_2_0 ) ;
709796
710797 var db = conn . GetDatabase ( ) ;
711798 var me = Me ( ) ;
712799
713- var setKey = $ "{ me } :ZScoreSetMultiple";
714- var member1 = $ "{ me } :ZScoreSetMultiple_Member1";
715- var member2 = $ "{ me } :ZScoreSetMultiple_Member2";
716- var member3 = $ "{ me } :ZScoreSetMultiple_Member3";
717- var bogusMember = $ "{ me } :ZScoreSetMultiple_BogusMember";
800+ var setKey = $ "{ me } :ZScoreSetMultipleAsync";
801+ var member1 = "member1" ;
802+ var member2 = "member2" ;
803+ var member3 = "member3" ;
804+
805+ await db . KeyDeleteAsync ( setKey ) ;
806+ await db . SortedSetAddAsync ( setKey , member1 , 1.5 ) ;
807+ await db . SortedSetAddAsync ( setKey , member2 , 1.75 ) ;
808+ await db . SortedSetAddAsync ( setKey , member3 , 2 ) ;
809+
810+ var scores = await db . SortedSetScoreAsync ( setKey , new RedisValue [ ] { member1 , member2 , member3 } ) ;
811+
812+ Assert . NotNull ( scores ) ;
813+ Assert . Equal ( 3 , scores . Length ) ;
814+ Assert . Equal ( ( double ) 1.5 , scores [ 0 ] ) ;
815+ Assert . Equal ( ( double ) 1.75 , scores [ 1 ] ) ;
816+ Assert . Equal ( 2 , scores [ 2 ] ) ;
817+ }
818+
819+ [ Fact ]
820+ public void SortedSetScoreMultiple_ReturnsNullItemsForMissingSet ( )
821+ {
822+ using var conn = Create ( ) ;
823+ Skip . IfBelow ( conn , RedisFeatures . v6_2_0 ) ;
824+
825+ var db = conn . GetDatabase ( ) ;
826+ var me = Me ( ) ;
827+
828+ var setKey = $ "{ me } :ZScoreSetMultipleMissingSet";
829+
830+ db . KeyDelete ( setKey ) ;
831+
832+ // Missing set but should still return an array of nulls.
833+ var scores = db . SortedSetScore ( setKey , new RedisValue [ ] { "bogus1" , "bogus2" , "bogus3" } ) ;
834+
835+ Assert . NotNull ( scores ) ;
836+ Assert . Equal ( 3 , scores . Length ) ;
837+ Assert . Null ( scores [ 0 ] ) ;
838+ Assert . Null ( scores [ 1 ] ) ;
839+ Assert . Null ( scores [ 2 ] ) ;
840+ }
841+
842+ [ Fact ]
843+ public async Task SortedSetScoreMultiple_ReturnsNullItemsForMissingSetAsync ( )
844+ {
845+ using var conn = Create ( ) ;
846+ Skip . IfBelow ( conn , RedisFeatures . v6_2_0 ) ;
847+
848+ var db = conn . GetDatabase ( ) ;
849+ var me = Me ( ) ;
850+
851+ var setKey = $ "{ me } :ZScoreSetMultipleMissingSetAsync";
852+
853+ await db . KeyDeleteAsync ( setKey ) ;
854+
855+ // Missing set but should still return an array of nulls.
856+ var scores = await db . SortedSetScoreAsync ( setKey , new RedisValue [ ] { "bogus1" , "bogus2" , "bogus3" } ) ;
857+
858+ Assert . NotNull ( scores ) ;
859+ Assert . Equal ( 3 , scores . Length ) ;
860+ Assert . Null ( scores [ 0 ] ) ;
861+ Assert . Null ( scores [ 1 ] ) ;
862+ Assert . Null ( scores [ 2 ] ) ;
863+ }
864+
865+ [ Fact ]
866+ public void SortedSetScoreMultiple_ReturnsScoresAndNullItems ( )
867+ {
868+ using var conn = Create ( ) ;
869+ Skip . IfBelow ( conn , RedisFeatures . v6_2_0 ) ;
870+
871+ var db = conn . GetDatabase ( ) ;
872+ var me = Me ( ) ;
873+
874+ var setKey = $ "{ me } :ZScoreSetMultipleScoresAndNull";
875+ var member1 = "member1" ;
876+ var member2 = "member2" ;
877+ var member3 = "member3" ;
878+ var bogusMember = "bogusMember" ;
879+
880+ db . KeyDelete ( setKey ) ;
718881
719882 db . SortedSetAdd ( setKey , member1 , 1.5 ) ;
720883 db . SortedSetAdd ( setKey , member2 , 1.75 ) ;
@@ -729,5 +892,36 @@ public void SortedSetScoreMultiple_ReturnsNullItems()
729892 Assert . Equal ( ( double ) 1.75 , scores [ 2 ] ) ;
730893 Assert . Equal ( 2 , scores [ 3 ] ) ;
731894 }
895+
896+ [ Fact ]
897+ public async Task SortedSetScoreMultiple_ReturnsScoresAndNullItemsAsync ( )
898+ {
899+ using var conn = Create ( ) ;
900+ Skip . IfBelow ( conn , RedisFeatures . v6_2_0 ) ;
901+
902+ var db = conn . GetDatabase ( ) ;
903+ var me = Me ( ) ;
904+
905+ var setKey = $ "{ me } :ZScoreSetMultipleScoresAndNullAsync";
906+ var member1 = "member1" ;
907+ var member2 = "member2" ;
908+ var member3 = "member3" ;
909+ var bogusMember = "bogusMember" ;
910+
911+ await db . KeyDeleteAsync ( setKey ) ;
912+
913+ await db . SortedSetAddAsync ( setKey , member1 , 1.5 ) ;
914+ await db . SortedSetAddAsync ( setKey , member2 , 1.75 ) ;
915+ await db . SortedSetAddAsync ( setKey , member3 , 2 ) ;
916+
917+ var scores = await db . SortedSetScoreAsync ( setKey , new RedisValue [ ] { member1 , bogusMember , member2 , member3 } ) ;
918+
919+ Assert . NotNull ( scores ) ;
920+ Assert . Equal ( 4 , scores . Length ) ;
921+ Assert . Null ( scores [ 1 ] ) ;
922+ Assert . Equal ( ( double ) 1.5 , scores [ 0 ] ) ;
923+ Assert . Equal ( ( double ) 1.75 , scores [ 2 ] ) ;
924+ Assert . Equal ( 2 , scores [ 3 ] ) ;
925+ }
732926 }
733927}
0 commit comments