github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/orderer/common/broadcast/metrics_test.go (about)

     1  /*
     2  Copyright hechain. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package broadcast_test
     8  
     9  import (
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  
    13  	"github.com/hechain20/hechain/orderer/common/broadcast"
    14  	"github.com/hechain20/hechain/orderer/common/broadcast/mock"
    15  )
    16  
    17  var _ = Describe("Metrics", func() {
    18  	var fakeProvider *mock.MetricsProvider
    19  
    20  	BeforeEach(func() {
    21  		fakeProvider = &mock.MetricsProvider{}
    22  		fakeProvider.NewHistogramReturns(&mock.MetricsHistogram{})
    23  		fakeProvider.NewCounterReturns(&mock.MetricsCounter{})
    24  	})
    25  
    26  	It("uses the provider to initialize all fields", func() {
    27  		metrics := broadcast.NewMetrics(fakeProvider)
    28  		Expect(metrics).NotTo(BeNil())
    29  		Expect(metrics.ValidateDuration).To(Equal(&mock.MetricsHistogram{}))
    30  		Expect(metrics.EnqueueDuration).To(Equal(&mock.MetricsHistogram{}))
    31  		Expect(metrics.ProcessedCount).To(Equal(&mock.MetricsCounter{}))
    32  
    33  		Expect(fakeProvider.NewHistogramCallCount()).To(Equal(2))
    34  		Expect(fakeProvider.NewCounterCallCount()).To(Equal(1))
    35  	})
    36  })