mirror of
https://github.com/alibaba/higress.git
synced 2026-03-04 16:40:50 +08:00
109 lines
2.6 KiB
Go
109 lines
2.6 KiB
Go
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
|
//
|
|
// 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.
|
|
|
|
package util
|
|
|
|
import (
|
|
"testing"
|
|
|
|
corev3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
|
|
wasm "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/wasm/v3"
|
|
v3 "github.com/envoyproxy/go-control-plane/envoy/extensions/wasm/v3"
|
|
any "google.golang.org/protobuf/types/known/anypb"
|
|
"istio.io/istio/pilot/pkg/model"
|
|
)
|
|
|
|
func TestSplitNamespacedName(t *testing.T) {
|
|
testCases := []struct {
|
|
input string
|
|
expect model.NamespacedName
|
|
}{
|
|
{
|
|
input: "",
|
|
},
|
|
{
|
|
input: "a/",
|
|
expect: model.NamespacedName{
|
|
Namespace: "a",
|
|
},
|
|
},
|
|
{
|
|
input: "a/b",
|
|
expect: model.NamespacedName{
|
|
Namespace: "a",
|
|
Name: "b",
|
|
},
|
|
},
|
|
{
|
|
input: "/b",
|
|
expect: model.NamespacedName{
|
|
Name: "b",
|
|
},
|
|
},
|
|
{
|
|
input: "b",
|
|
expect: model.NamespacedName{
|
|
Name: "b",
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, testCase := range testCases {
|
|
t.Run("", func(t *testing.T) {
|
|
result := SplitNamespacedName(testCase.input)
|
|
if result != testCase.expect {
|
|
t.Fatalf("expect is %v, but actual is %v", testCase.expect, result)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestCreateDestinationRuleName(t *testing.T) {
|
|
istioCluster := "gw-123-istio"
|
|
namespace := "default"
|
|
serviceName := "go-httpbin-v1"
|
|
t.Log(CreateDestinationRuleName(istioCluster, namespace, serviceName))
|
|
}
|
|
|
|
func TestMessageToGoGoStruct(t *testing.T) {
|
|
bytes := []byte("test")
|
|
wasm := &wasm.Wasm{
|
|
Config: &v3.PluginConfig{
|
|
Name: "basic-auth",
|
|
FailOpen: true,
|
|
Vm: &v3.PluginConfig_VmConfig{
|
|
VmConfig: &v3.VmConfig{
|
|
Runtime: "envoy.wasm.runtime.null",
|
|
Code: &corev3.AsyncDataSource{
|
|
Specifier: &corev3.AsyncDataSource_Local{
|
|
Local: &corev3.DataSource{
|
|
Specifier: &corev3.DataSource_InlineString{
|
|
InlineString: "envoy.wasm.basic_auth",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
Configuration: &any.Any{
|
|
TypeUrl: "type.googleapis.com/google.protobuf.StringValue",
|
|
Value: bytes,
|
|
},
|
|
},
|
|
}
|
|
|
|
gogoStruct, _ := MessageToGoGoStruct(wasm)
|
|
t.Log(gogoStruct)
|
|
}
|