add test
This commit is contained in:
		
							parent
							
								
									e6f22deb49
								
							
						
					
					
						commit
						4fa99f16bd
					
				
							
								
								
									
										9
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					kind: pipeline
 | 
				
			||||||
 | 
					name: build_release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - name: test and build
 | 
				
			||||||
 | 
					    image: golang
 | 
				
			||||||
 | 
					    commands:
 | 
				
			||||||
 | 
					      - go test
 | 
				
			||||||
 | 
					      - go build
 | 
				
			||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					config.yml
 | 
				
			||||||
							
								
								
									
										3
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								go.mod
									
									
									
									
									
								
							@ -4,5 +4,8 @@ go 1.12
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
require (
 | 
					require (
 | 
				
			||||||
	git.trj.tw/golang/utils v0.0.0-20190225142552-b019626f0349
 | 
						git.trj.tw/golang/utils v0.0.0-20190225142552-b019626f0349
 | 
				
			||||||
 | 
						github.com/json-iterator/go v1.1.6
 | 
				
			||||||
 | 
						github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 | 
				
			||||||
 | 
						github.com/modern-go/reflect2 v1.0.1 // indirect
 | 
				
			||||||
	gopkg.in/yaml.v2 v2.2.2
 | 
						gopkg.in/yaml.v2 v2.2.2
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										7
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								go.sum
									
									
									
									
									
								
							@ -1,5 +1,12 @@
 | 
				
			|||||||
git.trj.tw/golang/utils v0.0.0-20190225142552-b019626f0349 h1:V6ifeiJ3ExnjaUylTOz37n6z5uLwm6fjKjnztbTCaQI=
 | 
					git.trj.tw/golang/utils v0.0.0-20190225142552-b019626f0349 h1:V6ifeiJ3ExnjaUylTOz37n6z5uLwm6fjKjnztbTCaQI=
 | 
				
			||||||
git.trj.tw/golang/utils v0.0.0-20190225142552-b019626f0349/go.mod h1:yE+qbsUsijCTdwsaQRkPT1CXYk7ftMzXsCaaYx/0QI0=
 | 
					git.trj.tw/golang/utils v0.0.0-20190225142552-b019626f0349/go.mod h1:yE+qbsUsijCTdwsaQRkPT1CXYk7ftMzXsCaaYx/0QI0=
 | 
				
			||||||
 | 
					github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs=
 | 
				
			||||||
 | 
					github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 | 
				
			||||||
 | 
					github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 | 
				
			||||||
 | 
					github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 | 
				
			||||||
 | 
					github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
 | 
				
			||||||
 | 
					github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 | 
				
			||||||
 | 
					gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 | 
				
			||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
					gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
 | 
					gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										17
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								main.go
									
									
									
									
									
								
							@ -4,6 +4,7 @@ import (
 | 
				
			|||||||
	"log"
 | 
						"log"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"git.trj.tw/golang/go-ddns-client/module/config"
 | 
						"git.trj.tw/golang/go-ddns-client/module/config"
 | 
				
			||||||
 | 
						"git.trj.tw/golang/go-ddns-client/module/ddns"
 | 
				
			||||||
	"git.trj.tw/golang/go-ddns-client/module/option"
 | 
						"git.trj.tw/golang/go-ddns-client/module/option"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -19,4 +20,20 @@ func main() {
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Fatal(err)
 | 
							log.Fatal(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						data, err := ddns.GetDNSSetting()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							log.Fatal(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if len(data.V4) > 0 {
 | 
				
			||||||
 | 
							if err = ddns.SendRequest(true, data.V4); err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if len(data.V6) > 0 {
 | 
				
			||||||
 | 
							if err = ddns.SendRequest(false, data.V6); err != nil {
 | 
				
			||||||
 | 
								log.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -71,4 +71,31 @@ func LoadConfig(p ...string) error {
 | 
				
			|||||||
func GetConfig() *Config { return conf }
 | 
					func GetConfig() *Config { return conf }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetV4Data -
 | 
					// GetV4Data -
 | 
				
			||||||
func (p DomainData) GetV4Data() {}
 | 
					func (p DomainData) GetV4Data() DomainData {
 | 
				
			||||||
 | 
						domain := DomainData{}
 | 
				
			||||||
 | 
						domain.Name = p.Name
 | 
				
			||||||
 | 
						if len(p.Records) == 0 {
 | 
				
			||||||
 | 
							return domain
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, it := range p.Records {
 | 
				
			||||||
 | 
							if it.Type == "A" {
 | 
				
			||||||
 | 
								domain.Records = append(domain.Records, it)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return domain
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetV6Data -
 | 
				
			||||||
 | 
					func (p DomainData) GetV6Data() DomainData {
 | 
				
			||||||
 | 
						domain := DomainData{}
 | 
				
			||||||
 | 
						domain.Name = p.Name
 | 
				
			||||||
 | 
						if len(p.Records) == 0 {
 | 
				
			||||||
 | 
							return domain
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, it := range p.Records {
 | 
				
			||||||
 | 
							if it.Type == "AAAA" {
 | 
				
			||||||
 | 
								domain.Records = append(domain.Records, it)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return domain
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										78
									
								
								module/config/config_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								module/config/config_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					package config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"os"
 | 
				
			||||||
 | 
						"path"
 | 
				
			||||||
 | 
						"reflect"
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestLoadConfig(t *testing.T) {
 | 
				
			||||||
 | 
						wd, err := os.Getwd()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							t.Fatal(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						p := path.Join(wd, "../..", "config.default.yml")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						err = LoadConfig(p)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							t.Fatal(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestGetConfig(t *testing.T) {
 | 
				
			||||||
 | 
						conf := GetConfig()
 | 
				
			||||||
 | 
						if conf == nil {
 | 
				
			||||||
 | 
							t.Fail()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestDomainData_GetV6Data(t *testing.T) {
 | 
				
			||||||
 | 
						type fields struct {
 | 
				
			||||||
 | 
							Name    string
 | 
				
			||||||
 | 
							Records []RecordData
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						tests := []struct {
 | 
				
			||||||
 | 
							name   string
 | 
				
			||||||
 | 
							fields fields
 | 
				
			||||||
 | 
							want   DomainData
 | 
				
			||||||
 | 
						}{
 | 
				
			||||||
 | 
							// TODO: Add test cases.
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, tt := range tests {
 | 
				
			||||||
 | 
							t.Run(tt.name, func(t *testing.T) {
 | 
				
			||||||
 | 
								p := DomainData{
 | 
				
			||||||
 | 
									Name:    tt.fields.Name,
 | 
				
			||||||
 | 
									Records: tt.fields.Records,
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if got := p.GetV6Data(); !reflect.DeepEqual(got, tt.want) {
 | 
				
			||||||
 | 
									t.Errorf("DomainData.GetV6Data() = %v, want %v", got, tt.want)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestDomainData_GetV4Data(t *testing.T) {
 | 
				
			||||||
 | 
						type fields struct {
 | 
				
			||||||
 | 
							Name    string
 | 
				
			||||||
 | 
							Records []RecordData
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						tests := []struct {
 | 
				
			||||||
 | 
							name   string
 | 
				
			||||||
 | 
							fields fields
 | 
				
			||||||
 | 
							want   DomainData
 | 
				
			||||||
 | 
						}{
 | 
				
			||||||
 | 
							// TODO: Add test cases.
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, tt := range tests {
 | 
				
			||||||
 | 
							t.Run(tt.name, func(t *testing.T) {
 | 
				
			||||||
 | 
								p := DomainData{
 | 
				
			||||||
 | 
									Name:    tt.fields.Name,
 | 
				
			||||||
 | 
									Records: tt.fields.Records,
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if got := p.GetV4Data(); !reflect.DeepEqual(got, tt.want) {
 | 
				
			||||||
 | 
									t.Errorf("DomainData.GetV4Data() = %v, want %v", got, tt.want)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -2,24 +2,117 @@ package ddns
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"errors"
 | 
						"errors"
 | 
				
			||||||
 | 
						"io/ioutil"
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
 | 
						"net/http"
 | 
				
			||||||
 | 
						"net/textproto"
 | 
				
			||||||
 | 
						"net/url"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"bytes"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"git.trj.tw/golang/go-ddns-client/module/config"
 | 
						"git.trj.tw/golang/go-ddns-client/module/config"
 | 
				
			||||||
 | 
						jsoniter "github.com/json-iterator/go"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var json = jsoniter.ConfigCompatibleWithStandardLibrary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Errors
 | 
					// Errors
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	ErrNoDomain = errors.New("No Domain Setting")
 | 
						ErrNoDomain = errors.New("No Domain Setting")
 | 
				
			||||||
 | 
						ErrAPIResp  = errors.New("api call not success")
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SendDNSSetting -
 | 
					// DNSSetting -
 | 
				
			||||||
func SendDNSSetting() error {
 | 
					type DNSSetting struct {
 | 
				
			||||||
 | 
						V4 []config.DomainData
 | 
				
			||||||
 | 
						V6 []config.DomainData
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetDNSSetting -
 | 
				
			||||||
 | 
					func GetDNSSetting() (DNSSetting, error) {
 | 
				
			||||||
 | 
						setting := DNSSetting{}
 | 
				
			||||||
	conf := config.GetConfig()
 | 
						conf := config.GetConfig()
 | 
				
			||||||
	if len(conf.Domains) == 0 {
 | 
						if len(conf.Domains) == 0 {
 | 
				
			||||||
		return ErrNoDomain
 | 
							return setting, ErrNoDomain
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						v4Data := make([]config.DomainData, 0)
 | 
				
			||||||
 | 
						v6Data := make([]config.DomainData, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for _, it := range conf.Domains {
 | 
				
			||||||
 | 
							v4 := it.GetV4Data()
 | 
				
			||||||
 | 
							if len(v4.Records) > 0 {
 | 
				
			||||||
 | 
								v4Data = append(v4Data, v4)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							v6 := it.GetV6Data()
 | 
				
			||||||
 | 
							if len(v6.Records) > 0 {
 | 
				
			||||||
 | 
								v6Data = append(v6Data, v6)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						setting.V4 = v4Data
 | 
				
			||||||
 | 
						setting.V6 = v6Data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return setting, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SendRequest -
 | 
				
			||||||
 | 
					func SendRequest(v4 bool, data []config.DomainData) error {
 | 
				
			||||||
 | 
						conf := config.GetConfig()
 | 
				
			||||||
 | 
						var baseURL string
 | 
				
			||||||
 | 
						if v4 {
 | 
				
			||||||
 | 
							baseURL = conf.URL.V4
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							baseURL = conf.URL.V6
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						token := conf.VerifyValue
 | 
				
			||||||
 | 
						if len(baseURL) == 0 || len(token) == 0 {
 | 
				
			||||||
 | 
							return errors.New("server setting error")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						body := struct {
 | 
				
			||||||
 | 
							Domains []config.DomainData `json:"domains"`
 | 
				
			||||||
 | 
						}{}
 | 
				
			||||||
 | 
						body.Domains = data
 | 
				
			||||||
 | 
						byteData, err := json.Marshal(body)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						log.Println("send data :: ", string(byteData))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						apiURL, err := url.Parse(baseURL)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						apiURL, err = apiURL.Parse("/api/ddns")
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reader := bytes.NewReader(byteData)
 | 
				
			||||||
 | 
						req, err := http.NewRequest("POST", apiURL.String(), reader)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						req.Header.Set(textproto.CanonicalMIMEHeaderKey("X-Mtfos-Key"), token)
 | 
				
			||||||
 | 
						req.Header.Set(textproto.CanonicalMIMEHeaderKey("Content-Type"), "application/json")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						resp, err := http.DefaultClient.Do(req)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						defer resp.Body.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bodyByte, err := ioutil.ReadAll(resp.Body)
 | 
				
			||||||
 | 
						if err == nil {
 | 
				
			||||||
 | 
							log.Println("body ::: ", string(bodyByte))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if resp.StatusCode != 200 {
 | 
				
			||||||
 | 
							return ErrAPIResp
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
func parseConf(domains []config.DomainData) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										28
									
								
								module/ddns/ddns_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								module/ddns/ddns_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					package ddns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"reflect"
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestGetDNSSetting(t *testing.T) {
 | 
				
			||||||
 | 
						tests := []struct {
 | 
				
			||||||
 | 
							name    string
 | 
				
			||||||
 | 
							want    DNSSetting
 | 
				
			||||||
 | 
							wantErr bool
 | 
				
			||||||
 | 
						}{
 | 
				
			||||||
 | 
							// TODO: Add test cases.
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, tt := range tests {
 | 
				
			||||||
 | 
							t.Run(tt.name, func(t *testing.T) {
 | 
				
			||||||
 | 
								got, err := GetDNSSetting()
 | 
				
			||||||
 | 
								if (err != nil) != tt.wantErr {
 | 
				
			||||||
 | 
									t.Errorf("GetDNSSetting() error = %v, wantErr %v", err, tt.wantErr)
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if !reflect.DeepEqual(got, tt.want) {
 | 
				
			||||||
 | 
									t.Errorf("GetDNSSetting() = %v, want %v", got, tt.want)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -17,7 +17,6 @@ func RegOptions() {
 | 
				
			|||||||
	flag.StringVar(&opts.Config, "config", "", "config file path - default: `pwd/config.yml`")
 | 
						flag.StringVar(&opts.Config, "config", "", "config file path - default: `pwd/config.yml`")
 | 
				
			||||||
	flag.StringVar(&opts.Config, "f", "", "config file path - default: `pwd/config.yml`")
 | 
						flag.StringVar(&opts.Config, "f", "", "config file path - default: `pwd/config.yml`")
 | 
				
			||||||
	flag.BoolVar(&opts.Help, "help", false, "show help")
 | 
						flag.BoolVar(&opts.Help, "help", false, "show help")
 | 
				
			||||||
	flag.BoolVar(&opts.Once, "once", false, "run once")
 | 
					 | 
				
			||||||
	flag.Parse()
 | 
						flag.Parse()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										35
									
								
								module/option/option_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								module/option/option_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					package option
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"reflect"
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestRegOptions(t *testing.T) {
 | 
				
			||||||
 | 
						tests := []struct {
 | 
				
			||||||
 | 
							name string
 | 
				
			||||||
 | 
						}{
 | 
				
			||||||
 | 
							// TODO: Add test cases.
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, tt := range tests {
 | 
				
			||||||
 | 
							t.Run(tt.name, func(t *testing.T) {
 | 
				
			||||||
 | 
								RegOptions()
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestGetOptions(t *testing.T) {
 | 
				
			||||||
 | 
						tests := []struct {
 | 
				
			||||||
 | 
							name string
 | 
				
			||||||
 | 
							want *Options
 | 
				
			||||||
 | 
						}{
 | 
				
			||||||
 | 
							// TODO: Add test cases.
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, tt := range tests {
 | 
				
			||||||
 | 
							t.Run(tt.name, func(t *testing.T) {
 | 
				
			||||||
 | 
								if got := GetOptions(); !reflect.DeepEqual(got, tt.want) {
 | 
				
			||||||
 | 
									t.Errorf("GetOptions() = %v, want %v", got, tt.want)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user