blob: 1cd300bbf91be30cd8884e66326f3868f10aeec7 [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 etcdv3
import (
"strconv"
"testing"
"time"
)
import (
"github.com/stretchr/testify/assert"
)
import (
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
)
func initRegistry(t *testing.T) *etcdV3Registry {
regurl, err := common.NewURL("registry://127.0.0.1:2379", common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)))
if err != nil {
t.Fatal(err)
}
reg, err := newETCDV3Registry(regurl)
if err != nil {
t.Fatal(err)
}
out := reg.(*etcdV3Registry)
err = out.client.CleanKV()
assert.NoError(t, err)
return out
}
//
//func (suite *RegistryTestSuite) TestRegister() {
// t := suite.T()
//
// url, _ := common.NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider", common.WithParamsValue(constant.CLUSTER_KEY, "mock"), common.WithMethods([]string{"GetUser", "AddUser"}))
//
// reg := initRegistry(t)
// err := reg.Register(url)
// assert.NoError(t, err)
// children, _, err := reg.client.GetChildrenKVList("/dubbo/com.ikurento.user.UserProvider/providers")
// if err != nil {
// t.Fatal(err)
// }
// assert.Regexp(t, ".*dubbo%3A%2F%2F127.0.0.1%3A20000%2Fcom.ikurento.user.UserProvider%3Fanyhost%3Dtrue%26cluster%3Dmock", children)
// assert.NoError(t, err)
//}
//
//func (suite *RegistryTestSuite) TestSubscribe() {
// t := suite.T()
// regurl, _ := common.NewURL("registry://127.0.0.1:1111", common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)))
// url, _ := common.NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider", common.WithParamsValue(constant.CLUSTER_KEY, "mock"), common.WithMethods([]string{"GetUser", "AddUser"}))
//
// reg := initRegistry(t)
// // provider register
// err := reg.Register(url)
// if err != nil {
// t.Fatal(err)
// }
//
// // consumer register
// regurl.SetParam(constant.ROLE_KEY, strconv.Itoa(common.CONSUMER))
// reg2 := initRegistry(t)
//
// err = reg2.Register(url)
// assert.NoError(t, err)
// listener, err := reg2.DoSubscribe(url)
// if err != nil {
// t.Fatal(err)
// }
//
// serviceEvent, err := listener.Next()
// if err != nil {
// t.Fatal(err)
// }
// assert.Regexp(t, ".*ServiceEvent{Action{add}.*", serviceEvent.String())
//}
func (suite *RegistryTestSuite) TestConsumerDestroy() {
t := suite.T()
url, _ := common.NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider", common.WithParamsValue(constant.CLUSTER_KEY, "mock"), common.WithMethods([]string{"GetUser", "AddUser"}))
reg := initRegistry(t)
_, err := reg.DoSubscribe(url)
if err != nil {
t.Fatal(err)
}
// listener.Close()
time.Sleep(1e9)
reg.Destroy()
assert.Equal(t, false, reg.IsAvailable())
}
func (suite *RegistryTestSuite) TestProviderDestroy() {
t := suite.T()
reg := initRegistry(t)
url, _ := common.NewURL("dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider", common.WithParamsValue(constant.CLUSTER_KEY, "mock"), common.WithMethods([]string{"GetUser", "AddUser"}))
err := reg.Register(url)
assert.NoError(t, err)
// listener.Close()
time.Sleep(1e9)
reg.Destroy()
assert.Equal(t, false, reg.IsAvailable())
}