github.com/hyperledger-labs/bdls@v2.1.1+incompatible/core/chaincode/persistence/label_test.go (about) 1 /* 2 Copyright IBM Corp. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package persistence 8 9 import ( 10 "testing" 11 12 "github.com/stretchr/testify/assert" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestLabels(t *testing.T) { 17 tests := []struct { 18 label string 19 success bool 20 }{ 21 {label: "", success: false}, 22 {label: ".", success: false}, 23 {label: "0", success: true}, 24 {label: ":", success: false}, 25 {label: "_", success: false}, 26 {label: "a", success: true}, 27 {label: "a#", success: false}, 28 {label: "a$", success: false}, 29 {label: "a%", success: false}, 30 {label: "a++b", success: true}, 31 {label: "a+b", success: true}, 32 {label: "a+bb", success: true}, 33 {label: "a-", success: true}, 34 {label: "a--b", success: true}, 35 {label: "a-b", success: true}, 36 {label: "a-bb", success: true}, 37 {label: "a.b", success: true}, 38 {label: "a::b", success: false}, 39 {label: "a:b", success: false}, 40 {label: "a__b", success: true}, 41 {label: "a_b", success: true}, 42 {label: "a a", success: false}, 43 {label: "a_bb", success: true}, 44 {label: "aa", success: true}, 45 {label: "v1.0.0", success: true}, 46 } 47 48 for _, tt := range tests { 49 t.Run(tt.label, func(t *testing.T) { 50 err := ValidateLabel(tt.label) 51 if tt.success { 52 assert.NoError(t, err) 53 } else { 54 require.Error(t, err) 55 assert.Contains(t, err.Error(), tt.label) 56 } 57 }) 58 } 59 }