MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestConfigValidationCache

Function TestConfigValidationCache

rest/config_test.go:179–225  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

177}
178
179func TestConfigValidationCache(t *testing.T) {
180 jsonConfig := `{"databases": {"db": {"cache": {"rev_cache": {"size": 0}, "channel_cache": {"max_number": 100, "compact_high_watermark_pct": 95, "compact_low_watermark_pct": 25}}}}}`
181 ctx := base.TestCtx(t)
182 buf := bytes.NewBufferString(jsonConfig)
183 config, err := readLegacyServerConfig(ctx, buf)
184 assert.NoError(t, err)
185
186 errorMessages := config.setupAndValidateDatabases(ctx)
187 require.NoError(t, errorMessages)
188
189 require.NotNil(t, config.Databases["db"])
190 require.NotNil(t, config.Databases["db"].CacheConfig)
191
192 require.NotNil(t, config.Databases["db"].CacheConfig.RevCacheConfig)
193 if base.IsEnterpriseEdition() {
194 require.NotNil(t, config.Databases["db"].CacheConfig.RevCacheConfig.MaxItemCount)
195 assert.Equal(t, 0, int(*config.Databases["db"].CacheConfig.RevCacheConfig.MaxItemCount))
196 } else {
197 // CE disallowed - should be nil
198 assert.Nil(t, config.Databases["db"].CacheConfig.RevCacheConfig.MaxItemCount)
199 }
200
201 require.NotNil(t, config.Databases["db"].CacheConfig.ChannelCacheConfig)
202 if base.IsEnterpriseEdition() {
203 require.NotNil(t, config.Databases["db"].CacheConfig.ChannelCacheConfig.MaxNumber)
204 assert.Equal(t, 100, *config.Databases["db"].CacheConfig.ChannelCacheConfig.MaxNumber)
205 } else {
206 // CE disallowed - should be nil
207 assert.Nil(t, config.Databases["db"].CacheConfig.ChannelCacheConfig.MaxNumber)
208 }
209
210 if base.IsEnterpriseEdition() {
211 require.NotNil(t, config.Databases["db"].CacheConfig.ChannelCacheConfig.HighWatermarkPercent)
212 assert.Equal(t, 95, *config.Databases["db"].CacheConfig.ChannelCacheConfig.HighWatermarkPercent)
213 } else {
214 // CE disallowed - should be nil
215 assert.Nil(t, config.Databases["db"].CacheConfig.ChannelCacheConfig.HighWatermarkPercent)
216 }
217
218 if base.IsEnterpriseEdition() {
219 require.NotNil(t, config.Databases["db"].CacheConfig.ChannelCacheConfig.LowWatermarkPercent)
220 assert.Equal(t, 25, *config.Databases["db"].CacheConfig.ChannelCacheConfig.LowWatermarkPercent)
221 } else {
222 // CE disallowed - should be nil
223 assert.Nil(t, config.Databases["db"].CacheConfig.ChannelCacheConfig.LowWatermarkPercent)
224 }
225}
226
227func TestConfigValidationImport(t *testing.T) {
228 jsonConfig := `{"databases": {"db": {"enable_shared_bucket_access":true, "import_docs": true, "import_partitions": 32}}}`

Callers

nothing calls this directly

Calls 5

TestCtxFunction · 0.92
IsEnterpriseEditionFunction · 0.92
readLegacyServerConfigFunction · 0.85
EqualMethod · 0.45

Tested by

no test coverage detected