github.com/franono/tendermint@v0.32.2-0.20200527150959-749313264ce9/types/validator_test.go (about)

     1  package types
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func TestValidatorProtoBuf(t *testing.T) {
    10  	val, _ := RandValidator(true, 100)
    11  	testCases := []struct {
    12  		msg      string
    13  		v1       *Validator
    14  		expPass1 bool
    15  		expPass2 bool
    16  	}{
    17  		{"success validator", val, true, true},
    18  		{"failure empty", &Validator{}, false, false},
    19  		{"failure nil", nil, false, false},
    20  	}
    21  	for _, tc := range testCases {
    22  		protoVal, err := tc.v1.ToProto()
    23  
    24  		if tc.expPass1 {
    25  			require.NoError(t, err, tc.msg)
    26  		} else {
    27  			require.Error(t, err, tc.msg)
    28  		}
    29  
    30  		val, err := ValidatorFromProto(protoVal)
    31  		if tc.expPass2 {
    32  			require.NoError(t, err, tc.msg)
    33  			require.Equal(t, tc.v1, val, tc.msg)
    34  		} else {
    35  			require.Error(t, err, tc.msg)
    36  		}
    37  	}
    38  }