/* ** Zabbix ** Copyright 2001-2024 Zabbix SIA ** ** 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 plugin import ( "fmt" "reflect" "strings" "testing" "golang.zabbix.com/sdk/metric" ) func Test_getParameters(t *testing.T) { type args struct { additional *additionalParam } tests := []struct { name string args args want []*metric.Param }{ { "common parameters", args{nil}, []*metric.Param{ paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect, paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile, paramCacheMode, }, }, { "empty additions map", args{&additionalParam{}}, []*metric.Param{ paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect, paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile, paramCacheMode, }, }, { "with additional parameter", args{ &additionalParam{ param: metric.NewParam("test", "Foo bar."), position: 4, }, }, []*metric.Param{ paramURI, paramUsername, paramPassword, paramDatabase, metric.NewParam("test", "Foo bar."), paramTLSConnect, paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile, paramCacheMode, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := getParameters(tt.args.additional); !reflect.DeepEqual(got, tt.want) { var gotString, wantString string for _, v := range got { gotString = fmt.Sprintf("%s %+v", gotString, v) } for _, v := range tt.want { wantString = fmt.Sprintf("%s %+v", wantString, v) } t.Errorf("getParameters() = %v,\n want %v", strings.TrimSpace(gotString), strings.TrimSpace(wantString)) } }) } }