dubbo.apache.org/dubbo-go/v3@v3.1.1/metrics/bus_test.go (about)

     1  /*
     2   * Licensed to the Apache Software Foundation (ASF) under one or more
     3   * contributor license agreements.  See the NOTICE file distributed with
     4   * this work for additional information regarding copyright ownership.
     5   * The ASF licenses this file to You under the Apache License, Version 2.0
     6   * (the "License"); you may not use this file except in compliance with
     7   * the License.  You may obtain a copy of the License at
     8   *
     9   *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  
    18  package metrics
    19  
    20  import (
    21  	"testing"
    22  )
    23  
    24  import (
    25  	"github.com/stretchr/testify/assert"
    26  )
    27  
    28  var mockChan = make(chan MetricsEvent, 16)
    29  
    30  type MockEvent struct {
    31  }
    32  
    33  func (m MockEvent) Type() string {
    34  	return "dubbo.metrics.mock"
    35  }
    36  
    37  func NewEmptyMockEvent() *MockEvent {
    38  	return &MockEvent{}
    39  }
    40  
    41  func init() {
    42  	Subscribe("dubbo.metrics.mock", mockChan)
    43  	Publish(NewEmptyMockEvent())
    44  }
    45  
    46  func TestBusPublish(t *testing.T) {
    47  	t.Run("testBusPublish", func(t *testing.T) {
    48  		event := <-mockChan
    49  
    50  		if event, ok := event.(MockEvent); ok {
    51  			assert.Equal(t, event, NewEmptyMockEvent())
    52  		}
    53  	})
    54  }