|
|
|
package internal
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"google.golang.org/grpc"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestWithDialOption(t *testing.T) {
|
|
|
|
var options ClientOptions
|
|
|
|
agent := grpc.WithUserAgent("chrome")
|
|
|
|
opt := WithDialOption(agent)
|
|
|
|
opt(&options)
|
|
|
|
assert.Contains(t, options.DialOptions, agent)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestWithTimeout(t *testing.T) {
|
|
|
|
var options ClientOptions
|
|
|
|
opt := WithTimeout(time.Second)
|
|
|
|
opt(&options)
|
|
|
|
assert.Equal(t, time.Second, options.Timeout)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestWithRetry(t *testing.T) {
|
|
|
|
var options ClientOptions
|
|
|
|
opt := WithRetry()
|
|
|
|
opt(&options)
|
|
|
|
assert.True(t, options.Retry)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestWithUnaryClientInterceptor(t *testing.T) {
|
|
|
|
var options ClientOptions
|
|
|
|
opt := WithUnaryClientInterceptor(func(ctx context.Context, method string, req, reply interface{},
|
|
|
|
cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
|
|
|
|
return nil
|
|
|
|
})
|
|
|
|
opt(&options)
|
|
|
|
assert.Equal(t, 1, len(options.DialOptions))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestBuildDialOptions(t *testing.T) {
|
|
|
|
var c client
|
|
|
|
agent := grpc.WithUserAgent("chrome")
|
|
|
|
opts := c.buildDialOptions(WithDialOption(agent))
|
|
|
|
assert.Contains(t, opts, agent)
|
|
|
|
}
|