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

     1  package device
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/go-kit/kit/metrics/provider"
     8  	"github.com/gorilla/websocket"
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/xmidt-org/webpa-common/logging"
    11  )
    12  
    13  func TestOptionsDefault(t *testing.T) {
    14  	assert := assert.New(t)
    15  
    16  	for _, o := range []*Options{nil, new(Options)} {
    17  		t.Log(o)
    18  
    19  		assert.Equal(DefaultDeviceMessageQueueSize, o.deviceMessageQueueSize())
    20  		assert.NotNil(o.upgrader())
    21  		assert.Equal(0, o.maxDevices())
    22  		assert.Equal(DefaultIdlePeriod, o.idlePeriod())
    23  		assert.Equal(DefaultPingPeriod, o.pingPeriod())
    24  		assert.Equal(DefaultWriteTimeout, o.writeTimeout())
    25  		assert.NotNil(o.logger())
    26  		assert.Empty(o.listeners())
    27  		assert.Equal(provider.NewDiscardProvider(), o.metricsProvider())
    28  	}
    29  }
    30  
    31  func TestOptions(t *testing.T) {
    32  	var (
    33  		assert                  = assert.New(t)
    34  		expectedLogger          = logging.DefaultLogger()
    35  		expectedMetricsProvider = provider.NewPrometheusProvider("test", "test")
    36  
    37  		o = Options{
    38  			Upgrader: websocket.Upgrader{
    39  				HandshakeTimeout: 12377123 * time.Second,
    40  				ReadBufferSize:   DefaultReadBufferSize + 48729,
    41  				WriteBufferSize:  DefaultWriteBufferSize + 926,
    42  				Subprotocols:     []string{"foobar"},
    43  			},
    44  			MaxDevices:             20000,
    45  			DeviceMessageQueueSize: DefaultDeviceMessageQueueSize + 287342,
    46  			IdlePeriod:             DefaultIdlePeriod + 3472*time.Minute,
    47  			PingPeriod:             DefaultPingPeriod + 384*time.Millisecond,
    48  			WriteTimeout:           DefaultWriteTimeout + 327193*time.Second,
    49  			Logger:                 expectedLogger,
    50  			Listeners:              []Listener{func(*Event) {}},
    51  			MetricsProvider:        expectedMetricsProvider,
    52  		}
    53  	)
    54  
    55  	assert.Equal(o.DeviceMessageQueueSize, o.deviceMessageQueueSize())
    56  	assert.Equal(
    57  		websocket.Upgrader{
    58  			HandshakeTimeout: 12377123 * time.Second,
    59  			ReadBufferSize:   DefaultReadBufferSize + 48729,
    60  			WriteBufferSize:  DefaultWriteBufferSize + 926,
    61  			Subprotocols:     []string{"foobar"},
    62  		},
    63  		*o.upgrader(),
    64  	)
    65  
    66  	assert.Equal(20000, o.maxDevices())
    67  	assert.Equal(o.IdlePeriod, o.idlePeriod())
    68  	assert.Equal(o.PingPeriod, o.pingPeriod())
    69  	assert.Equal(o.WriteTimeout, o.writeTimeout())
    70  	assert.Equal(expectedLogger, o.logger())
    71  	assert.Equal(o.Listeners, o.listeners())
    72  	assert.Equal(expectedMetricsProvider, o.metricsProvider())
    73  }