75 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package kubernetes
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"encoding/json"
 | |
| 	"io"
 | |
| 	"os"
 | |
| 	"testing"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/micro/go-micro/v3/debug/log"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestKubernetes(t *testing.T) {
 | |
| 	// TODO: fix local test running
 | |
| 	return
 | |
| 
 | |
| 	if os.Getenv("IN_TRAVIS_CI") == "yes" {
 | |
| 		t.Skip("In Travis CI")
 | |
| 	}
 | |
| 
 | |
| 	k := NewLog(log.Name("micro-network"))
 | |
| 
 | |
| 	r, w, err := os.Pipe()
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	s := os.Stderr
 | |
| 	os.Stderr = w
 | |
| 	meta := make(map[string]string)
 | |
| 
 | |
| 	write := log.Record{
 | |
| 		Timestamp: time.Unix(0, 0).UTC(),
 | |
| 		Message:   "Test log entry",
 | |
| 		Metadata:  meta,
 | |
| 	}
 | |
| 
 | |
| 	meta["foo"] = "bar"
 | |
| 
 | |
| 	k.Write(write)
 | |
| 	b := &bytes.Buffer{}
 | |
| 	w.Close()
 | |
| 	io.Copy(b, r)
 | |
| 	os.Stderr = s
 | |
| 
 | |
| 	var read log.Record
 | |
| 
 | |
| 	if err := json.Unmarshal(b.Bytes(), &read); err != nil {
 | |
| 		t.Fatalf("json.Unmarshal failed: %s", err.Error())
 | |
| 	}
 | |
| 
 | |
| 	assert.Equal(t, write, read, "Write was not equal")
 | |
| 
 | |
| 	records, err := k.Read()
 | |
| 	assert.Nil(t, err, "Read should not error")
 | |
| 	assert.NotNil(t, records, "Read should return records")
 | |
| 
 | |
| 	stream, err := k.Stream()
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	records = nil
 | |
| 
 | |
| 	go stream.Stop()
 | |
| 
 | |
| 	for s := range stream.Chan() {
 | |
| 		records = append(records, s)
 | |
| 	}
 | |
| 
 | |
| 	assert.Equal(t, 0, len(records), "Stream should return nothing")
 | |
| }
 |