github.com/annwntech/go-micro/v2@v2.9.5/debug/log/kubernetes/kubernetes_test.go (about) 1 package kubernetes 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "io" 7 "os" 8 "testing" 9 "time" 10 11 "github.com/annwntech/go-micro/v2/debug/log" 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func TestKubernetes(t *testing.T) { 16 // TODO: fix local test running 17 return 18 19 if os.Getenv("IN_TRAVIS_CI") == "yes" { 20 t.Skip("In Travis CI") 21 } 22 23 k := NewLog(log.Name("micro-network")) 24 25 r, w, err := os.Pipe() 26 if err != nil { 27 t.Fatal(err) 28 } 29 30 s := os.Stderr 31 os.Stderr = w 32 meta := make(map[string]string) 33 34 write := log.Record{ 35 Timestamp: time.Unix(0, 0).UTC(), 36 Message: "Test log entry", 37 Metadata: meta, 38 } 39 40 meta["foo"] = "bar" 41 42 k.Write(write) 43 b := &bytes.Buffer{} 44 w.Close() 45 io.Copy(b, r) 46 os.Stderr = s 47 48 var read log.Record 49 50 if err := json.Unmarshal(b.Bytes(), &read); err != nil { 51 t.Fatalf("json.Unmarshal failed: %s", err.Error()) 52 } 53 54 assert.Equal(t, write, read, "Write was not equal") 55 56 records, err := k.Read() 57 assert.Nil(t, err, "Read should not error") 58 assert.NotNil(t, records, "Read should return records") 59 60 stream, err := k.Stream() 61 if err != nil { 62 t.Fatal(err) 63 } 64 65 records = nil 66 67 go stream.Stop() 68 69 for s := range stream.Chan() { 70 records = append(records, s) 71 } 72 73 assert.Equal(t, 0, len(records), "Stream should return nothing") 74 }