// Package filter ... // // Description : filter ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-01-01 17:00 package filter import ( "fmt" "testing" "github.com/smartystreets/goconvey/convey" ) // TestNewFilter ... // // Author : go_developer@163.com<白茶清欢> // // Date : 17:00 2023/1/1 func TestNewFilter(t *testing.T) { var ( err error ) testData := `{ "base":{ "name":"go_developer", "age":18, "height":180 }, "company":{ "name":"wajijiwa", "start":"2023-01-01" } }` filterRuleList := []MapRule{ { SourcePath: "base.name", MapPath: "user_name", Required: true, DataType: "string", DefaultValue: "", }, { SourcePath: "base.age", MapPath: "user_age", Required: true, DataType: "int", DefaultValue: "", }, { SourcePath: "base.height", MapPath: "user_height", Required: true, DataType: "string", DefaultValue: "", }, { SourcePath: "company.name", MapPath: "company_name", Required: true, DataType: "string", DefaultValue: "", }, { SourcePath: "company.start", MapPath: "company_start", Required: true, DataType: "string", DefaultValue: "", }, } f := NewFilter(testData, filterRuleList) convey.Convey("基础对象重写", t, func() { err = f.Deal() convey.So(err, convey.ShouldEqual, nil) fmt.Println(f.String()) }) } // TestNewFilterForArrayOne ... // // Author : go_developer@163.com<白茶清欢> // // Date : 21:43 2023/1/2 func TestNewFilterForArrayOne(t *testing.T) { var ( err error ) testData := `[ { "name":"zhangdeman" }, { "name":"zhang" }, { "name":"de" }, { "name":"man" } ]` filterRuleList := []MapRule{ { SourcePath: "[].name", MapPath: "user_name.[]", Required: true, DataType: "string", DefaultValue: "", }, } f := NewFilter(testData, filterRuleList) convey.Convey("提取列表字段,构成新的列表", t, func() { err = f.Deal() convey.So(err, convey.ShouldEqual, nil) fmt.Println(f.String()) }) } // TestNewFilterForArrayTwo ... // // Author : go_developer@163.com<白茶清欢> // // Date : 22:22 2023/1/2 func TestNewFilterForArrayTwo(t *testing.T) { var ( err error ) testData := `{"user_list":[ { "name":"zhangdeman1" }, { "name":"zhang1" }, { "name":"de1" }, { "name":"man1" } ]}` filterRuleList := []MapRule{ { SourcePath: "user_list.[].name", MapPath: "user.name_list.[]", Required: true, DataType: "string", DefaultValue: "", }, } f := NewFilter(testData, filterRuleList) convey.Convey("提取列表字段,构成新的列表", t, func() { err = f.Deal() convey.So(err, convey.ShouldEqual, nil) fmt.Println(f.String()) }) }