func testUDF_WritePoint(u udf.Interface, uio *udf_test.IO, t *testing.T) { go func() { req := <-uio.Requests _, ok := req.Message.(*udf.Request_Init) if !ok { t.Errorf("expected init message got %T", req.Message) } res := &udf.Response{ Message: &udf.Response_Init{ Init: &udf.InitResponse{ Success: true, }, }, } uio.Responses <- res req = <-uio.Requests pt, ok := req.Message.(*udf.Request_Point) if !ok { t.Errorf("expected point message got %T", req.Message) } res = &udf.Response{ Message: &udf.Response_Point{ Point: pt.Point, }, } uio.Responses <- res close(uio.Responses) }() err := u.Open() if err != nil { t.Fatal(err) } err = u.Init(nil) if err != nil { t.Fatal(err) } // Write point to server pt := models.Point{ Name: "test", Database: "db", RetentionPolicy: "rp", Tags: models.Tags{"t1": "v1", "t2": "v2"}, Fields: models.Fields{"f1": 1.0, "f2": 2.0}, Time: time.Date(1971, 1, 1, 0, 0, 0, 0, time.UTC), } u.PointIn() <- pt rpt := <-u.PointOut() if !reflect.DeepEqual(rpt, pt) { t.Errorf("unexpected returned point got: %v exp %v", rpt, pt) } u.Close() // read all requests and wait till the chan is closed for range uio.Requests { } if err := <-uio.ErrC; err != nil { t.Error(err) } }