131 lines
2.6 KiB
Go
131 lines
2.6 KiB
Go
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))
|
||
}
|