github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/internal/pkg/gateway/config/options_test.go (about) 1 /* 2 Copyright hechain. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package config 8 9 import ( 10 "bytes" 11 "testing" 12 "time" 13 14 "github.com/spf13/viper" 15 "github.com/stretchr/testify/require" 16 ) 17 18 var testConfig = []byte(` 19 peer: 20 gateway: 21 enabled: true 22 endorsementTimeout: 30s 23 dialTimeout: 2m 24 `) 25 26 var testConfigOff = []byte(` 27 peer: 28 gateway: 29 enabled: false 30 `) 31 32 func TestDefaultOptions(t *testing.T) { 33 v := viper.New() 34 options := GetOptions(v) 35 require.Equal(t, defaultOptions, options) 36 } 37 38 func TestOverriddenOptions(t *testing.T) { 39 v := viper.New() 40 v.SetConfigType("yaml") 41 v.ReadConfig(bytes.NewBuffer(testConfig)) 42 options := GetOptions(v) 43 44 expectedOptions := Options{ 45 Enabled: true, 46 EndorsementTimeout: 30 * time.Second, 47 DialTimeout: 2 * time.Minute, 48 } 49 require.Equal(t, expectedOptions, options) 50 } 51 52 func TestDisabledGatewayOption(t *testing.T) { 53 v := viper.New() 54 v.SetConfigType("yaml") 55 v.ReadConfig(bytes.NewBuffer(testConfigOff)) 56 options := GetOptions(v) 57 58 expectedOptions := Options{ 59 Enabled: false, 60 EndorsementTimeout: 10 * time.Second, 61 DialTimeout: 30 * time.Second, 62 } 63 require.Equal(t, expectedOptions, options) 64 }