options_test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright 2020-2021 InfluxData, Inc. All rights reserved.
  2. // Use of this source code is governed by MIT
  3. // license that can be found in the LICENSE file.
  4. package http_test
  5. import (
  6. "crypto/tls"
  7. nethttp "net/http"
  8. "testing"
  9. "time"
  10. "github.com/influxdata/influxdb-client-go/v2/api/http"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func TestDefaultOptions(t *testing.T) {
  14. opts := http.DefaultOptions()
  15. assert.Equal(t, (*tls.Config)(nil), opts.TLSConfig())
  16. assert.Equal(t, uint(20), opts.HTTPRequestTimeout())
  17. assert.NotNil(t, opts.HTTPClient())
  18. assert.True(t, opts.OwnHTTPClient())
  19. assert.EqualValues(t, "", opts.ApplicationName())
  20. }
  21. func TestOptionsSetting(t *testing.T) {
  22. tlsConfig := &tls.Config{
  23. InsecureSkipVerify: true,
  24. }
  25. opts := http.DefaultOptions().
  26. SetTLSConfig(tlsConfig).
  27. SetHTTPRequestTimeout(50).
  28. SetApplicationName("Monitor/1.1")
  29. assert.Equal(t, tlsConfig, opts.TLSConfig())
  30. assert.Equal(t, uint(50), opts.HTTPRequestTimeout())
  31. assert.EqualValues(t, "Monitor/1.1", opts.ApplicationName())
  32. if client := opts.HTTPClient(); assert.NotNil(t, client) {
  33. assert.Equal(t, 50*time.Second, client.Timeout)
  34. assert.Equal(t, tlsConfig, client.Transport.(*nethttp.Transport).TLSClientConfig)
  35. assert.True(t, opts.OwnHTTPClient())
  36. }
  37. client := &nethttp.Client{
  38. Transport: &nethttp.Transport{},
  39. }
  40. opts = http.DefaultOptions()
  41. opts.SetHTTPClient(client)
  42. assert.Equal(t, client, opts.HTTPClient())
  43. assert.False(t, opts.OwnHTTPClient())
  44. }