// Copyright 2022 EMQ Technologies Co., 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 conf import ( "fmt" "reflect" "testing" ) func TestSourceConfValidate(t *testing.T) { var tests = []struct { s *SourceConf e *SourceConf err string }{ { s: &SourceConf{}, e: &SourceConf{ HttpServerIp: "0.0.0.0", HttpServerPort: 10081, }, err: "invalidHttpServerPort:httpServerPort must between 0 and 65535", }, { s: &SourceConf{ HttpServerIp: "192.168.0.1", }, e: &SourceConf{ HttpServerIp: "192.168.0.1", HttpServerPort: 10081, }, err: "invalidHttpServerPort:httpServerPort must between 0 and 65535", }, { s: &SourceConf{ HttpServerPort: 99999, }, e: &SourceConf{ HttpServerIp: "0.0.0.0", HttpServerPort: 10081, }, err: "invalidHttpServerPort:httpServerPort must between 0 and 65535", }, { s: &SourceConf{ HttpServerPort: 9090, HttpServerTls: &tlsConf{ Certfile: "certfile", Keyfile: "keyfile", }, }, e: &SourceConf{ HttpServerIp: "0.0.0.0", HttpServerPort: 9090, HttpServerTls: &tlsConf{ Certfile: "certfile", Keyfile: "keyfile", }, }, }, } fmt.Printf("The test bucket size is %d.\n\n", len(tests)) for i, tt := range tests { err := tt.s.Validate() if err != nil && tt.err != err.Error() { t.Errorf("%d: error mismatch:\n exp=%s\n got=%s\n\n", i, tt.err, err) } if !reflect.DeepEqual(tt.s, tt.e) { t.Errorf("%d\n\nstmt mismatch:\n\nexp=%#v\n\ngot=%#v\n\n", i, tt.s, tt.e) } } }