github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/grpc/internal/metadata/metadata_test.go (about) 1 /* 2 * 3 * Copyright 2020 gRPC authors. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 package metadata 20 21 import ( 22 "testing" 23 24 "github.com/google/go-cmp/cmp" 25 "github.com/hxx258456/ccgo/grpc/attributes" 26 "github.com/hxx258456/ccgo/grpc/metadata" 27 "github.com/hxx258456/ccgo/grpc/resolver" 28 ) 29 30 func TestGet(t *testing.T) { 31 tests := []struct { 32 name string 33 addr resolver.Address 34 want metadata.MD 35 }{ 36 { 37 name: "not set", 38 addr: resolver.Address{}, 39 want: nil, 40 }, 41 { 42 name: "not set", 43 addr: resolver.Address{ 44 Attributes: attributes.New(mdKey, mdValue(metadata.Pairs("k", "v"))), 45 }, 46 want: metadata.Pairs("k", "v"), 47 }, 48 } 49 for _, tt := range tests { 50 t.Run(tt.name, func(t *testing.T) { 51 if got := Get(tt.addr); !cmp.Equal(got, tt.want) { 52 t.Errorf("Get() = %v, want %v", got, tt.want) 53 } 54 }) 55 } 56 } 57 58 func TestSet(t *testing.T) { 59 tests := []struct { 60 name string 61 addr resolver.Address 62 md metadata.MD 63 }{ 64 { 65 name: "unset before", 66 addr: resolver.Address{}, 67 md: metadata.Pairs("k", "v"), 68 }, 69 { 70 name: "set before", 71 addr: resolver.Address{ 72 Attributes: attributes.New(mdKey, mdValue(metadata.Pairs("bef", "ore"))), 73 }, 74 md: metadata.Pairs("k", "v"), 75 }, 76 } 77 for _, tt := range tests { 78 t.Run(tt.name, func(t *testing.T) { 79 newAddr := Set(tt.addr, tt.md) 80 newMD := Get(newAddr) 81 if !cmp.Equal(newMD, tt.md) { 82 t.Errorf("md after Set() = %v, want %v", newMD, tt.md) 83 } 84 }) 85 } 86 }