github.com/xmidt-org/webpa-common@v1.11.9/device/viper_test.go (about)

     1  package device
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	"github.com/spf13/viper"
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/require"
    10  	"github.com/xmidt-org/webpa-common/logging"
    11  )
    12  
    13  func TestNewOptions(t *testing.T) {
    14  	var (
    15  		assert        = assert.New(t)
    16  		require       = require.New(t)
    17  		logger        = logging.DefaultLogger()
    18  		configuration = `{
    19  			"device": {
    20  				"manager": {
    21  					"handshakeTimeout": "1m15s"
    22  				}
    23  			}
    24  		}`
    25  
    26  		v = viper.New()
    27  	)
    28  
    29  	v.SetConfigType("json")
    30  	require.Nil(v.ReadConfig(bytes.NewBufferString(configuration)))
    31  
    32  	o, err := NewOptions(logger, v.Sub(DeviceManagerKey))
    33  	require.NotNil(o)
    34  	assert.Nil(err)
    35  
    36  	assert.Equal(
    37  		Options{
    38  			Logger: logger,
    39  		},
    40  		*o,
    41  	)
    42  }
    43  
    44  func TestNewOptionsUnmarshalError(t *testing.T) {
    45  	var (
    46  		assert        = assert.New(t)
    47  		require       = require.New(t)
    48  		logger        = logging.DefaultLogger()
    49  		configuration = `{
    50  			"device": {
    51  				"manager": {
    52  					"upgrader": "this is not valid"
    53  				}
    54  			}
    55  		}`
    56  
    57  		v = viper.New()
    58  	)
    59  
    60  	v.SetConfigType("json")
    61  	require.Nil(v.ReadConfig(bytes.NewBufferString(configuration)))
    62  
    63  	o, err := NewOptions(logger, v.Sub(DeviceManagerKey))
    64  	require.NotNil(o)
    65  	assert.NotNil(err)
    66  
    67  	assert.Equal(logger, o.Logger)
    68  }
    69  
    70  func TestNewOptionsNilViper(t *testing.T) {
    71  	var (
    72  		assert  = assert.New(t)
    73  		require = require.New(t)
    74  		logger  = logging.DefaultLogger()
    75  	)
    76  
    77  	o, err := NewOptions(logger, nil)
    78  	require.NotNil(o)
    79  	assert.Nil(err)
    80  
    81  	assert.Equal(Options{Logger: logger}, *o)
    82  }