Skip to content
Snippets Groups Projects
config_loader_test.go 2.28 KiB
Newer Older
fangyincheng's avatar
fangyincheng committed
// Copyright 2016-2019 Yincheng Fang
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

vito.he's avatar
vito.he committed
package config
fangyincheng's avatar
fangyincheng committed

import (
	"github.com/dubbo/go-for-apache-dubbo/common/proxy/proxy_factory"
fangyincheng's avatar
fangyincheng committed
	"path/filepath"
	"testing"
)

import (
	"github.com/stretchr/testify/assert"
)

import (
	"github.com/dubbo/go-for-apache-dubbo/cluster/cluster_impl"
	"github.com/dubbo/go-for-apache-dubbo/common"
	"github.com/dubbo/go-for-apache-dubbo/common/extension"
)

fangyincheng's avatar
fangyincheng committed
func TestConfigLoader(t *testing.T) {
fangyincheng's avatar
fangyincheng committed
	conPath, err := filepath.Abs("./testdata/consumer_config.yml")
fangyincheng's avatar
fangyincheng committed
	assert.NoError(t, err)
fangyincheng's avatar
fangyincheng committed
	proPath, err := filepath.Abs("./testdata/provider_config.yml")
fangyincheng's avatar
fangyincheng committed
	assert.NoError(t, err)

	assert.Nil(t, consumerConfig)
fangyincheng's avatar
fangyincheng committed
	assert.Equal(t, ConsumerConfig{}, GetConsumerConfig())
fangyincheng's avatar
fangyincheng committed
	assert.Nil(t, providerConfig)
fangyincheng's avatar
fangyincheng committed
	assert.Equal(t, ProviderConfig{}, GetProviderConfig())
fangyincheng's avatar
fangyincheng committed

	err = consumerInit(conPath)
	assert.NoError(t, err)
	err = providerInit(proPath)
	assert.NoError(t, err)

	assert.NotNil(t, consumerConfig)
fangyincheng's avatar
fangyincheng committed
	assert.NotEqual(t, ConsumerConfig{}, GetConsumerConfig())
fangyincheng's avatar
fangyincheng committed
	assert.NotNil(t, providerConfig)
fangyincheng's avatar
fangyincheng committed
	assert.NotEqual(t, ProviderConfig{}, GetProviderConfig())
fangyincheng's avatar
fangyincheng committed
}

func TestLoad(t *testing.T) {
	doInit()
	doinit()

fangyincheng's avatar
fangyincheng committed
	SetConsumerService(&MockService{})
	SetProviderService(&MockService{})

	extension.SetProtocol("registry", GetProtocol)
	extension.SetCluster("registryAware", cluster_impl.NewRegistryAwareCluster)
	extension.SetProxyFactory("default", proxy_factory.NewDefaultProxyFactory)
	consumerConfig.References[0].Registries = []ConfigRegistry{"shanghai_reg1"}

	refConfigs, svcConfigs := Load()
	assert.NotEqual(t, 0, len(refConfigs))
	assert.NotEqual(t, 0, len(svcConfigs))

	conServices = map[string]common.RPCService{}
	proServices = map[string]common.RPCService{}
	common.ServiceMap.UnRegister("mock", "MockService")
	consumerConfig = nil
	providerConfig = nil
}