package properties import ( "fmt" "testing" ) func Test_properties_GetString(t *testing.T) { pro, err := ReadFromString(test) if err != nil { t.Fatal(err) } fmt.Println(pro.GetString("# logger key")) fmt.Println(pro.GetInt64("key2")) fmt.Println(pro.GetFloat64("key3")) fmt.Println(pro.GetBool("key4")) fmt.Println(pro.GetUint64("key5", 10)) fmt.Println(pro.GetAll()) } var ( test = ` # logger key=velue log.access_log = /data/log/go-template/access.log log.monitor_log = /data/log/go-template/monitor.log log.task_log = /data/log/go-template/task.log log.third_log = /data/log/go-template/third.log log.project_log = /data/log/go-template/go-template.log # mysql mysql.host = 10.9.198.84 mysql.port = 3306 mysql.user = aaa mysql.password = aaa@2014 mysql.dbname = aaa mysql.slave_host = 10.9.198.84 mysql.slave_port = 3306 mysql.slave_user = aaa mysql.slave_password = aaa@2014 mysql.slave_dbname = aaa mysql.log_file=/data/log/go-template/aaa.log # nacos nacos.server_port=13058 ebike-factory-api.service_name=ebike-factory-api ebike-factory-api.group_name=DEFAULT_GROUP ebike-factory-api.clusters=DEFAULT localcache.refresh_time=600 localcache.demo=10 ` test2 = ` # logger key=velue log.access_log = /data/log/go-template/access.log log.monitor_log = /data/log/go-template/monitor.log log.task_log = /data/log/go-template/task.log log.third_log = /data/log/go-template/third.log log.project_log = /data/log/go-template/go-template.log # nacos nacos.server_port=13059 ebike-factory-api.service_name=ebike-factory-api ebike-factory-api.group_name=DEFAULT_GROUP ebike-factory-api.clusters=DEFAULT localcache.refresh_time=600 localcache.demo=10 trace.sky_walking_host = localhost:11800 trace.application_name = go-template_dev ` ) func Test_properties_DiffProperties(t *testing.T) { pro, err := ReadFromString(test) if err != nil { t.Fatal(err) } pro2, err := ReadFromString(test2) if err != nil { t.Fatal(err) } printProperties := func(config map[string]string) string { if config == nil || len(config) == 0 { return " No Changed\n" } result := " Find Changed\n" count := len(config) num := 0 for key, value := range config { num++ result = result + key + " = " + value if num < count { result = result + "\n" } } return result + "\n" } printDiffPorperties := func(config map[string][]string) string { if config == nil || len(config) == 0 { return " No Changed\n" } result := " Find Changed\n" count := len(config) num := 0 for key, value := range config { num++ if value == nil || len(value) < 2 { continue } result = result + "old: " + key + " = " + value[0] + "\n" result = result + "new: " + key + " = " + value[1] if num < count { result = result + "\n" } } return result } _, _, changeMap := pro.DiffProperties(pro2) fmt.Printf("[nacos] delete-config:%s[nacos] add-config:%s[nacos] change-config:%s", printProperties(nil), printProperties(nil), printDiffPorperties(changeMap)) }