config: add Dialer field to ConnectionConfig and PoolConfig with option constructors
This commit is contained in:
@@ -2,6 +2,7 @@ package honeybee
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"git.wisehodl.dev/jay/go-honeybee/transport"
|
"git.wisehodl.dev/jay/go-honeybee/transport"
|
||||||
|
"git.wisehodl.dev/jay/go-honeybee/types"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ type PoolConfig struct {
|
|||||||
ConnectionConfig transport.ConnectionConfig
|
ConnectionConfig transport.ConnectionConfig
|
||||||
WorkerFactory WorkerFactory
|
WorkerFactory WorkerFactory
|
||||||
WorkerConfig WorkerConfig
|
WorkerConfig WorkerConfig
|
||||||
|
Dialer types.Dialer
|
||||||
}
|
}
|
||||||
|
|
||||||
type PoolOption func(*PoolConfig) error
|
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 {
|
func WithWorkerFactory(wf WorkerFactory) PoolOption {
|
||||||
return func(c *PoolConfig) error {
|
return func(c *PoolConfig) error {
|
||||||
c.WorkerFactory = wf
|
c.WorkerFactory = wf
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package honeybee
|
package honeybee
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
|
||||||
"git.wisehodl.dev/jay/go-honeybee/transport"
|
"git.wisehodl.dev/jay/go-honeybee/transport"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"testing"
|
"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
|
package transport
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.wisehodl.dev/jay/go-honeybee/types"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@@ -21,6 +22,7 @@ type ConnectionConfig struct {
|
|||||||
IncomingBufferSize int
|
IncomingBufferSize int
|
||||||
ErrorsBufferSize int
|
ErrorsBufferSize int
|
||||||
Retry RetryConfig
|
Retry RetryConfig
|
||||||
|
Dialer types.Dialer
|
||||||
}
|
}
|
||||||
|
|
||||||
type RetryConfig struct {
|
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 {
|
func WithRetryDisabled() ConnectionOption {
|
||||||
return func(c *ConnectionConfig) error {
|
return func(c *ConnectionConfig) error {
|
||||||
c.Retry.Disabled = true
|
c.Retry.Disabled = true
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package transport
|
package transport
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"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