1
+ using StackExchange . Redis ;
2
+ using Xunit ;
3
+
4
+ namespace NRedisStack . Tests ;
5
+
6
+ public class CommunityEditionUpdatesTests : AbstractNRedisStackTest , IDisposable
7
+ {
8
+ public CommunityEditionUpdatesTests ( EndpointsFixture endpointsFixture ) : base ( endpointsFixture ) { }
9
+
10
+ private IServer getAnyPrimary ( IConnectionMultiplexer muxer )
11
+ {
12
+ foreach ( var endpoint in muxer . GetEndPoints ( ) )
13
+ {
14
+ var server = muxer . GetServer ( endpoint ) ;
15
+ if ( ! server . IsReplica ) return server ;
16
+ }
17
+ throw new InvalidOperationException ( "Requires a primary endpoint (found none)" ) ;
18
+ }
19
+
20
+ [ SkipIfRedis ( Comparison . LessThan , "7.9.0" ) ]
21
+ [ MemberData ( nameof ( EndpointsFixture . Env . AllEnvironments ) , MemberType = typeof ( EndpointsFixture . Env ) ) ]
22
+ public void ConfigSearchSettings ( string endpointId )
23
+ {
24
+ IDatabase db = GetCleanDatabase ( endpointId ) ;
25
+ IConnectionMultiplexer muxer = db . Multiplexer ;
26
+ IServer server = getAnyPrimary ( muxer ) ;
27
+
28
+ server . ConfigSet ( "search-on-timeout" , "fail" ) ;
29
+
30
+ Assert . Equal ( "fail" , server . ConfigGet ( "search-on-timeout" ) . First ( ) . Value ) ;
31
+
32
+ server . ConfigSet ( "search-on-timeout" , "return" ) ;
33
+
34
+ Assert . Single ( server . ConfigGet ( "search-min-prefix" ) ) ;
35
+
36
+ Assert . Single ( server . ConfigGet ( "search-max-prefix-expansions" ) ) ;
37
+
38
+ Assert . Single ( server . ConfigGet ( "search-max-doctablesize" ) ) ;
39
+
40
+ Assert . Single ( server . ConfigGet ( "search-max-search-results" ) ) ;
41
+
42
+ Assert . Single ( server . ConfigGet ( "search-max-aggregate-results" ) ) ;
43
+
44
+ Assert . Single ( server . ConfigGet ( "search-friso-ini" ) ) ;
45
+
46
+ Assert . Single ( server . ConfigGet ( "search-default-dialect" ) ) ;
47
+ }
48
+
49
+ [ SkipIfRedis ( Comparison . LessThan , "7.9.0" ) ]
50
+ [ MemberData ( nameof ( EndpointsFixture . Env . AllEnvironments ) , MemberType = typeof ( EndpointsFixture . Env ) ) ]
51
+ public void ConfigTimeSeriesSettings ( string endpointId )
52
+ {
53
+ IDatabase db = GetCleanDatabase ( endpointId ) ;
54
+ IConnectionMultiplexer muxer = db . Multiplexer ;
55
+ IServer server = getAnyPrimary ( muxer ) ;
56
+
57
+ Assert . Single ( server . ConfigGet ( "ts-compaction-policy" ) ) ;
58
+
59
+ Assert . Single ( server . ConfigGet ( "ts-retention-policy" ) ) ;
60
+
61
+ Assert . Single ( server . ConfigGet ( "ts-duplicate-policy" ) ) ;
62
+
63
+ Assert . Single ( server . ConfigGet ( "ts-encoding" ) ) ;
64
+
65
+ Assert . Single ( server . ConfigGet ( "ts-chunk-size-bytes" ) ) ;
66
+
67
+ Assert . Single ( server . ConfigGet ( "ts-ignore-max-time-diff" ) ) ;
68
+
69
+ Assert . Single ( server . ConfigGet ( "ts-ignore-max-val-diff" ) ) ;
70
+ }
71
+
72
+ [ SkipIfRedis ( Comparison . LessThan , "7.9.0" ) ]
73
+ [ MemberData ( nameof ( EndpointsFixture . Env . AllEnvironments ) , MemberType = typeof ( EndpointsFixture . Env ) ) ]
74
+ public void ConfigProbabilisticSettings ( string endpointId )
75
+ {
76
+ IDatabase db = GetCleanDatabase ( endpointId ) ;
77
+ IConnectionMultiplexer muxer = db . Multiplexer ;
78
+ IServer server = getAnyPrimary ( muxer ) ;
79
+
80
+ server . ConfigSet ( "bf-error-rate" , "0.02" ) ;
81
+
82
+ Assert . Single ( server . ConfigGet ( "bf-error-rate" ) ) ;
83
+
84
+ Assert . Equal ( "0.02" , server . ConfigGet ( "bf-error-rate" ) . First ( ) . Value ) ;
85
+
86
+ Assert . Single ( server . ConfigGet ( "bf-initial-size" ) ) ;
87
+
88
+ Assert . Single ( server . ConfigGet ( "cf-max-expansions" ) ) ;
89
+
90
+ Assert . Single ( server . ConfigGet ( "bf-expansion-factor" ) ) ;
91
+
92
+ Assert . Single ( server . ConfigGet ( "cf-expansion-factor" ) ) ;
93
+
94
+ Assert . Single ( server . ConfigGet ( "cf-initial-size" ) ) ;
95
+
96
+ Assert . Single ( server . ConfigGet ( "cf-bucket-size" ) ) ;
97
+
98
+ Assert . Single ( server . ConfigGet ( "cf-max-iterations" ) ) ;
99
+ }
100
+
101
+ [ SkipIfRedis ( Comparison . LessThan , "7.9.0" ) ]
102
+ [ MemberData ( nameof ( EndpointsFixture . Env . AllEnvironments ) , MemberType = typeof ( EndpointsFixture . Env ) ) ]
103
+ public void InfoSearchSection ( string endpointId )
104
+ {
105
+ IDatabase db = GetCleanDatabase ( endpointId ) ;
106
+ IConnectionMultiplexer muxer = db . Multiplexer ;
107
+ IServer server = getAnyPrimary ( muxer ) ;
108
+
109
+ var searchInfo = server . Info ( "search" ) ;
110
+ CustomAssertions . GreaterThan ( 10 , searchInfo . Length ) ;
111
+ }
112
+
113
+ }
0 commit comments