github.com/darrenli6/fabric-sdk-example@v0.0.0-20220109053535-94b13b56df8c/protos/common/policies_test.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package common
     8  
     9  import (
    10  	"testing"
    11  
    12  	proto "github.com/golang/protobuf/proto"
    13  	common1 "github.com/hyperledger/fabric/protos/msp"
    14  	"github.com/stretchr/testify/assert"
    15  )
    16  
    17  func TestPoliciesEnums(t *testing.T) {
    18  	var policy Policy_PolicyType
    19  	policy = 0
    20  	assert.Equal(t, "UNKNOWN", policy.String())
    21  	policy = 1
    22  	assert.Equal(t, "SIGNATURE", policy.String())
    23  	policy = 2
    24  	assert.Equal(t, "MSP", policy.String())
    25  	policy = 3
    26  	assert.Equal(t, "IMPLICIT_META", policy.String())
    27  
    28  	_, _ = policy.EnumDescriptor()
    29  
    30  	var meta ImplicitMetaPolicy_Rule
    31  	meta = 0
    32  	assert.Equal(t, "ANY", meta.String())
    33  	meta = 1
    34  	assert.Equal(t, "ALL", meta.String())
    35  	meta = 2
    36  	assert.Equal(t, "MAJORITY", meta.String())
    37  
    38  	_, _ = meta.EnumDescriptor()
    39  }
    40  
    41  func TestPoliciesStructs(t *testing.T) {
    42  	var policy *Policy
    43  	assert.Equal(t, int32(0), policy.GetType())
    44  	assert.Nil(t, policy.GetValue())
    45  	policy = &Policy{
    46  		Value: []byte("policy"),
    47  		Type:  int32(1),
    48  	}
    49  	assert.Equal(t, int32(1), policy.GetType())
    50  	assert.NotNil(t, policy.GetValue())
    51  	policy.Reset()
    52  	assert.Nil(t, policy.GetValue())
    53  	_, _ = policy.Descriptor()
    54  	_ = policy.String()
    55  	policy.ProtoMessage()
    56  
    57  	var env *SignaturePolicyEnvelope
    58  	env = nil
    59  	assert.Equal(t, int32(0), env.GetVersion())
    60  	assert.Nil(t, env.GetIdentities())
    61  	assert.Nil(t, env.GetRule())
    62  	env = &SignaturePolicyEnvelope{
    63  		Rule:       &SignaturePolicy{},
    64  		Identities: []*common1.MSPPrincipal{&common1.MSPPrincipal{}},
    65  		Version:    int32(1),
    66  	}
    67  	assert.Equal(t, int32(1), env.GetVersion())
    68  	assert.NotNil(t, env.GetIdentities())
    69  	assert.NotNil(t, env.GetRule())
    70  	env.Reset()
    71  	assert.Nil(t, env.GetIdentities())
    72  	assert.Nil(t, env.GetRule())
    73  	_, _ = env.Descriptor()
    74  	_ = env.String()
    75  	env.ProtoMessage()
    76  
    77  	var sigpolicy *SignaturePolicy
    78  	sigpolicy = nil
    79  	assert.Nil(t, sigpolicy.GetType())
    80  	assert.Nil(t, sigpolicy.GetNOutOf())
    81  	assert.Equal(t, int32(0), sigpolicy.GetSignedBy())
    82  	sigpolicy = &SignaturePolicy{
    83  		Type: &SignaturePolicy_SignedBy{
    84  			SignedBy: 2,
    85  		},
    86  	}
    87  	assert.Equal(t, int32(2), sigpolicy.GetSignedBy())
    88  	bytes, err := proto.Marshal(sigpolicy)
    89  	assert.NoError(t, err, "Error marshaling SignedBy policy")
    90  	_ = proto.Size(sigpolicy)
    91  	err = proto.Unmarshal(bytes, &SignaturePolicy{})
    92  	assert.NoError(t, err, "Error unmarshaling SignedBy policy")
    93  	sigpolicy = &SignaturePolicy{
    94  		Type: &SignaturePolicy_NOutOf_{
    95  			NOutOf: &SignaturePolicy_NOutOf{},
    96  		},
    97  	}
    98  	assert.NotNil(t, sigpolicy.GetNOutOf())
    99  	bytes, err = proto.Marshal(sigpolicy)
   100  	assert.NoError(t, err, "Error marshaling NOutOf policy")
   101  	_ = proto.Size(sigpolicy)
   102  	err = proto.Unmarshal(bytes, &SignaturePolicy{})
   103  	assert.NoError(t, err, "Error unmarshaling NoutOf policy")
   104  	_, _ = sigpolicy.Descriptor()
   105  	_ = sigpolicy.String()
   106  	sigpolicy.ProtoMessage()
   107  
   108  	var n *SignaturePolicy_NOutOf
   109  	n = nil
   110  	assert.Equal(t, int32(0), n.GetN())
   111  	assert.Nil(t, n.GetRules())
   112  	n = &SignaturePolicy_NOutOf{
   113  		Rules: []*SignaturePolicy{&SignaturePolicy{}},
   114  		N:     int32(1),
   115  	}
   116  	assert.Equal(t, int32(1), n.GetN())
   117  	assert.NotNil(t, n.GetRules())
   118  	n.Reset()
   119  	assert.Nil(t, n.GetRules())
   120  	_, _ = n.Descriptor()
   121  	_ = n.String()
   122  	n.ProtoMessage()
   123  
   124  	var impolicy *ImplicitMetaPolicy
   125  	impolicy = nil
   126  	assert.Equal(t, "", impolicy.GetSubPolicy())
   127  	assert.Equal(t, ImplicitMetaPolicy_ANY, impolicy.GetRule())
   128  	impolicy = &ImplicitMetaPolicy{
   129  		SubPolicy: "subpolicy",
   130  		Rule:      ImplicitMetaPolicy_MAJORITY,
   131  	}
   132  	assert.Equal(t, "subpolicy", impolicy.GetSubPolicy())
   133  	assert.Equal(t, ImplicitMetaPolicy_MAJORITY, impolicy.GetRule())
   134  	impolicy.Reset()
   135  	assert.Equal(t, "", impolicy.GetSubPolicy())
   136  	_, _ = impolicy.Descriptor()
   137  	_ = impolicy.String()
   138  	impolicy.ProtoMessage()
   139  
   140  }