lnd.xprv/chanacceptor/rpcacceptor_test.go

86 lines
1.8 KiB
Go
Raw Normal View History

package chanacceptor
import (
"errors"
"strings"
"testing"
"github.com/lightningnetwork/lnd/lnrpc"
"github.com/stretchr/testify/require"
)
// TestValidateAcceptorResponse test validation of acceptor responses.
func TestValidateAcceptorResponse(t *testing.T) {
customError := errors.New("custom error")
tests := []struct {
name string
response lnrpc.ChannelAcceptResponse
accept bool
acceptorErr error
error error
}{
{
name: "accepted with error",
response: lnrpc.ChannelAcceptResponse{
Accept: true,
Error: customError.Error(),
},
accept: false,
acceptorErr: errChannelRejected,
error: errAcceptWithError,
},
{
name: "custom error too long",
response: lnrpc.ChannelAcceptResponse{
Accept: false,
Error: strings.Repeat(" ", maxErrorLength+1),
},
accept: false,
acceptorErr: errChannelRejected,
error: errCustomLength,
},
{
name: "accepted",
response: lnrpc.ChannelAcceptResponse{
Accept: true,
},
accept: true,
acceptorErr: nil,
error: nil,
},
{
name: "rejected with error",
response: lnrpc.ChannelAcceptResponse{
Accept: false,
Error: customError.Error(),
},
accept: false,
acceptorErr: customError,
error: nil,
},
{
name: "rejected with no error",
response: lnrpc.ChannelAcceptResponse{
Accept: false,
},
accept: false,
acceptorErr: errChannelRejected,
error: nil,
},
}
for _, test := range tests {
test := test
t.Run(test.name, func(t *testing.T) {
accept, acceptErr, err := validateAcceptorResponse(
test.response,
)
require.Equal(t, test.accept, accept)
require.Equal(t, test.acceptorErr, acceptErr)
require.Equal(t, test.error, err)
})
}
}