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 }