github.com/kchristidis/fabric@v1.0.4-0.20171028114726-837acd08cde1/protos/common/configtx_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  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestConfigGroup(t *testing.T) {
    16  	var cg *ConfigGroup
    17  
    18  	cg = nil
    19  
    20  	assert.Equal(t, uint64(0), cg.GetVersion())
    21  	assert.Equal(t, "", cg.GetModPolicy())
    22  	assert.Nil(t, cg.GetGroups())
    23  	assert.Nil(t, cg.GetValues())
    24  	assert.Nil(t, cg.GetPolicies())
    25  
    26  	cg = &ConfigGroup{
    27  		Version:   uint64(1),
    28  		ModPolicy: "ModPolicy",
    29  		Groups:    make(map[string]*ConfigGroup),
    30  		Values:    make(map[string]*ConfigValue),
    31  		Policies:  make(map[string]*ConfigPolicy),
    32  	}
    33  	assert.Equal(t, uint64(1), cg.GetVersion())
    34  	assert.Equal(t, "ModPolicy", cg.GetModPolicy())
    35  	assert.NotNil(t, cg.GetGroups())
    36  	assert.NotNil(t, cg.GetValues())
    37  	assert.NotNil(t, cg.GetPolicies())
    38  
    39  	cg = NewConfigGroup()
    40  	cg.Groups["test"] = NewConfigGroup()
    41  	cg.Values["test"] = &ConfigValue{}
    42  	cg.Policies["test"] = &ConfigPolicy{}
    43  	_, ok := cg.GetGroups()["test"]
    44  	assert.Equal(t, true, ok)
    45  	_, ok = cg.GetValues()["test"]
    46  	assert.Equal(t, true, ok)
    47  	_, ok = cg.GetPolicies()["test"]
    48  	assert.Equal(t, true, ok)
    49  
    50  	cg.Reset()
    51  	assert.Nil(t, cg.GetGroups())
    52  
    53  	_ = cg.String()
    54  	_, _ = cg.Descriptor()
    55  	cg.ProtoMessage()
    56  }
    57  
    58  func TestConfigValue(t *testing.T) {
    59  	var cv *ConfigValue
    60  	cv = nil
    61  	assert.Equal(t, uint64(0), cv.GetVersion())
    62  	assert.Equal(t, "", cv.GetModPolicy())
    63  	assert.Nil(t, cv.GetValue())
    64  	cv = &ConfigValue{
    65  		Version:   uint64(1),
    66  		ModPolicy: "ModPolicy",
    67  		Value:     []byte{},
    68  	}
    69  	assert.Equal(t, uint64(1), cv.GetVersion())
    70  	assert.Equal(t, "ModPolicy", cv.GetModPolicy())
    71  	assert.NotNil(t, cv.GetValue())
    72  	cv.Reset()
    73  	_ = cv.String()
    74  	_, _ = cv.Descriptor()
    75  	cv.ProtoMessage()
    76  }
    77  
    78  func TestConfigEnvelope(t *testing.T) {
    79  	var env *ConfigEnvelope
    80  
    81  	env = nil
    82  	assert.Nil(t, env.GetConfig())
    83  	assert.Nil(t, env.GetLastUpdate())
    84  
    85  	env = &ConfigEnvelope{
    86  		Config:     &Config{},
    87  		LastUpdate: &Envelope{},
    88  	}
    89  	assert.NotNil(t, env.GetConfig())
    90  	assert.NotNil(t, env.GetLastUpdate())
    91  
    92  	env.Reset()
    93  	assert.Nil(t, env.GetConfig())
    94  
    95  	_ = env.String()
    96  	_, _ = env.Descriptor()
    97  	env.ProtoMessage()
    98  }
    99  
   100  func TestConfigGroupSchema(t *testing.T) {
   101  	var cgs *ConfigGroupSchema
   102  
   103  	cgs = nil
   104  	assert.Nil(t, cgs.GetGroups())
   105  	assert.Nil(t, cgs.GetPolicies())
   106  	assert.Nil(t, cgs.GetValues())
   107  
   108  	cgs = &ConfigGroupSchema{
   109  		Groups:   make(map[string]*ConfigGroupSchema),
   110  		Values:   make(map[string]*ConfigValueSchema),
   111  		Policies: make(map[string]*ConfigPolicySchema),
   112  	}
   113  	assert.NotNil(t, cgs.GetGroups())
   114  	assert.NotNil(t, cgs.GetPolicies())
   115  	assert.NotNil(t, cgs.GetValues())
   116  
   117  	cgs.Reset()
   118  	assert.Nil(t, cgs.GetGroups())
   119  
   120  	_ = cgs.String()
   121  	_, _ = cgs.Descriptor()
   122  	cgs.ProtoMessage()
   123  }
   124  
   125  func TestGenericSchema(t *testing.T) {
   126  	cvs := &ConfigValueSchema{}
   127  	cvs.Reset()
   128  	_ = cvs.String()
   129  	_, _ = cvs.Descriptor()
   130  	cvs.ProtoMessage()
   131  
   132  	cps := &ConfigPolicySchema{}
   133  	cps.Reset()
   134  	_ = cps.String()
   135  	_, _ = cps.Descriptor()
   136  	cps.ProtoMessage()
   137  }
   138  
   139  func TestConfig(t *testing.T) {
   140  	var c *Config
   141  
   142  	c = nil
   143  	assert.Nil(t, c.GetChannelGroup())
   144  	assert.Equal(t, uint64(0), c.GetSequence())
   145  
   146  	c = &Config{
   147  		ChannelGroup: &ConfigGroup{},
   148  		Sequence:     uint64(1),
   149  	}
   150  	assert.NotNil(t, c.GetChannelGroup())
   151  	assert.Equal(t, uint64(1), c.GetSequence())
   152  
   153  	c.Reset()
   154  	assert.Nil(t, c.GetChannelGroup())
   155  
   156  	_ = c.String()
   157  	_, _ = c.Descriptor()
   158  	c.ProtoMessage()
   159  }
   160  
   161  func TestConfigUpdateEnvelope(t *testing.T) {
   162  	var env *ConfigUpdateEnvelope
   163  
   164  	env = nil
   165  	assert.Nil(t, env.GetSignatures())
   166  	assert.Nil(t, env.GetConfigUpdate())
   167  
   168  	env = &ConfigUpdateEnvelope{
   169  		Signatures: []*ConfigSignature{
   170  			&ConfigSignature{},
   171  		},
   172  		ConfigUpdate: []byte("configupdate"),
   173  	}
   174  	assert.NotNil(t, env.GetSignatures())
   175  	assert.NotNil(t, env.GetConfigUpdate())
   176  
   177  	env.Reset()
   178  	assert.Nil(t, env.GetSignatures())
   179  
   180  	_ = env.String()
   181  	_, _ = env.Descriptor()
   182  	env.ProtoMessage()
   183  }
   184  
   185  func TestConfigUpdate(t *testing.T) {
   186  	var c *ConfigUpdate
   187  
   188  	c = nil
   189  	assert.Equal(t, "", c.GetChannelId())
   190  	assert.Nil(t, c.GetReadSet())
   191  	assert.Nil(t, c.GetWriteSet())
   192  
   193  	c = &ConfigUpdate{
   194  		ChannelId: "ChannelId",
   195  		ReadSet:   &ConfigGroup{},
   196  		WriteSet:  &ConfigGroup{},
   197  	}
   198  	assert.Equal(t, "ChannelId", c.GetChannelId())
   199  	assert.NotNil(t, c.GetReadSet())
   200  	assert.NotNil(t, c.GetWriteSet())
   201  
   202  	c.Reset()
   203  	assert.Nil(t, c.GetReadSet())
   204  
   205  	_ = c.String()
   206  	_, _ = c.Descriptor()
   207  	c.ProtoMessage()
   208  }
   209  
   210  func TestConfigPolicy(t *testing.T) {
   211  	var cp *ConfigPolicy
   212  
   213  	cp = nil
   214  	assert.Equal(t, uint64(0), cp.GetVersion())
   215  	assert.Nil(t, cp.GetPolicy())
   216  	assert.Equal(t, "", cp.GetModPolicy())
   217  
   218  	cp = &ConfigPolicy{
   219  		Version:   uint64(1),
   220  		Policy:    &Policy{},
   221  		ModPolicy: "ModPolicy",
   222  	}
   223  	assert.Equal(t, uint64(1), cp.GetVersion())
   224  	assert.NotNil(t, cp.GetPolicy())
   225  	assert.Equal(t, "ModPolicy", cp.GetModPolicy())
   226  
   227  	cp.Reset()
   228  	assert.Nil(t, cp.GetPolicy())
   229  
   230  	_ = cp.String()
   231  	_, _ = cp.Descriptor()
   232  	cp.ProtoMessage()
   233  }
   234  
   235  func TestConfigSignature(t *testing.T) {
   236  	var cs *ConfigSignature
   237  
   238  	cs = nil
   239  	assert.Nil(t, cs.GetSignature())
   240  	assert.Nil(t, cs.GetSignatureHeader())
   241  	cs = &ConfigSignature{
   242  		Signature:       []byte{},
   243  		SignatureHeader: []byte{},
   244  	}
   245  	assert.NotNil(t, cs.GetSignature())
   246  	assert.NotNil(t, cs.GetSignatureHeader())
   247  
   248  	cs.Reset()
   249  	assert.Nil(t, cs.GetSignature())
   250  	_ = cs.String()
   251  	_, _ = cs.Descriptor()
   252  	cs.ProtoMessage()
   253  }