Browse Source

test: add test for config.go

wuhaolin 7 years ago
parent
commit
9bf3206f8a
3 changed files with 63 additions and 2 deletions
  1. 1 1
      .appveyor.yml
  2. 1 1
      .travis.yml
  3. 61 0
      cmd/config_test.go

+ 1 - 1
.appveyor.yml

@@ -13,4 +13,4 @@ install:
   - go get ./...
   - go get golang.org/x/net/proxy
 
-test_script: go test -bench=. -run=. ./...
+test_script: go test -cover -bench=. -run=. ./...

+ 1 - 1
.travis.yml

@@ -4,4 +4,4 @@ os:
 
 language: go
 
-script: go test -bench=. -run=. ./...
+script: go test -cover -bench=. -run=. ./...

+ 61 - 0
cmd/config_test.go

@@ -0,0 +1,61 @@
+package cmd
+
+import (
+	"testing"
+	"os"
+	"encoding/json"
+	"io/ioutil"
+)
+
+func clearConfigFile() {
+	os.Remove(configPath)
+}
+
+func TestConfigSaveConfig(t *testing.T) {
+	clearConfigFile()
+	config := Config{
+		ListenAddr: ":7474",
+		RemoteAddr: "do.wuhaolin.cn:45234",
+		Password:   "cGfU96a9o/sPM0bJ6xRPJiQCOSmfDF9UYNsAKhsxgfK2HWS1oAvQDXM10fVX5oz8g0Rr5WP2WkMGhupKXS83qDrTVSwJU2kwUT6Z7o90w5SJfpxJFnI9+oCwcZYY2QiIf1YixPMSEd2bs4XHk2IERdfc8RcofF6Hu6+Y6LoB1eyxeJ40dXsaJ1ClCkKEwZWRt8jvBYK0THoDqS4j6eQlYRDYB2w/59btHhydolt5ofBlwFkhOyCOH6zLjeOLxUCnd2hYR63KikGuvOFO3g4TS88rMpBNxjbgzH2Xbs4VSGqqwv8t0s1S+TiSvvQ8pKttXLni32a/2v12mrL+uPhvGQ==",
+	}
+	config.SaveConfig()
+
+	file, err := os.Open(configPath)
+	if err != nil {
+		t.Errorf("打开配置文件 %s 出错:%s", configPath, err)
+	}
+	defer file.Close()
+
+	tmp := make(map[string]string)
+	err = json.NewDecoder(file).Decode(&tmp)
+	if err != nil {
+		t.Error(err)
+	}
+
+	if tmp["listen"] != ":7474" || tmp["password"] != "cGfU96a9o/sPM0bJ6xRPJiQCOSmfDF9UYNsAKhsxgfK2HWS1oAvQDXM10fVX5oz8g0Rr5WP2WkMGhupKXS83qDrTVSwJU2kwUT6Z7o90w5SJfpxJFnI9+oCwcZYY2QiIf1YixPMSEd2bs4XHk2IERdfc8RcofF6Hu6+Y6LoB1eyxeJ40dXsaJ1ClCkKEwZWRt8jvBYK0THoDqS4j6eQlYRDYB2w/59btHhydolt5ofBlwFkhOyCOH6zLjeOLxUCnd2hYR63KikGuvOFO3g4TS88rMpBNxjbgzH2Xbs4VSGqqwv8t0s1S+TiSvvQ8pKttXLni32a/2v12mrL+uPhvGQ==" || tmp["remote"] != "do.wuhaolin.cn:45234" {
+		t.Error("数据保存后不一致")
+	}
+}
+
+func TestConfigReadConfig(t *testing.T) {
+	clearConfigFile()
+	jsonConfig := []byte(`
+{
+	"listen": ":7474",
+	"remote": "do.wuhaolin.cn:45234",
+	"password": "cGfU96a9o/sPM0bJ6xRPJiQCOSmfDF9UYNsAKhsxgfK2HWS1oAvQDXM10fVX5oz8g0Rr5WP2WkMGhupKXS83qDrTVSwJU2kwUT6Z7o90w5SJfpxJFnI9+oCwcZYY2QiIf1YixPMSEd2bs4XHk2IERdfc8RcofF6Hu6+Y6LoB1eyxeJ40dXsaJ1ClCkKEwZWRt8jvBYK0THoDqS4j6eQlYRDYB2w/59btHhydolt5ofBlwFkhOyCOH6zLjeOLxUCnd2hYR63KikGuvOFO3g4TS88rMpBNxjbgzH2Xbs4VSGqqwv8t0s1S+TiSvvQ8pKttXLni32a/2v12mrL+uPhvGQ=="
+}`)
+
+	err := ioutil.WriteFile(configPath, jsonConfig, 0644)
+	if err != nil {
+		t.Error(err)
+	}
+
+	config := Config{}
+	config.ReadConfig()
+
+	if config.ListenAddr != ":7474" || config.RemoteAddr != "do.wuhaolin.cn:45234" || config.Password != "cGfU96a9o/sPM0bJ6xRPJiQCOSmfDF9UYNsAKhsxgfK2HWS1oAvQDXM10fVX5oz8g0Rr5WP2WkMGhupKXS83qDrTVSwJU2kwUT6Z7o90w5SJfpxJFnI9+oCwcZYY2QiIf1YixPMSEd2bs4XHk2IERdfc8RcofF6Hu6+Y6LoB1eyxeJ40dXsaJ1ClCkKEwZWRt8jvBYK0THoDqS4j6eQlYRDYB2w/59btHhydolt5ofBlwFkhOyCOH6zLjeOLxUCnd2hYR63KikGuvOFO3g4TS88rMpBNxjbgzH2Xbs4VSGqqwv8t0s1S+TiSvvQ8pKttXLni32a/2v12mrL+uPhvGQ==" {
+		t.Error("读取的配置数据不一致")
+	}
+
+}