func (c *MockDynamicConfiguration) GetConfigs(key string, opts ...Option) (string, error) {
	return c.GetConfig(key, opts...)
}
GetConfigs For zookeeper, getConfig and getConfigs have the same meaning.
package config_center
import (
	"sync"
	gxset "github.com/dubbogo/gost/container/set"
	"mosn.io/pkg/registry/dubbo/common"
	"mosn.io/pkg/registry/dubbo/common/constant"
	"mosn.io/pkg/registry/dubbo/config_center/parser"
	"mosn.io/pkg/registry/dubbo/remoting"
	"gopkg.in/yaml.v2"
)
type MockDynamicConfigurationFactory struct {
	Content string
}
var (
	once                 sync.Once
	dynamicConfiguration *MockDynamicConfiguration
)
func (f *MockDynamicConfigurationFactory) GetDynamicConfiguration(_ *common.URL) (DynamicConfiguration, error) {
	var err error
	once.Do(func() {
		dynamicConfiguration = &MockDynamicConfiguration{listener: map[string]ConfigurationListener{}}
		dynamicConfiguration.SetParser(&parser.DefaultConfigurationParser{})
		dynamicConfiguration.content = `
	dubbo.consumer.request_timeout=5s
	dubbo.consumer.connect_timeout=5s
	dubbo.application.organization=ikurento.com
	dubbo.application.name=BDTService
	dubbo.application.module=dubbogo user-info server
	dubbo.application.version=0.0.1
	dubbo.application.owner=ZX
	dubbo.application.environment=dev
	dubbo.registries.hangzhouzk.protocol=zookeeper
	dubbo.registries.hangzhouzk.timeout=3s
	dubbo.registries.hangzhouzk.address=127.0.0.1:2181
	dubbo.registries.shanghaizk.protocol=zookeeper
	dubbo.registries.shanghaizk.timeout=3s
	dubbo.registries.shanghaizk.address=127.0.0.1:2182
	dubbo.service.com.ikurento.user.UserProvider.protocol=dubbo
	dubbo.service.com.ikurento.user.UserProvider.interface=com.ikurento.user.UserProvider
	dubbo.service.com.ikurento.user.UserProvider.loadbalance=random
	dubbo.service.com.ikurento.user.UserProvider.warmup=100
	dubbo.service.com.ikurento.user.UserProvider.cluster=failover
	dubbo.protocols.jsonrpc1.name=jsonrpc
	dubbo.protocols.jsonrpc1.ip=127.0.0.1
	dubbo.protocols.jsonrpc1.port=20001
`
	})
	if len(f.Content) != 0 {
		dynamicConfiguration.content = f.Content
	}
	return dynamicConfiguration, err
}
func (c *MockDynamicConfiguration) PublishConfig(string, string, string) error {
	return nil
}
func (c *MockDynamicConfiguration) GetConfigKeysByGroup(group string) (*gxset.HashSet, error) {
	return gxset.NewSet(c.content), nil
}
type MockDynamicConfiguration struct {
	parser   parser.ConfigurationParser
	content  string
	listener map[string]ConfigurationListener
}
func (c *MockDynamicConfiguration) AddListener(key string, listener ConfigurationListener, _ ...Option) {
	c.listener[key] = listener
}
func (c *MockDynamicConfiguration) RemoveListener(_ string, _ ConfigurationListener, _ ...Option) {
}
func (c *MockDynamicConfiguration) GetConfig(_ string, _ ...Option) (string, error) {
	return c.content, nil
}