func TestStringCSV(t *testing.T) { t.Parallel() wantPath := scope.StrDefault.FQPathInt64(0, "web/cors/exposed_headers") b := model.NewStringCSV( "web/cors/exposed_headers", model.WithConfigStructure(configStructure), model.WithSourceByString( "Content-Type", "Content Type", "X-CoreStore-ID", "CoreStore Microservice ID", ), ) assert.NotEmpty(t, b.Options()) assert.Exactly(t, []string{"Content-Type", "X-CoreStore-ID"}, b.Get(config.NewMockGetter().NewScoped(0, 0, 0))) assert.Exactly(t, []string{"Content-Application", "X-Gopher"}, b.Get(config.NewMockGetter( config.WithMockValues(config.MockPV{ wantPath: "Content-Application,X-Gopher", }), ).NewScoped(0, 0, 0))) mw := &config.MockWrite{} b.Source.Merge(source.NewByString("a", "a", "b", "b", "c", "c")) assert.NoError(t, b.Write(mw, []string{"a", "b", "c"}, scope.DefaultID, 0)) assert.Exactly(t, wantPath, mw.ArgPath) assert.Exactly(t, "a,b,c", mw.ArgValue.(string)) }
func TestRecursiveOption(t *testing.T) { t.Parallel() b := model.NewInt( "web/cors/int", model.WithConfigStructure(configStructure), model.WithSourceByString("a", "A", "b", "b"), ) assert.Exactly(t, source.NewByString("a", "A", "b", "b"), b.Source) previous := b.Option(model.WithSourceByString( "1", "One", "2", "Two", )) assert.Exactly(t, source.NewByString("1", "One", "2", "Two"), b.Source) b.Option(previous) assert.Exactly(t, source.NewByString("a", "A", "b", "b"), b.Source) }
func TestPathCountryAllowedCustom(t *testing.T) { t.Parallel() defer debugLogBuf.Reset() previous := directory.Backend.GeneralCountryAllow.Option(model.WithSourceByString( "DE", "Germany", "AU", "'Straya", "CH", "Switzerland", )) defer directory.Backend.GeneralCountryAllow.Option(previous) cr := config.NewMockGetter( config.WithMockValues(config.MockPV{ directory.Backend.GeneralCountryAllow.FQPathInt64(scope.StrStores, 1): "DE,AU,CH,AT", }), ) haveCountries := directory.Backend.GeneralCountryAllow.Get(cr.NewScoped(1, 1, 1)) assert.Exactly(t, []string{"DE", "AU", "CH", "AT"}, haveCountries) // todo validation }