package test import ( "background/config" "background/db" "background/logs" "background/model" "background/utils" "fmt" "log" "reflect" "testing" "github.com/olivere/elastic" ) func InitConfig() { e := config.Init("../user.yaml") if nil != e { log.Println(e.Error()) } } func InitMysql() { c := config.GetMysqlConfig() if c == nil { logs.Error("cannnot connect mysql server") } else { db.Init() } } func InitRedisConfig() { e := config.InitRedis() if nil != e { logs.Error(e.Error()) return } } func InitElasticSearch() { e := db.GetElastic().CreateIndex("hardware", model.HardwareTypeMapping()) if nil != e { } } func InitLogs() { logs.Init(config.GetLogConfig().Dir, config.GetLogConfig().File, config.GetLogConfig().Level, config.GetLogConfig().SaveFile) } // 从mysql数据自动导出数据到es,从describe 表新建索引和mapping,然后全表导出到es // port data from mysql to es, it can describe table and create index with mapping ,then port all data to es. func TestPortDocToElastic(t *testing.T) { InitConfig() InitLogs() InitRedisConfig() InitMysql() db.InitELK() e := model.PortDocumentToElasticsearch("doc") if nil != e { log.Print(e.Error()) } } func TestReflect(t *testing.T) { type XX struct { A int16 `json:"bb"` B string `json: "cc" xml:"test"` } unmar := map[string]interface{}{ "bb": 2, "cc": "hello", } xx := XX{} utils.UnmarshalJson2Struct(&xx, unmar) log.Print(xx) } // 测试新建索引,查看mapping是否生效 // // test create new index,and check the mapping works // func TestCreateIndex(t *testing.T) { // InitConfig() // InitLogs() // InitRedisConfig() // InitMysql() // db.InitELK() // InitElasticSearch() // } // 测试query doc // test doc query works func TestQueryDoc(t *testing.T) { InitConfig() InitLogs() InitRedisConfig() InitMysql() db.InitELK() query := elastic.NewTermQuery("title", "c") x := []model.Doc{} _, e := db.GetElastic().Query("doc", query, &x, 10, 0) if nil != e { log.Print(e.Error()) } for _, v := range x { t.Logf(v.Title, " ", v.ID, " ", v.Type) } } func TestChangeStructFieldThroughStruct(t *testing.T) { var arr1 = []int{1, 2, 3} log.Print(reflect.ValueOf(&arr1).Kind()) a0 := reflect.ValueOf(&arr1).Elem() log.Print(a0.Kind()) e0 := make([]reflect.Value, 0) e0 = append(e0, reflect.ValueOf(100)) e0 = append(e0, reflect.ValueOf(200)) e0 = append(e0, reflect.ValueOf(300)) e0 = append(e0, reflect.ValueOf(400)) val_arr1 := reflect.Append(a0, e0...) a0.Set(val_arr1) fmt.Println("a0 is ", a0) fmt.Println("arr1 is ", arr1) fmt.Println(cap(e0)) fmt.Println(cap(arr1)) }