token_holder_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package qlight
  2. import (
  3. "testing"
  4. "github.com/ethereum/go-ethereum/plugin"
  5. "github.com/ethereum/go-ethereum/plugin/qlight"
  6. "github.com/golang/mock/gomock"
  7. "github.com/stretchr/testify/assert"
  8. "github.com/stretchr/testify/require"
  9. )
  10. func TestTokenHolder(t *testing.T) {
  11. th := NewTokenHolderWithPlugin("test", 0, nil, nil)
  12. require.NotNil(t, th)
  13. // API mode
  14. expected := "token"
  15. th.SetCurrentToken(expected)
  16. value := th.CurrentToken()
  17. assert.Equal(t, expected, value)
  18. expected = "token2"
  19. th.SetCurrentToken(expected)
  20. value = th.CurrentToken()
  21. assert.Equal(t, expected, value)
  22. // Plugin Token Refresher Mode
  23. ctrl := gomock.NewController(t)
  24. defer ctrl.Finish()
  25. pluginManager := plugin.NewMockPluginManagerInterface(ctrl)
  26. pluginManager.
  27. EXPECT().
  28. IsEnabled(gomock.Eq(plugin.QLightTokenManagerPluginInterfaceName)).
  29. Return(true)
  30. var err error
  31. pluginManager.
  32. EXPECT().
  33. GetPluginTemplate(gomock.Eq(plugin.QLightTokenManagerPluginInterfaceName), gomock.Any()).
  34. Return(err)
  35. mockPlugin := qlight.NewMockPluginTokenManager(ctrl)
  36. mockPlugin.EXPECT().PluginTokenManager(gomock.Any()).Return(int32(1), nil)
  37. template := plugin.NewMockQLightTokenManagerPluginTemplateInterface(ctrl)
  38. template.EXPECT().Start().Return(err)
  39. template.EXPECT().Get().Return(mockPlugin, nil)
  40. template.EXPECT().ManagedPlugin().Return(nil)
  41. err = th.refreshPlugin(pluginManager, template)
  42. require.NoError(t, err)
  43. }