From dbbd62369c1c2424491baa0da19ed0707fcc5c91 Mon Sep 17 00:00:00 2001 From: Mostafa Moradian Date: Mon, 19 Dec 2022 21:17:13 +0100 Subject: [PATCH 1/3] Rename function --- errors/errors.go | 44 +++++++++++++++++------------------ errors/gatewayd_error.go | 2 +- errors/gatewayd_error_test.go | 23 ++++++++++++++++++ 3 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 errors/gatewayd_error_test.go diff --git a/errors/errors.go b/errors/errors.go index 75364382..5076d44c 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -27,56 +27,56 @@ const ( ) var ( - ErrClientNotFound = NewGatewaydError( + ErrClientNotFound = NewGatewayDError( ErrCodeClientNotFound, "client not found", nil) - ErrClientNotConnected = NewGatewaydError( + ErrClientNotConnected = NewGatewayDError( ErrCodeClientNotConnected, "client is not connected", nil) - ErrClientConnectionFailed = NewGatewaydError( + ErrClientConnectionFailed = NewGatewayDError( ErrCodeClientConnectionFailed, "failed to create a new connection", nil) - ErrNetworkNotSupported = NewGatewaydError( + ErrNetworkNotSupported = NewGatewayDError( ErrCodeNetworkNotSupported, "network is not supported", nil) - ErrResolveFailed = NewGatewaydError( + ErrResolveFailed = NewGatewayDError( ErrCodeResolveFailed, "failed to resolve address", nil) - ErrPoolExhausted = NewGatewaydError( + ErrPoolExhausted = NewGatewayDError( ErrCodePoolExhausted, "pool is exhausted", nil) - ErrFailedToStartServer = NewGatewaydError( + ErrFailedToStartServer = NewGatewayDError( ErrCodeStartServerFailed, "failed to start server", nil) - ErrPluginNotFound = NewGatewaydError( + ErrPluginNotFound = NewGatewayDError( ErrCodePluginNotFound, "plugin not found", nil) - ErrPluginNotReady = NewGatewaydError( + ErrPluginNotReady = NewGatewayDError( ErrCodePluginNotReady, "plugin is not ready", nil) - ErrFailedToStartPlugin = NewGatewaydError( + ErrFailedToStartPlugin = NewGatewayDError( ErrCodeStartPluginFailed, "failed to start plugin", nil) - ErrFailedToGetRPCClient = NewGatewaydError( + ErrFailedToGetRPCClient = NewGatewayDError( ErrCodeGetRPCClientFailed, "failed to get RPC client", nil) - ErrFailedToDispensePlugin = NewGatewaydError( + ErrFailedToDispensePlugin = NewGatewayDError( ErrCodeDispensePluginFailed, "failed to dispense plugin", nil) - ErrClientReceiveFailed = NewGatewaydError( + ErrClientReceiveFailed = NewGatewayDError( ErrCodeClientReceiveFailed, "couldn't receive data from the server", nil) - ErrClientSendFailed = NewGatewaydError( + ErrClientSendFailed = NewGatewayDError( ErrCodeClientSendFailed, "couldn't send data to the server", nil) - ErrServerSendFailed = NewGatewaydError( + ErrServerSendFailed = NewGatewayDError( ErrCodeServerSendFailed, "couldn't send data to the client", nil) - ErrServerReceiveFailed = NewGatewaydError( + ErrServerReceiveFailed = NewGatewayDError( ErrCodeServerReceiveFailed, "couldn't receive data from the client", nil) - ErrPutFailed = NewGatewaydError( + ErrPutFailed = NewGatewayDError( ErrCodePutFailed, "failed to put in pool", nil) - ErrCastFailed = NewGatewaydError( + ErrCastFailed = NewGatewayDError( ErrCodeCastFailed, "failed to cast", nil) - ErrHookVerificationFailed = NewGatewaydError( + ErrHookVerificationFailed = NewGatewayDError( ErrCodeHookVerificationFailed, "failed to verify hook", nil) - ErrFileNotFound = NewGatewaydError( + ErrFileNotFound = NewGatewayDError( ErrCodeFileNotFound, "file not found", nil) - ErrFileOpenFailed = NewGatewaydError( + ErrFileOpenFailed = NewGatewayDError( ErrCodeFileOpenFailed, "failed to open file", nil) - ErrFileReadFailed = NewGatewaydError( + ErrFileReadFailed = NewGatewayDError( ErrCodeFileReadFailed, "failed to read file", nil) ) diff --git a/errors/gatewayd_error.go b/errors/gatewayd_error.go index be7dbab9..e5cd3d49 100644 --- a/errors/gatewayd_error.go +++ b/errors/gatewayd_error.go @@ -10,7 +10,7 @@ type GatewayDError struct { OriginalError error } -func NewGatewaydError(code ErrCode, message string, err error) *GatewayDError { +func NewGatewayDError(code ErrCode, message string, err error) *GatewayDError { return &GatewayDError{ Code: code, Message: message, diff --git a/errors/gatewayd_error_test.go b/errors/gatewayd_error_test.go new file mode 100644 index 00000000..50a98cce --- /dev/null +++ b/errors/gatewayd_error_test.go @@ -0,0 +1,23 @@ +package errors + +import ( + "errors" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNewGatewayDError(t *testing.T) { + err := NewGatewayDError(ErrCodeUnknown, "test", nil) + assert.NotNil(t, err) + assert.Equal(t, err.Code, ErrCodeUnknown) + assert.Equal(t, err.Error(), "test") + assert.Equal(t, err.Message, "test") + assert.Nil(t, err.OriginalError) + + origErr := errors.New("original error") + assert.NotNil(t, err.Wrap(origErr)) + assert.Equal(t, err.OriginalError, origErr) + assert.Equal(t, origErr, err.Unwrap()) + assert.Equal(t, err.Error(), "test, OriginalError: original error") +} From 9ecc53e8cb7d5f2ebb45664cc69c2a6260d22bff Mon Sep 17 00:00:00 2001 From: Mostafa Moradian Date: Mon, 19 Dec 2022 21:25:26 +0100 Subject: [PATCH 2/3] Add an interface to the client --- network/client.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/network/client.go b/network/client.go index d67bf2b5..b92937ae 100644 --- a/network/client.go +++ b/network/client.go @@ -13,6 +13,13 @@ const ( DefaultSeed = 1000 ) +type ClientInterface interface { + Send(data []byte) (int, *gerr.GatewayDError) + Receive() (int, []byte, *gerr.GatewayDError) + Close() + IsConnected() bool +} + type Client struct { net.Conn @@ -25,6 +32,8 @@ type Client struct { // TODO: add read/write deadline and deal with timeouts } +var _ ClientInterface = &Client{} + // TODO: implement a better connection management algorithm func NewClient(network, address string, receiveBufferSize int, logger zerolog.Logger) *Client { From aa081bba2f820568287c4b9e358ecdb1a3721f31 Mon Sep 17 00:00:00 2001 From: Mostafa Moradian Date: Mon, 19 Dec 2022 21:29:16 +0100 Subject: [PATCH 3/3] Ignore linter error --- errors/gatewayd_error_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/errors/gatewayd_error_test.go b/errors/gatewayd_error_test.go index 50a98cce..e50ca451 100644 --- a/errors/gatewayd_error_test.go +++ b/errors/gatewayd_error_test.go @@ -15,7 +15,7 @@ func TestNewGatewayDError(t *testing.T) { assert.Equal(t, err.Message, "test") assert.Nil(t, err.OriginalError) - origErr := errors.New("original error") + origErr := errors.New("original error") //nolint:goerr113 assert.NotNil(t, err.Wrap(origErr)) assert.Equal(t, err.OriginalError, origErr) assert.Equal(t, origErr, err.Unwrap())