config: add Dialer field to ConnectionConfig and PoolConfig with option constructors
This commit is contained in:
@@ -2,6 +2,7 @@ package honeybee
|
||||
|
||||
import (
|
||||
"git.wisehodl.dev/jay/go-honeybee/transport"
|
||||
"git.wisehodl.dev/jay/go-honeybee/types"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -17,6 +18,7 @@ type PoolConfig struct {
|
||||
ConnectionConfig transport.ConnectionConfig
|
||||
WorkerFactory WorkerFactory
|
||||
WorkerConfig WorkerConfig
|
||||
Dialer types.Dialer
|
||||
}
|
||||
|
||||
type PoolOption func(*PoolConfig) error
|
||||
@@ -122,6 +124,13 @@ func WithWorkerConfig(wc WorkerConfig) PoolOption {
|
||||
}
|
||||
}
|
||||
|
||||
func WithPoolDialer(d types.Dialer) PoolOption {
|
||||
return func(c *PoolConfig) error {
|
||||
c.Dialer = d
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func WithWorkerFactory(wf WorkerFactory) PoolOption {
|
||||
return func(c *PoolConfig) error {
|
||||
c.WorkerFactory = wf
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package honeybee
|
||||
|
||||
import (
|
||||
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
|
||||
"git.wisehodl.dev/jay/go-honeybee/transport"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
@@ -138,3 +139,10 @@ func TestValidatePoolConfig(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestWithPoolDialer(t *testing.T) {
|
||||
mock := &honeybeetest.MockDialer{}
|
||||
conf, err := NewPoolConfig(WithPoolDialer(mock))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, mock, conf.Dialer)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package transport
|
||||
|
||||
import (
|
||||
"git.wisehodl.dev/jay/go-honeybee/types"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
@@ -21,6 +22,7 @@ type ConnectionConfig struct {
|
||||
IncomingBufferSize int
|
||||
ErrorsBufferSize int
|
||||
Retry RetryConfig
|
||||
Dialer types.Dialer
|
||||
}
|
||||
|
||||
type RetryConfig struct {
|
||||
@@ -220,6 +222,13 @@ func WithErrorsBufferSize(value int) ConnectionOption {
|
||||
}
|
||||
}
|
||||
|
||||
func WithConnectionDialer(d types.Dialer) ConnectionOption {
|
||||
return func(c *ConnectionConfig) error {
|
||||
c.Dialer = d
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func WithRetryDisabled() ConnectionOption {
|
||||
return func(c *ConnectionConfig) error {
|
||||
c.Retry.Disabled = true
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package transport
|
||||
|
||||
import (
|
||||
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"net/http"
|
||||
"testing"
|
||||
@@ -253,3 +254,10 @@ func TestValidateConnectionConfig(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestWithConnectionDialer(t *testing.T) {
|
||||
mock := &honeybeetest.MockDialer{}
|
||||
conf, err := NewConnectionConfig(WithConnectionDialer(mock))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, mock, conf.Dialer)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user