trpc.group/trpc-go/trpc-go@v1.0.3/plugin/plugin_test.go (about)

     1  //
     2  //
     3  // Tencent is pleased to support the open source community by making tRPC available.
     4  //
     5  // Copyright (C) 2023 THL A29 Limited, a Tencent company.
     6  // All rights reserved.
     7  //
     8  // If you have downloaded a copy of the tRPC source code from Tencent,
     9  // please note that tRPC source code is licensed under the  Apache 2.0 License,
    10  // A copy of the Apache 2.0 License is included in this file.
    11  //
    12  //
    13  
    14  package plugin_test
    15  
    16  import (
    17  	"testing"
    18  
    19  	"github.com/stretchr/testify/assert"
    20  
    21  	"trpc.group/trpc-go/trpc-go/plugin"
    22  )
    23  
    24  type mockPlugin struct{}
    25  
    26  func (p *mockPlugin) Type() string {
    27  	return pluginType
    28  }
    29  
    30  func (p *mockPlugin) Setup(name string, decoder plugin.Decoder) error {
    31  	return nil
    32  }
    33  
    34  func TestGet(t *testing.T) {
    35  	plugin.Register(pluginName, &mockPlugin{})
    36  	// test duplicate registration
    37  	plugin.Register(pluginName, &mockPlugin{})
    38  	p := plugin.Get(pluginType, pluginName)
    39  	assert.NotNil(t, p)
    40  
    41  	pNo := plugin.Get("notexist", pluginName)
    42  	assert.Nil(t, pNo)
    43  }