blob: c8754a01559ca20306b5d91e102e70f421f3d957 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
package nacos
//import (
// "math/rand"
// "strconv"
// "testing"
// "time"
//)
//
//import (
// gxset "github.com/dubbogo/gost/container/set"
// "github.com/stretchr/testify/assert"
//)
//
//import (
// "dubbo.apache.org/dubbo-go/v3/common/constant"
// "dubbo.apache.org/dubbo-go/v3/common/extension"
// "dubbo.apache.org/dubbo-go/v3/config"
// "dubbo.apache.org/dubbo-go/v3/metadata/mapping"
// "dubbo.apache.org/dubbo-go/v3/registry"
// "dubbo.apache.org/dubbo-go/v3/registry/event"
//)
//
//var testName = "test"
//
//func Test_newNacosServiceDiscovery(t *testing.T) {
// name := "nacos1"
// _, err := newNacosServiceDiscovery(name)
//
// // the ServiceDiscoveryConfig not found
// assert.NotNil(t, err)
//
// sdc := &config.ServiceDiscoveryConfig{
// Protocol: "nacos",
// RemoteRef: "mock",
// }
// config.GetBaseConfig().ServiceDiscoveries[name] = sdc
//
// _, err = newNacosServiceDiscovery(name)
//
// // RemoteConfig not found
// assert.NotNil(t, err)
//
// config.GetBaseConfig().Remotes["mock"] = &config.RemoteConfig{
// Address: "console.nacos.io:80",
// TimeoutStr: "10s",
// }
//
// res, err := newNacosServiceDiscovery(name)
// assert.Nil(t, err)
// assert.NotNil(t, res)
//}
//
//func TestNacosServiceDiscovery_CRUD(t *testing.T) {
// if !checkNacosServerAlive() {
// return
// }
// prepareData()
//
// extension.SetGlobalServiceNameMapping(func() mapping.ServiceNameMapping {
// return mapping.NewMockServiceNameMapping()
// })
//
// rand.Seed(time.Now().Unix())
// serviceName := "service-name" + strconv.Itoa(rand.Intn(10000))
// id := "id"
// host := "host"
// port := 123
// instance := &registry.DefaultServiceInstance{
// ID: id,
// ServiceName: serviceName,
// Host: host,
// Port: port,
// Enable: true,
// Healthy: true,
// Metadata: nil,
// }
//
// // clean data
// serviceDiscovery, err := extension.GetServiceDiscovery(constant.NACOS_KEY, testName)
// assert.Nil(t, err)
//
// // clean data for local test
// err = serviceDiscovery.Unregister(&registry.DefaultServiceInstance{
// ID: id,
// ServiceName: serviceName,
// Host: host,
// Port: port,
// })
// assert.Nil(t, err)
//
// err = serviceDiscovery.Register(instance)
//
// assert.Nil(t, err)
//
// // sometimes nacos may be failed to push update of instance,
// // so it need 10s to pull, we sleep 10 second to make sure instance has been update
// time.Sleep(5 * time.Second)
// page := serviceDiscovery.GetHealthyInstancesByPage(serviceName, 0, 10, true)
// assert.NotNil(t, page)
// assert.Equal(t, 0, page.GetOffset())
// assert.Equal(t, 10, page.GetPageSize())
// assert.Equal(t, 1, page.GetDataSize())
//
// instance = page.GetData()[0].(*registry.DefaultServiceInstance)
// instance.ServiceName = serviceName
// assert.NotNil(t, instance)
// assert.Equal(t, id, instance.GetID())
// assert.Equal(t, host, instance.GetHost())
// assert.Equal(t, port, instance.GetPort())
// // TODO: console.nacos.io has updated to nacos 2.0 and serviceName has changed in 2.0, so ignore temporarily.
// // assert.Equal(t, serviceName, instance.GetServiceName())
// assert.Equal(t, 0, len(instance.GetMetadata()))
//
// instance.Metadata["a"] = "b"
// err = serviceDiscovery.Update(instance)
// assert.Nil(t, err)
//
// time.Sleep(5 * time.Second)
// pageMap := serviceDiscovery.GetRequestInstances([]string{serviceName}, 0, 1)
// assert.Equal(t, 1, len(pageMap))
//
// page = pageMap[serviceName]
// assert.NotNil(t, page)
// assert.Equal(t, 1, len(page.GetData()))
//
// instance = page.GetData()[0].(*registry.DefaultServiceInstance)
// v, ok := instance.Metadata["a"]
// assert.True(t, ok)
// assert.Equal(t, "b", v)
//
// // test dispatcher event
// hs := gxset.NewSet()
// hs.Add(serviceName)
// // test AddListener
// err = serviceDiscovery.AddListener(event.NewServiceInstancesChangedListener(hs))
// assert.Nil(t, err)
//}
//
//func TestNacosServiceDiscovery_GetDefaultPageSize(t *testing.T) {
// prepareData()
// serviceDiscovery, _ := extension.GetServiceDiscovery(constant.NACOS_KEY, testName)
// assert.Equal(t, registry.DefaultPageSize, serviceDiscovery.GetDefaultPageSize())
//}
//
//func TestNacosServiceDiscovery_Destroy(t *testing.T) {
// prepareData()
// serviceDiscovery, err := extension.GetServiceDiscovery(constant.NACOS_KEY, testName)
// assert.Nil(t, err)
// assert.NotNil(t, serviceDiscovery)
// err = serviceDiscovery.Destroy()
// assert.Nil(t, err)
//}
//
//func prepareData() {
// config.GetBaseConfig().ServiceDiscoveries[testName] = &config.ServiceDiscoveryConfig{
// Protocol: "nacos",
// RemoteRef: testName,
// }
//
// config.GetBaseConfig().Remotes[testName] = &config.RemoteConfig{
// Address: "console.nacos.io:80",
// TimeoutStr: "10s",
// }
//}