github.com/brycereitano/goa@v0.0.0-20170315073847-8ffa6c85e265/logging/log15/adapter_test.go (about)

     1  package goalog15_test
     2  
     3  import (
     4  	"github.com/goadesign/goa"
     5  	"github.com/goadesign/goa/logging/log15"
     6  	"github.com/inconshreveable/log15"
     7  	. "github.com/onsi/ginkgo"
     8  	. "github.com/onsi/gomega"
     9  	"golang.org/x/net/context"
    10  )
    11  
    12  type TestHandler struct {
    13  	records []*log15.Record
    14  }
    15  
    16  func (h *TestHandler) Log(r *log15.Record) error {
    17  	h.records = append(h.records, r)
    18  	return nil
    19  }
    20  
    21  var _ = Describe("New", func() {
    22  	var logger log15.Logger
    23  	var adapter goa.LogAdapter
    24  	var handler *TestHandler
    25  
    26  	BeforeEach(func() {
    27  		logger = log15.New()
    28  		handler = new(TestHandler)
    29  		logger.SetHandler(handler)
    30  		adapter = goalog15.New(logger)
    31  	})
    32  
    33  	It("creates an adapter that logs", func() {
    34  		msg := "msg"
    35  		adapter.Info(msg)
    36  		Ω(handler.records).Should(HaveLen(1))
    37  		Ω(handler.records[0].Msg).Should(ContainSubstring(msg))
    38  	})
    39  
    40  	Context("Logger", func() {
    41  		var ctx context.Context
    42  
    43  		BeforeEach(func() {
    44  			ctx = goa.WithLogger(context.Background(), adapter)
    45  		})
    46  
    47  		It("extracts the logger", func() {
    48  			Ω(goalog15.Logger(ctx)).Should(Equal(logger))
    49  		})
    50  	})
    51  })