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  }