Components' init functions should return interfaces (#1997)

* Components' init functions should return interfaces

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>

* 💄

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>

* pin latest berndverst contrib fork

Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com>

* Fixed component registration in tests

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>

* Updated all cert tests

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com>
Co-authored-by: Bernd Verst <4535280+berndverst@users.noreply.github.com>
This commit is contained in:
Alessandro (Ale) Segala 2022-08-25 18:27:45 -07:00 committed by GitHub
parent b9e1408d69
commit bcea284c7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
179 changed files with 797 additions and 1056 deletions

View File

@ -58,7 +58,7 @@ var webhooks = struct { //nolint:gochecknoglobals
m map[string]*outgoingWebhook
}{m: make(map[string]*outgoingWebhook)}
func NewDingTalkWebhook(l logger.Logger) *DingTalkWebhook {
func NewDingTalkWebhook(l logger.Logger) bindings.InputOutputBinding {
// See guidance on proper HTTP client settings here:
// https://medium.com/@nate510/don-t-use-go-s-default-http-client-4804cb19f779
dialer := &net.Dialer{ //nolint:exhaustivestruct

View File

@ -37,7 +37,7 @@ type DubboOutputBinding struct {
var dubboBinding *DubboOutputBinding
func NewDubboOutput(logger logger.Logger) *DubboOutputBinding {
func NewDubboOutput(logger logger.Logger) bindings.OutputBinding {
if dubboBinding == nil {
dubboBinding = &DubboOutputBinding{
ctxCache: make(map[string]*dubboContext),

View File

@ -59,7 +59,7 @@ type Nacos struct {
}
// NewNacos returns a new Nacos instance.
func NewNacos(logger logger.Logger) *Nacos {
func NewNacos(logger logger.Logger) bindings.OutputBinding {
return &Nacos{
logger: logger,
watchesLock: sync.Mutex{},

View File

@ -34,7 +34,7 @@ func TestInputBindingRead(t *testing.T) { //nolint:paralleltest
var err error
m.Properties, err = getNacosLocalCacheMetadata()
require.NoError(t, err)
n := NewNacos(logger.NewLogger("test"))
n := NewNacos(logger.NewLogger("test")).(*Nacos)
err = n.Init(m)
require.NoError(t, err)
var count int32

View File

@ -40,7 +40,7 @@ type ossMetadata struct {
}
// NewAliCloudOSS returns a new instance.
func NewAliCloudOSS(logger logger.Logger) *AliCloudOSS {
func NewAliCloudOSS(logger logger.Logger) bindings.OutputBinding {
return &AliCloudOSS{logger: logger}
}

View File

@ -48,7 +48,7 @@ func (s *AliCloudSlsLogstorage) Init(metadata bindings.Metadata) error {
return nil
}
func NewAliCloudSlsLogstorage(logger logger.Logger) *AliCloudSlsLogstorage {
func NewAliCloudSlsLogstorage(logger logger.Logger) bindings.OutputBinding {
logger.Debug("initialized Sls log storage binding component")
s := &AliCloudSlsLogstorage{
logger: logger,

View File

@ -51,7 +51,7 @@ type AliCloudTableStore struct {
metadata tablestoreMetadata
}
func NewAliCloudTableStore(log logger.Logger) *AliCloudTableStore {
func NewAliCloudTableStore(log logger.Logger) bindings.OutputBinding {
return &AliCloudTableStore{
logger: log,
client: nil,

View File

@ -65,7 +65,7 @@ type APNS struct {
}
// NewAPNS will create a new APNS output binding.
func NewAPNS(logger logger.Logger) *APNS {
func NewAPNS(logger logger.Logger) bindings.OutputBinding {
return &APNS{
logger: logger,
client: &http.Client{},

View File

@ -50,7 +50,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Nil(t, err)
assert.Equal(t, developmentPrefix, binding.urlPrefix)
@ -65,7 +65,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Nil(t, err)
assert.Equal(t, productionPrefix, binding.urlPrefix)
@ -79,7 +79,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Nil(t, err)
assert.Equal(t, productionPrefix, binding.urlPrefix)
@ -94,7 +94,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Error(t, err, "invalid value for development parameter: True")
})
@ -106,7 +106,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Error(t, err, "the key-id parameter is required")
})
@ -119,7 +119,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Nil(t, err)
assert.Equal(t, testKeyID, binding.authorizationBuilder.keyID)
@ -132,7 +132,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Error(t, err, "the team-id parameter is required")
})
@ -145,7 +145,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Nil(t, err)
assert.Equal(t, testTeamID, binding.authorizationBuilder.teamID)
@ -158,7 +158,7 @@ func TestInit(t *testing.T) {
teamIDKey: testTeamID,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Error(t, err, "the private-key parameter is required")
})
@ -171,7 +171,7 @@ func TestInit(t *testing.T) {
privateKeyKey: testPrivateKey,
},
}}
binding := NewAPNS(testLogger)
binding := NewAPNS(testLogger).(*APNS)
err := binding.Init(metadata)
assert.Nil(t, err)
assert.NotNil(t, binding.authorizationBuilder.privateKey)
@ -180,7 +180,7 @@ func TestInit(t *testing.T) {
func TestOperations(t *testing.T) {
testLogger := logger.NewLogger("test")
testBinding := NewAPNS(testLogger)
testBinding := NewAPNS(testLogger).(*APNS)
operations := testBinding.Operations()
assert.Equal(t, 1, len(operations))
assert.Equal(t, bindings.CreateOperation, operations[0])
@ -326,7 +326,7 @@ func TestInvoke(t *testing.T) {
}
func makeTestBinding(t *testing.T, log logger.Logger) *APNS {
testBinding := NewAPNS(log)
testBinding := NewAPNS(log).(*APNS)
bindingMetadata := bindings.Metadata{Base: metadata.Base{
Properties: map[string]string{
developmentKey: "true",

View File

@ -44,7 +44,7 @@ type dynamoDBMetadata struct {
}
// NewDynamoDB returns a new DynamoDB instance.
func NewDynamoDB(logger logger.Logger) *DynamoDB {
func NewDynamoDB(logger logger.Logger) bindings.OutputBinding {
return &DynamoDB{logger: logger}
}

View File

@ -82,7 +82,7 @@ type recordProcessor struct {
}
// NewAWSKinesis returns a new AWS Kinesis instance.
func NewAWSKinesis(logger logger.Logger) *AWSKinesis {
func NewAWSKinesis(logger logger.Logger) bindings.InputOutputBinding {
return &AWSKinesis{logger: logger}
}

View File

@ -84,7 +84,7 @@ type listPayload struct {
}
// NewAWSS3 returns a new AWSS3 instance.
func NewAWSS3(logger logger.Logger) *AWSS3 {
func NewAWSS3(logger logger.Logger) bindings.OutputBinding {
return &AWSS3{logger: logger}
}

View File

@ -143,7 +143,7 @@ func TestMergeWithRequestMetadata(t *testing.T) {
}
func TestGetOption(t *testing.T) {
s3 := NewAWSS3(logger.NewLogger("s3"))
s3 := NewAWSS3(logger.NewLogger("s3")).(*AWSS3)
s3.metadata = &s3Metadata{}
t.Run("return error if key is missing", func(t *testing.T) {
@ -154,7 +154,7 @@ func TestGetOption(t *testing.T) {
}
func TestDeleteOption(t *testing.T) {
s3 := NewAWSS3(logger.NewLogger("s3"))
s3 := NewAWSS3(logger.NewLogger("s3")).(*AWSS3)
s3.metadata = &s3Metadata{}
t.Run("return error if key is missing", func(t *testing.T) {

View File

@ -56,7 +56,7 @@ type sesMetadata struct {
}
// NewAWSSES creates a new AWSSES binding instance.
func NewAWSSES(logger logger.Logger) *AWSSES {
func NewAWSSES(logger logger.Logger) bindings.OutputBinding {
return &AWSSES{logger: logger}
}

View File

@ -48,7 +48,7 @@ type dataPayload struct {
}
// NewAWSSNS creates a new AWSSNS binding instance.
func NewAWSSNS(logger logger.Logger) *AWSSNS {
func NewAWSSNS(logger logger.Logger) bindings.OutputBinding {
return &AWSSNS{logger: logger}
}

View File

@ -44,7 +44,7 @@ type sqsMetadata struct {
}
// NewAWSSQS returns a new AWS SQS instance.
func NewAWSSQS(logger logger.Logger) *AWSSQS {
func NewAWSSQS(logger logger.Logger) bindings.InputOutputBinding {
return &AWSSQS{logger: logger}
}

View File

@ -105,7 +105,7 @@ type listPayload struct {
}
// NewAzureBlobStorage returns a new Azure Blob Storage instance.
func NewAzureBlobStorage(logger logger.Logger) *AzureBlobStorage {
func NewAzureBlobStorage(logger logger.Logger) bindings.OutputBinding {
return &AzureBlobStorage{logger: logger}
}

View File

@ -26,7 +26,7 @@ import (
func TestParseMetadata(t *testing.T) {
m := bindings.Metadata{}
blobStorage := NewAzureBlobStorage(logger.NewLogger("test"))
blobStorage := NewAzureBlobStorage(logger.NewLogger("test")).(*AzureBlobStorage)
t.Run("parse all metadata", func(t *testing.T) {
m.Properties = map[string]string{
@ -83,7 +83,7 @@ func TestParseMetadata(t *testing.T) {
}
func TestGetOption(t *testing.T) {
blobStorage := NewAzureBlobStorage(logger.NewLogger("test"))
blobStorage := NewAzureBlobStorage(logger.NewLogger("test")).(*AzureBlobStorage)
t.Run("return error if blobName is missing", func(t *testing.T) {
r := bindings.InvokeRequest{}
@ -95,7 +95,7 @@ func TestGetOption(t *testing.T) {
}
func TestDeleteOption(t *testing.T) {
blobStorage := NewAzureBlobStorage(logger.NewLogger("test"))
blobStorage := NewAzureBlobStorage(logger.NewLogger("test")).(*AzureBlobStorage)
t.Run("return error if blobName is missing", func(t *testing.T) {
r := bindings.InvokeRequest{}

View File

@ -47,7 +47,7 @@ type cosmosDBCredentials struct {
const timeoutValue = 30
// NewCosmosDB returns a new CosmosDB instance.
func NewCosmosDB(logger logger.Logger) *CosmosDB {
func NewCosmosDB(logger logger.Logger) bindings.OutputBinding {
return &CosmosDB{logger: logger}
}

View File

@ -54,7 +54,7 @@ type cosmosDBGremlinAPICredentials struct {
}
// NewCosmosDBGremlinAPI returns a new CosmosDBGremlinAPI instance.
func NewCosmosDBGremlinAPI(logger logger.Logger) *CosmosDBGremlinAPI {
func NewCosmosDBGremlinAPI(logger logger.Logger) bindings.OutputBinding {
return &CosmosDBGremlinAPI{logger: logger}
}

View File

@ -58,7 +58,7 @@ type azureEventGridMetadata struct {
}
// NewAzureEventGrid returns a new Azure Event Grid instance.
func NewAzureEventGrid(logger logger.Logger) *AzureEventGrid {
func NewAzureEventGrid(logger logger.Logger) bindings.InputOutputBinding {
return &AzureEventGrid{logger: logger}
}

View File

@ -146,7 +146,7 @@ func (m azureEventHubsMetadata) partitioned() bool {
}
// NewAzureEventHubs returns a new Azure Event hubs instance.
func NewAzureEventHubs(logger logger.Logger) *AzureEventHubs {
func NewAzureEventHubs(logger logger.Logger) bindings.InputOutputBinding {
return &AzureEventHubs{logger: logger}
}

View File

@ -103,7 +103,7 @@ func TestParseMetadata(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
m := bindings.Metadata{}
m.Properties = tt.properties
a := NewAzureServiceBusQueues(logger.NewLogger("test"))
a := NewAzureServiceBusQueues(logger.NewLogger("test")).(*AzureServiceBusQueues)
meta, err := a.parseMetadata(m)
assert.Nil(t, err)
assert.Equal(t, tt.expectedConnectionString, meta.ConnectionString)
@ -137,7 +137,7 @@ func TestParseMetadataWithInvalidTTL(t *testing.T) {
m := bindings.Metadata{}
m.Properties = tt.properties
a := NewAzureServiceBusQueues(logger.NewLogger("test"))
a := NewAzureServiceBusQueues(logger.NewLogger("test")).(*AzureServiceBusQueues)
_, err := a.parseMetadata(m)
assert.NotNil(t, err)
})
@ -183,7 +183,7 @@ func TestParseMetadataConnectionStringAndNamespaceNameExclusivity(t *testing.T)
t.Run(tt.name, func(t *testing.T) {
m := bindings.Metadata{}
m.Properties = tt.properties
a := NewAzureServiceBusQueues(logger.NewLogger("test"))
a := NewAzureServiceBusQueues(logger.NewLogger("test")).(*AzureServiceBusQueues)
meta, err := a.parseMetadata(m)
if tt.expectedErr {
assert.NotNil(t, err)

View File

@ -52,7 +52,7 @@ type AzureServiceBusQueues struct {
}
// NewAzureServiceBusQueues returns a new AzureServiceBusQueues instance.
func NewAzureServiceBusQueues(logger logger.Logger) *AzureServiceBusQueues {
func NewAzureServiceBusQueues(logger logger.Logger) bindings.InputOutputBinding {
return &AzureServiceBusQueues{
senderLock: sync.RWMutex{},
logger: logger,

View File

@ -58,7 +58,7 @@ func init() {
}
// NewSignalR creates a new output binding for Azure SignalR.
func NewSignalR(logger logger.Logger) *SignalR {
func NewSignalR(logger logger.Logger) bindings.OutputBinding {
return &SignalR{
logger: logger,
httpClient: httpClient,

View File

@ -186,7 +186,7 @@ func TestConfigurationValid(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := NewSignalR(logger.NewLogger("test"))
s := NewSignalR(logger.NewLogger("test")).(*SignalR)
err := s.parseMetadata(tt.properties)
assert.Nil(t, err)
assert.Equal(t, tt.expectedEndpoint, s.endpoint)
@ -256,7 +256,7 @@ func TestInvalidConfigurations(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := NewSignalR(logger.NewLogger("test"))
s := NewSignalR(logger.NewLogger("test")).(*SignalR)
err := s.parseMetadata(tt.properties)
assert.NotNil(t, err)
})
@ -287,7 +287,7 @@ func TestWriteShouldFail(t *testing.T) {
response: &http.Response{StatusCode: http.StatusOK, Body: io.NopCloser(strings.NewReader(""))},
}
s := NewSignalR(logger.NewLogger("test"))
s := NewSignalR(logger.NewLogger("test")).(*SignalR)
s.endpoint = "https://fake.service.signalr.net"
s.accessKey = "G7+nIt9n48+iYSltPRf1v8kE+MupFfEt/9NSNTKOdzA="
s.httpClient = &http.Client{
@ -338,7 +338,7 @@ func TestWriteShouldSucceed(t *testing.T) {
response: &http.Response{StatusCode: http.StatusOK, Body: io.NopCloser(strings.NewReader(""))},
}
s := NewSignalR(logger.NewLogger("test"))
s := NewSignalR(logger.NewLogger("test")).(*SignalR)
s.endpoint = "https://fake.service.signalr.net"
s.accessKey = "fakekey"
s.httpClient = &http.Client{

View File

@ -178,7 +178,7 @@ type storageQueuesMetadata struct {
}
// NewAzureStorageQueues returns a new AzureStorageQueues instance.
func NewAzureStorageQueues(logger logger.Logger) *AzureStorageQueues {
func NewAzureStorageQueues(logger logger.Logger) bindings.InputOutputBinding {
return &AzureStorageQueues{helper: NewAzureQueueHelper(logger), logger: logger}
}

20
bindings/bindings.go Normal file
View File

@ -0,0 +1,20 @@
/*
Copyright 2021 The Dapr Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package bindings
// InputOutputBinding is the interface for bindings that implement both input and output bindings.
type InputOutputBinding interface {
InputBinding
OutputBinding
}

View File

@ -43,7 +43,7 @@ type commercetoolsMetadata struct {
scopes string
}
func NewCommercetools(logger logger.Logger) *Binding {
func NewCommercetools(logger logger.Logger) bindings.OutputBinding {
return &Binding{logger: logger}
}

View File

@ -36,7 +36,7 @@ type Binding struct {
}
// NewCron returns a new Cron event input binding.
func NewCron(logger logger.Logger) *Binding {
func NewCron(logger logger.Logger) bindings.InputOutputBinding {
return &Binding{
logger: logger,
parser: cron.NewParser(

View File

@ -40,7 +40,7 @@ func getNewCron() *Binding {
l.SetOutputLevel(logger.DebugLevel)
}
return NewCron(l)
return NewCron(l).(*Binding)
}
// go test -v -timeout 15s -count=1 ./bindings/cron/.

View File

@ -78,7 +78,7 @@ type createResponse struct {
}
// NewGCPStorage returns a new GCP storage instance.
func NewGCPStorage(logger logger.Logger) *GCPStorage {
func NewGCPStorage(logger logger.Logger) bindings.OutputBinding {
return &GCPStorage{logger: logger}
}

View File

@ -54,7 +54,7 @@ type pubSubMetadata struct {
}
// NewGCPPubSub returns a new GCPPubSub instance.
func NewGCPPubSub(logger logger.Logger) *GCPPubSub {
func NewGCPPubSub(logger logger.Logger) bindings.InputOutputBinding {
return &GCPPubSub{logger: logger}
}

View File

@ -53,7 +53,7 @@ type GraphQL struct {
}
// NewGraphQL returns a new GraphQL binding instance.
func NewGraphQL(logger logger.Logger) *GraphQL {
func NewGraphQL(logger logger.Logger) bindings.OutputBinding {
return &GraphQL{logger: logger}
}

View File

@ -46,7 +46,7 @@ type httpMetadata struct {
}
// NewHTTP returns a new HTTPSource.
func NewHTTP(logger logger.Logger) *HTTPSource {
func NewHTTP(logger logger.Logger) bindings.OutputBinding {
return &HTTPSource{logger: logger}
}

View File

@ -70,7 +70,7 @@ type listPayload struct {
}
// NewHuaweiOBS returns a new Huawei OBS instance.
func NewHuaweiOBS(logger logger.Logger) *HuaweiOBS {
func NewHuaweiOBS(logger logger.Logger) bindings.OutputBinding {
return &HuaweiOBS{logger: logger}
}

View File

@ -61,7 +61,7 @@ func (m *MockHuaweiOBSService) ListObjects(ctx context.Context, input *obs.ListO
}
func TestParseMetadata(t *testing.T) {
obs := NewHuaweiOBS(logger.NewLogger("test"))
obs := NewHuaweiOBS(logger.NewLogger("test")).(*HuaweiOBS)
t.Run("Has correct metadata", func(t *testing.T) {
m := bindings.Metadata{}

View File

@ -59,7 +59,7 @@ type influxMetadata struct {
}
// NewInflux returns a new kafka binding instance.
func NewInflux(logger logger.Logger) *Influx {
func NewInflux(logger logger.Logger) bindings.OutputBinding {
return &Influx{logger: logger}
}

View File

@ -47,7 +47,7 @@ func TestOperations(t *testing.T) {
}
func TestInflux_Init(t *testing.T) {
influx := NewInflux(logger.NewLogger("test"))
influx := NewInflux(logger.NewLogger("test")).(*Influx)
assert.Nil(t, influx.queryAPI)
assert.Nil(t, influx.writeAPI)
assert.Nil(t, influx.metadata)

View File

@ -68,7 +68,7 @@ type IPFSBinding struct {
}
// NewIPFSBinding returns a new IPFSBinding.
func NewIPFSBinding(logger logger.Logger) *IPFSBinding {
func NewIPFSBinding(logger logger.Logger) bindings.OutputBinding {
return &IPFSBinding{
logger: logger,
}

View File

@ -59,7 +59,7 @@ func TestSingleNodeGlobalNetwork(t *testing.T) {
sort.Strings(folderCids)
t.Run("init node", func(t *testing.T) {
b = NewIPFSBinding(logger.NewLogger("tests"))
b = NewIPFSBinding(logger.NewLogger("tests")).(*IPFSBinding)
err := b.Init(bindings.Metadata{Base: metadata.Base{
Properties: map[string]string{
"repoPath": repoPath,

View File

@ -38,7 +38,7 @@ type Binding struct {
}
// NewKafka returns a new kafka binding instance.
func NewKafka(logger logger.Logger) *Binding {
func NewKafka(logger logger.Logger) bindings.InputOutputBinding {
k := kafka.NewKafka(logger)
// in kafka binding component, disable consumer retry by default
k.DefaultConsumeRetryEnabled = false

View File

@ -52,7 +52,7 @@ type createResponse struct {
}
// NewLocalStorage returns a new LocalStorage instance.
func NewLocalStorage(logger logger.Logger) *LocalStorage {
func NewLocalStorage(logger logger.Logger) bindings.OutputBinding {
return &LocalStorage{logger: logger}
}

View File

@ -25,7 +25,7 @@ import (
func TestParseMetadata(t *testing.T) {
m := bindings.Metadata{}
m.Properties = map[string]string{"rootPath": "/files"}
localStorage := NewLocalStorage(logger.NewLogger("test"))
localStorage := NewLocalStorage(logger.NewLogger("test")).(*LocalStorage)
meta, err := localStorage.parseMetadata(m)
assert.Nil(t, err)
assert.Equal(t, "/files", meta.RootPath)

View File

@ -69,7 +69,7 @@ type MQTT struct {
}
// NewMQTT returns a new MQTT instance.
func NewMQTT(logger logger.Logger) *MQTT {
func NewMQTT(logger logger.Logger) bindings.InputOutputBinding {
return &MQTT{logger: logger}
}

View File

@ -63,7 +63,7 @@ func TestInvokeWithTopic(t *testing.T) {
logger := logger.NewLogger("test")
r := NewMQTT(logger)
r := NewMQTT(logger).(*MQTT)
err := r.Init(metadata)
assert.Nil(t, err)

View File

@ -199,7 +199,7 @@ func TestParseMetadata(t *testing.T) {
topic := "/topic/where/the/data/is/from"
logger := logger.NewLogger("test")
m := NewMQTT(logger)
m := NewMQTT(logger).(*MQTT)
m.ctx, m.cancel = context.WithCancel(context.Background())
m.handleMessage(context.Background(), func(ctx context.Context, r *bindings.ReadResponse) ([]byte, error) {

View File

@ -76,7 +76,7 @@ type Mysql struct {
}
// NewMysql returns a new MySQL output binding.
func NewMysql(logger logger.Logger) *Mysql {
func NewMysql(logger logger.Logger) bindings.OutputBinding {
return &Mysql{logger: logger}
}

View File

@ -73,7 +73,7 @@ func TestMysqlIntegration(t *testing.T) {
t.SkipNow()
}
b := NewMysql(logger.NewLogger("test"))
b := NewMysql(logger.NewLogger("test")).(*Mysql)
m := bindings.Metadata{Base: metadata.Base{Properties: map[string]string{connectionURLKey: url}}}
if err := b.Init(m); err != nil {
t.Fatal(err)

View File

@ -180,7 +180,7 @@ func mockDatabase(t *testing.T) (*Mysql, sqlmock.Sqlmock, error) {
t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
}
m := NewMysql(logger.NewLogger("test"))
m := NewMysql(logger.NewLogger("test")).(*Mysql)
m.db = db
return m, mock, err

View File

@ -43,7 +43,7 @@ type Postgres struct {
}
// NewPostgres returns a new PostgreSQL output binding.
func NewPostgres(logger logger.Logger) *Postgres {
func NewPostgres(logger logger.Logger) bindings.OutputBinding {
return &Postgres{logger: logger}
}

View File

@ -62,7 +62,7 @@ func TestPostgresIntegration(t *testing.T) {
}
// live DB test
b := NewPostgres(logger.NewLogger("test"))
b := NewPostgres(logger.NewLogger("test")).(*Postgres)
m := bindings.Metadata{Base: metadata.Base{Properties: map[string]string{connectionURLKey: url}}}
if err := b.Init(m); err != nil {
t.Fatal(err)

View File

@ -43,7 +43,7 @@ type postmarkMetadata struct {
}
// NewPostmark returns a new Postmark bindings instance.
func NewPostmark(logger logger.Logger) *Postmark {
func NewPostmark(logger logger.Logger) bindings.OutputBinding {
return &Postmark{logger: logger}
}

View File

@ -65,7 +65,7 @@ type rabbitMQMetadata struct {
}
// NewRabbitMQ returns a new rabbitmq instance.
func NewRabbitMQ(logger logger.Logger) *RabbitMQ {
func NewRabbitMQ(logger logger.Logger) bindings.InputOutputBinding {
return &RabbitMQ{logger: logger}
}

View File

@ -82,7 +82,7 @@ func TestQueuesWithTTL(t *testing.T) {
logger := logger.NewLogger("test")
r := NewRabbitMQ(logger)
r := NewRabbitMQ(logger).(*RabbitMQ)
err := r.Init(metadata)
assert.Nil(t, err)
@ -139,7 +139,7 @@ func TestPublishingWithTTL(t *testing.T) {
logger := logger.NewLogger("test")
rabbitMQBinding1 := NewRabbitMQ(logger)
rabbitMQBinding1 := NewRabbitMQ(logger).(*RabbitMQ)
err := rabbitMQBinding1.Init(metadata)
assert.Nil(t, err)
@ -170,7 +170,7 @@ func TestPublishingWithTTL(t *testing.T) {
assert.False(t, ok)
// Getting before it is expired, should return it
rabbitMQBinding2 := NewRabbitMQ(logger)
rabbitMQBinding2 := NewRabbitMQ(logger).(*RabbitMQ)
err = rabbitMQBinding2.Init(metadata)
assert.Nil(t, err)
@ -215,7 +215,7 @@ func TestExclusiveQueue(t *testing.T) {
logger := logger.NewLogger("test")
r := NewRabbitMQ(logger)
r := NewRabbitMQ(logger).(*RabbitMQ)
err := r.Init(metadata)
assert.Nil(t, err)
@ -267,7 +267,7 @@ func TestPublishWithPriority(t *testing.T) {
logger := logger.NewLogger("test")
r := NewRabbitMQ(logger)
r := NewRabbitMQ(logger).(*RabbitMQ)
err := r.Init(metadata)
assert.Nil(t, err)

View File

@ -36,7 +36,7 @@ type Redis struct {
}
// NewRedis returns a new redis bindings instance.
func NewRedis(logger logger.Logger) *Redis {
func NewRedis(logger logger.Logger) bindings.OutputBinding {
return &Redis{logger: logger}
}

View File

@ -43,7 +43,7 @@ type StateConfig struct {
}
// NewRethinkDBStateChangeBinding returns a new RethinkDB actor event input binding.
func NewRethinkDBStateChangeBinding(logger logger.Logger) *Binding {
func NewRethinkDBStateChangeBinding(logger logger.Logger) bindings.InputBinding {
return &Binding{
logger: logger,
}

View File

@ -42,7 +42,7 @@ func getNewRethinkActorBinding() *Binding {
l.SetOutputLevel(logger.DebugLevel)
}
return NewRethinkDBStateChangeBinding(l)
return NewRethinkDBStateChangeBinding(l).(*Binding)
}
/*

View File

@ -56,7 +56,7 @@ type Metadata struct {
}
// NewSMTP returns a new smtp binding instance.
func NewSMTP(logger logger.Logger) *Mailer {
func NewSMTP(logger logger.Logger) bindings.OutputBinding {
return &Mailer{logger: logger}
}

View File

@ -56,7 +56,7 @@ type sendGridRestError struct {
}
// NewSendGrid returns a new SendGrid bindings instance.
func NewSendGrid(logger logger.Logger) *SendGrid {
func NewSendGrid(logger logger.Logger) bindings.OutputBinding {
return &SendGrid{logger: logger}
}

View File

@ -49,7 +49,7 @@ type twilioMetadata struct {
timeout time.Duration
}
func NewSMS(logger logger.Logger) *SMS {
func NewSMS(logger logger.Logger) bindings.OutputBinding {
return &SMS{
logger: logger,
httpClient: &http.Client{

View File

@ -75,7 +75,7 @@ func TestWriteShouldSucceed(t *testing.T) {
"toNumber": "toNumber", "fromNumber": "fromNumber",
"accountSid": "accountSid", "authToken": "authToken",
}
tw := NewSMS(logger.NewLogger("test"))
tw := NewSMS(logger.NewLogger("test")).(*SMS)
tw.httpClient = &http.Client{
Transport: httpTransport,
}
@ -112,7 +112,7 @@ func TestWriteShouldFail(t *testing.T) {
"fromNumber": "fromNumber",
"accountSid": "accountSid", "authToken": "authToken",
}
tw := NewSMS(logger.NewLogger("test"))
tw := NewSMS(logger.NewLogger("test")).(*SMS)
tw.httpClient = &http.Client{
Transport: httpTransport,
}

View File

@ -36,7 +36,7 @@ type Binding struct {
}
// NewTwitter returns a new Twitter event input binding.
func NewTwitter(logger logger.Logger) *Binding {
func NewTwitter(logger logger.Logger) bindings.InputOutputBinding {
return &Binding{logger: logger}
}

View File

@ -58,7 +58,7 @@ func getRuntimeMetadata() map[string]string {
// go test -v -count=1 ./bindings/twitter/.
func TestInit(t *testing.T) {
m := getTestMetadata()
tw := NewTwitter(logger.NewLogger("test"))
tw := NewTwitter(logger.NewLogger("test")).(*Binding)
err := tw.Init(m)
assert.Nilf(t, err, "error initializing valid metadata properties")
}
@ -66,7 +66,7 @@ func TestInit(t *testing.T) {
// TestReadError excutes the Read method and fails before the Twitter API call
// go test -v -count=1 -run TestReadError ./bindings/twitter/.
func TestReadError(t *testing.T) {
tw := NewTwitter(logger.NewLogger("test"))
tw := NewTwitter(logger.NewLogger("test")).(*Binding)
m := getTestMetadata()
err := tw.Init(m)
assert.Nilf(t, err, "error initializing valid metadata properties")
@ -90,7 +90,7 @@ func TestRead(t *testing.T) {
m.Properties = getRuntimeMetadata()
// add query
m.Properties["query"] = "microsoft"
tw := NewTwitter(logger.NewLogger("test"))
tw := NewTwitter(logger.NewLogger("test")).(*Binding)
tw.logger.SetOutputLevel(logger.DebugLevel)
err := tw.Init(m)
assert.Nilf(t, err, "error initializing read")
@ -126,7 +126,7 @@ func TestInvoke(t *testing.T) {
}
m := bindings.Metadata{}
m.Properties = getRuntimeMetadata()
tw := NewTwitter(logger.NewLogger("test"))
tw := NewTwitter(logger.NewLogger("test")).(*Binding)
tw.logger.SetOutputLevel(logger.DebugLevel)
err := tw.Init(m)
assert.Nilf(t, err, "error initializing Invoke")

View File

@ -56,7 +56,7 @@ type ZeebeCommand struct {
}
// NewZeebeCommand returns a new ZeebeCommand instance.
func NewZeebeCommand(logger logger.Logger) *ZeebeCommand {
func NewZeebeCommand(logger logger.Logger) bindings.OutputBinding {
return &ZeebeCommand{clientFactory: zeebe.NewClientFactoryImpl(logger), logger: logger}
}

View File

@ -64,7 +64,7 @@ type jobHandler struct {
}
// NewZeebeJobWorker returns a new ZeebeJobWorker instance.
func NewZeebeJobWorker(logger logger.Logger) *ZeebeJobWorker {
func NewZeebeJobWorker(logger logger.Logger) bindings.InputBinding {
return &ZeebeJobWorker{clientFactory: zeebe.NewClientFactoryImpl(logger), logger: logger}
}

View File

@ -47,7 +47,7 @@ type StandaloneRedisLock struct {
// NewStandaloneRedisLock returns a new standalone redis lock.
// Do not use this lock with a redis cluster, which might lead to unexpected lock loss.
func NewStandaloneRedisLock(logger logger.Logger) *StandaloneRedisLock {
func NewStandaloneRedisLock(logger logger.Logger) lock.Store {
s := &StandaloneRedisLock{
logger: logger,
}

View File

@ -31,7 +31,7 @@ const resourceID = "resource_xxx"
func TestStandaloneRedisLock_InitError(t *testing.T) {
t.Run("error when connection fail", func(t *testing.T) {
// construct component
comp := NewStandaloneRedisLock(logger.NewLogger("test"))
comp := NewStandaloneRedisLock(logger.NewLogger("test")).(*StandaloneRedisLock)
defer comp.Close()
cfg := lock.Metadata{Base: metadata.Base{
@ -47,7 +47,7 @@ func TestStandaloneRedisLock_InitError(t *testing.T) {
t.Run("error when no host", func(t *testing.T) {
// construct component
comp := NewStandaloneRedisLock(logger.NewLogger("test"))
comp := NewStandaloneRedisLock(logger.NewLogger("test")).(*StandaloneRedisLock)
defer comp.Close()
cfg := lock.Metadata{Base: metadata.Base{
@ -63,7 +63,7 @@ func TestStandaloneRedisLock_InitError(t *testing.T) {
t.Run("error when wrong MaxRetries", func(t *testing.T) {
// construct component
comp := NewStandaloneRedisLock(logger.NewLogger("test"))
comp := NewStandaloneRedisLock(logger.NewLogger("test")).(*StandaloneRedisLock)
defer comp.Close()
cfg := lock.Metadata{Base: metadata.Base{
@ -86,7 +86,7 @@ func TestStandaloneRedisLock_TryLock(t *testing.T) {
assert.NoError(t, err)
defer s.Close()
// construct component
comp := NewStandaloneRedisLock(logger.NewLogger("test"))
comp := NewStandaloneRedisLock(logger.NewLogger("test")).(*StandaloneRedisLock)
defer comp.Close()
cfg := lock.Metadata{Base: metadata.Base{

View File

@ -171,7 +171,7 @@ func NewSubscriber() Subscriber {
}
// NewResolver creates the instance of mDNS name resolver.
func NewResolver(logger logger.Logger) *Resolver {
func NewResolver(logger logger.Logger) nameresolution.Resolver {
r := &Resolver{
subs: make(map[string]*SubscriberPool),
appAddressesIPv4: make(map[string]*addressList),

View File

@ -69,7 +69,7 @@ func TestInitMetadata(t *testing.T) {
}
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
for _, tt := range tests {
@ -85,7 +85,7 @@ func TestInitMetadata(t *testing.T) {
func TestInitRegister(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
md := nr.Metadata{Base: metadata.Base{Properties: map[string]string{
nr.MDNSInstanceName: "testAppID",
@ -100,7 +100,7 @@ func TestInitRegister(t *testing.T) {
func TestInitRegisterDuplicate(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
md := nr.Metadata{Base: metadata.Base{Properties: map[string]string{
nr.MDNSInstanceName: "testAppID",
@ -123,7 +123,7 @@ func TestInitRegisterDuplicate(t *testing.T) {
func TestResolver(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
md := nr.Metadata{Base: metadata.Base{Properties: map[string]string{
nr.MDNSInstanceName: "testAppID",
@ -145,7 +145,7 @@ func TestResolver(t *testing.T) {
func TestResolverClose(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
md := nr.Metadata{Base: metadata.Base{Properties: map[string]string{
nr.MDNSInstanceName: "testAppID",
nr.MDNSInstanceAddress: localhost,
@ -172,7 +172,7 @@ func TestResolverClose(t *testing.T) {
func TestResolverMultipleInstances(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
// register instance A
@ -242,7 +242,7 @@ func TestResolverMultipleInstances(t *testing.T) {
func TestResolverNotFound(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
// act
@ -287,7 +287,7 @@ func TestResolverConcurrency(t *testing.T) {
// by the TestResolverConcurrency test function.
func ResolverConcurrencySubsriberClear(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
md := nr.Metadata{Base: metadata.Base{Properties: map[string]string{
nr.MDNSInstanceName: "testAppID",
@ -325,7 +325,7 @@ func ResolverConcurrencySubsriberClear(t *testing.T) {
// by the TestResolverConcurrency test function.
func ResolverConcurrencyFound(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
// register instance A
@ -422,7 +422,7 @@ func ResolverConcurrencyFound(t *testing.T) {
// by the TestResolverConcurrency test function.
func ResolverConcurrencyNotFound(t *testing.T) {
// arrange
resolver := NewResolver(logger.NewLogger("test"))
resolver := NewResolver(logger.NewLogger("test")).(*Resolver)
defer resolver.Close()
// act...

View File

@ -63,7 +63,7 @@ func createIotHubPubsubMetadata() pubsub.Metadata {
func testReadIotHubEvents(t *testing.T) {
logger := logger.NewLogger("pubsub.azure.eventhubs.integration.test")
eh := NewAzureEventHubs(logger)
eh := NewAzureEventHubs(logger).(*AzureEventHubs)
err := eh.Init(createIotHubPubsubMetadata())
assert.Nil(t, err)

View File

@ -55,7 +55,7 @@ type Store struct {
}
// NewSecreteManager returns new instance of `SecretManagerStore`.
func NewSecreteManager(logger logger.Logger) *Store {
func NewSecreteManager(logger logger.Logger) secretstores.SecretStore {
return &Store{logger: logger}
}

View File

@ -45,7 +45,7 @@ type tablestoreMetadata struct {
TableName string `json:"tableName"`
}
func NewAliCloudTableStore(logger logger.Logger) *AliCloudTableStore {
func NewAliCloudTableStore(logger logger.Logger) state.Store {
return &AliCloudTableStore{
features: []state.Feature{state.FeatureETag, state.FeatureTransactional},
logger: logger,

View File

@ -50,7 +50,7 @@ func TestReadAndWrite(t *testing.T) {
defer ctl.Finish()
store := NewAliCloudTableStore(logger.NewLogger("test"))
store := NewAliCloudTableStore(logger.NewLogger("test")).(*AliCloudTableStore)
store.Init(state.Metadata{})
store.client = &mockClient{

View File

@ -27,6 +27,7 @@ import (
awsAuth "github.com/dapr/components-contrib/internal/authentication/aws"
"github.com/dapr/components-contrib/state"
"github.com/dapr/kit/logger"
)
// StateStore is a DynamoDB state store.
@ -47,7 +48,7 @@ type dynamoDBMetadata struct {
}
// NewDynamoDBStateStore returns a new dynamoDB state store.
func NewDynamoDBStateStore() state.Store {
func NewDynamoDBStateStore(_ logger.Logger) state.Store {
return &StateStore{}
}

View File

@ -27,6 +27,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/dapr/components-contrib/state"
"github.com/dapr/kit/logger"
)
type mockedDynamoDB struct {
@ -61,7 +62,7 @@ func (m *mockedDynamoDB) BatchWriteItem(input *dynamodb.BatchWriteItemInput) (*d
func TestInit(t *testing.T) {
m := state.Metadata{}
s := NewDynamoDBStateStore()
s := NewDynamoDBStateStore(logger.NewLogger("test")).(*StateStore)
t.Run("Init with valid metadata", func(t *testing.T) {
m.Properties = map[string]string{
"AccessKey": "a",

View File

@ -158,7 +158,7 @@ func (r *StateStore) Ping() error {
}
// NewAzureBlobStorageStore instance.
func NewAzureBlobStorageStore(logger logger.Logger) *StateStore {
func NewAzureBlobStorageStore(logger logger.Logger) state.Store {
s := &StateStore{
json: jsoniter.ConfigFastest,
features: []state.Feature{state.FeatureETag},

View File

@ -25,7 +25,7 @@ import (
func TestInit(t *testing.T) {
m := state.Metadata{}
s := NewAzureBlobStorageStore(logger.NewLogger("logger"))
s := NewAzureBlobStorageStore(logger.NewLogger("logger")).(*StateStore)
t.Run("Init with valid metadata", func(t *testing.T) {
m.Properties = map[string]string{
"accountName": "acc",
@ -91,7 +91,7 @@ func TestFileName(t *testing.T) {
}
func TestBlobHTTPHeaderGeneration(t *testing.T) {
s := NewAzureBlobStorageStore(logger.NewLogger("logger"))
s := NewAzureBlobStorageStore(logger.NewLogger("logger")).(*StateStore)
t.Run("Content type is set from request, forward compatibility", func(t *testing.T) {
contentType := "application/json"
req := &state.SetRequest{

View File

@ -104,7 +104,7 @@ const (
)
// NewCosmosDBStateStore returns a new CosmosDB state store.
func NewCosmosDBStateStore(logger logger.Logger) *StateStore {
func NewCosmosDBStateStore(logger logger.Logger) state.Store {
s := &StateStore{
features: []state.Feature{state.FeatureETag, state.FeatureTransactional, state.FeatureQueryAPI},
logger: logger,

View File

@ -208,7 +208,7 @@ func (r *StateStore) Set(req *state.SetRequest) error {
return err
}
func NewAzureTablesStateStore(logger logger.Logger) *StateStore {
func NewAzureTablesStateStore(logger logger.Logger) state.Store {
s := &StateStore{
json: jsoniter.ConfigFastest,
features: []state.Feature{state.FeatureETag},

View File

@ -68,7 +68,7 @@ type cassandraMetadata struct {
}
// NewCassandraStateStore returns a new cassandra state store.
func NewCassandraStateStore(logger logger.Logger) *Cassandra {
func NewCassandraStateStore(logger logger.Logger) state.Store {
s := &Cassandra{logger: logger}
s.DefaultBulkStore = state.NewDefaultBulkStore(s)

View File

@ -26,7 +26,7 @@ type CockroachDB struct {
}
// New creates a new instance of CockroachDB state store.
func New(logger logger.Logger) *CockroachDB {
func New(logger logger.Logger) state.Store {
dba := newCockroachDBAccess(logger)
return internalNew(logger, dba)

View File

@ -53,7 +53,7 @@ func TestCockroachDBIntegration(t *testing.T) {
Base: metadata.Base{Properties: map[string]string{connectionStringKey: connectionString}},
}
pgs := New(logger.NewLogger("test"))
pgs := New(logger.NewLogger("test")).(*CockroachDB)
t.Cleanup(func() {
defer pgs.Close()
})
@ -607,7 +607,7 @@ func testInitConfiguration(t *testing.T) {
for _, rowTest := range tests {
t.Run(rowTest.name, func(t *testing.T) {
cockroackDB := New(logger)
cockroackDB := New(logger).(*CockroachDB)
defer cockroackDB.Close()
metadata := state.Metadata{

View File

@ -52,7 +52,7 @@ type Couchbase struct {
}
// NewCouchbaseStateStore returns a new couchbase state store.
func NewCouchbaseStateStore(logger logger.Logger) *Couchbase {
func NewCouchbaseStateStore(logger logger.Logger) state.Store {
s := &Couchbase{
json: jsoniter.ConfigFastest,
features: []state.Feature{state.FeatureETag},

View File

@ -56,7 +56,7 @@ type StateEntity struct {
Value string
}
func NewFirestoreStateStore(logger logger.Logger) *Firestore {
func NewFirestoreStateStore(logger logger.Logger) state.Store {
s := &Firestore{logger: logger}
s.DefaultBulkStore = state.NewDefaultBulkStore(s)

View File

@ -42,7 +42,7 @@ type consulConfig struct {
}
// NewConsulStateStore returns a new consul state store.
func NewConsulStateStore(logger logger.Logger) *Consul {
func NewConsulStateStore(logger logger.Logger) state.Store {
s := &Consul{logger: logger}
s.DefaultBulkStore = state.NewDefaultBulkStore(s)

View File

@ -40,7 +40,7 @@ type Hazelcast struct {
}
// NewHazelcastStore returns a new hazelcast backed state store.
func NewHazelcastStore(logger logger.Logger) *Hazelcast {
func NewHazelcastStore(logger logger.Logger) state.Store {
s := &Hazelcast{
json: jsoniter.ConfigFastest,
logger: logger,

View File

@ -51,7 +51,7 @@ type memcachedMetadata struct {
timeout time.Duration
}
func NewMemCacheStateStore(logger logger.Logger) *Memcached {
func NewMemCacheStateStore(logger logger.Logger) state.Store {
s := &Memcached{
json: jsoniter.ConfigFastest,
logger: logger,

View File

@ -84,7 +84,7 @@ func TestMemcachedMetadata(t *testing.T) {
}
func TestParseTTL(t *testing.T) {
store := NewMemCacheStateStore(logger.NewLogger("test"))
store := NewMemCacheStateStore(logger.NewLogger("test")).(*Memcached)
t.Run("TTL Not an integer", func(t *testing.T) {
ttlInSeconds := "not an integer"
ttl, err := store.parseTTL(&state.SetRequest{

View File

@ -102,7 +102,7 @@ type Item struct {
}
// NewMongoDB returns a new MongoDB state store.
func NewMongoDB(logger logger.Logger) *MongoDB {
func NewMongoDB(logger logger.Logger) state.Store {
s := &MongoDB{
features: []state.Feature{state.FeatureETag, state.FeatureTransactional, state.FeatureQueryAPI},
logger: logger,

View File

@ -84,7 +84,7 @@ type MySQL struct {
}
// NewMySQLStateStore creates a new instance of MySQL state store.
func NewMySQLStateStore(logger logger.Logger) *MySQL {
func NewMySQLStateStore(logger logger.Logger) state.Store {
factory := newMySQLFactory(logger)
// Store the provided logger and return the object. The rest of the

View File

@ -106,7 +106,7 @@ func TestMySQLIntegration(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
p := NewMySQLStateStore(logger)
p := NewMySQLStateStore(logger).(*MySQL)
defer p.Close()
metadata := state.Metadata{
@ -131,7 +131,7 @@ func TestMySQLIntegration(t *testing.T) {
Base: metadata.Base{Properties: map[string]string{connectionStringKey: connectionString, pemPathKey: pemPath}},
}
mys := NewMySQLStateStore(logger.NewLogger("test"))
mys := NewMySQLStateStore(logger.NewLogger("test")).(*MySQL)
t.Cleanup(func() {
defer mys.Close()
})

View File

@ -164,7 +164,7 @@ func (r *StateStore) Ping() error {
return r.pingBucket()
}
func NewOCIObjectStorageStore(logger logger.Logger) *StateStore {
func NewOCIObjectStorageStore(logger logger.Logger) state.Store {
s := &StateStore{
json: jsoniter.ConfigFastest,
features: []state.Feature{state.FeatureETag},

View File

@ -286,7 +286,7 @@ func testDelete(t *testing.T, ociProperties map[string]string) {
func testPing(t *testing.T, ociProperties map[string]string) {
m := state.Metadata{}
m.Properties = ociProperties
s := NewOCIObjectStorageStore(logger.NewLogger("logger"))
s := NewOCIObjectStorageStore(logger.NewLogger("logger")).(*StateStore)
t.Run("Ping", func(t *testing.T) {
err := s.Init(m)
assert.Nil(t, err)

View File

@ -41,7 +41,7 @@ func getDummyOCIObjectStorageConfiguration() map[string]string {
func TestInit(t *testing.T) {
meta := state.Metadata{}
statestore := NewOCIObjectStorageStore(logger.NewLogger("logger"))
statestore := NewOCIObjectStorageStore(logger.NewLogger("logger")).(*StateStore)
t.Parallel()
t.Run("Init with beautifully complete yet incorrect metadata", func(t *testing.T) {
meta.Properties = getDummyOCIObjectStorageConfiguration()
@ -148,7 +148,7 @@ func TestInit(t *testing.T) {
func TestFeatures(t *testing.T) {
t.Parallel()
s := NewOCIObjectStorageStore(logger.NewLogger("logger"))
s := NewOCIObjectStorageStore(logger.NewLogger("logger")).(*StateStore)
t.Run("Test contents of Features", func(t *testing.T) {
features := s.Features()
assert.Contains(t, features, state.FeatureETag)
@ -231,7 +231,7 @@ func (c *mockedObjectStoreClient) pingBucket() error {
}
func TestGetWithMockClient(t *testing.T) {
s := NewOCIObjectStorageStore(logger.NewLogger("logger"))
s := NewOCIObjectStorageStore(logger.NewLogger("logger")).(*StateStore)
mockClient := &mockedObjectStoreClient{}
s.client = mockClient
t.Parallel()
@ -261,7 +261,7 @@ func TestGetWithMockClient(t *testing.T) {
func TestInitWithMockClient(t *testing.T) {
t.Parallel()
s := NewOCIObjectStorageStore(logger.NewLogger("logger"))
s := NewOCIObjectStorageStore(logger.NewLogger("logger")).(*StateStore)
s.client = &mockedObjectStoreClient{}
meta := state.Metadata{}
t.Run("Test Init with incomplete configuration", func(t *testing.T) {
@ -272,7 +272,7 @@ func TestInitWithMockClient(t *testing.T) {
func TestPingWithMockClient(t *testing.T) {
t.Parallel()
s := NewOCIObjectStorageStore(logger.NewLogger("logger"))
s := NewOCIObjectStorageStore(logger.NewLogger("logger")).(*StateStore)
mockClient := &mockedObjectStoreClient{}
s.client = mockClient
@ -285,7 +285,7 @@ func TestPingWithMockClient(t *testing.T) {
func TestSetWithMockClient(t *testing.T) {
t.Parallel()
statestore := NewOCIObjectStorageStore(logger.NewLogger("logger"))
statestore := NewOCIObjectStorageStore(logger.NewLogger("logger")).(*StateStore)
mockClient := &mockedObjectStoreClient{}
statestore.client = mockClient
t.Run("Set without a key", func(t *testing.T) {
@ -344,7 +344,7 @@ func TestSetWithMockClient(t *testing.T) {
func TestDeleteWithMockClient(t *testing.T) {
t.Parallel()
s := NewOCIObjectStorageStore(logger.NewLogger("logger"))
s := NewOCIObjectStorageStore(logger.NewLogger("logger")).(*StateStore)
mockClient := &mockedObjectStoreClient{}
s.client = mockClient
t.Run("Delete without a key", func(t *testing.T) {

View File

@ -28,7 +28,7 @@ type OracleDatabase struct {
}
// NewOracleDatabaseStateStore creates a new instance of OracleDatabase state store.
func NewOracleDatabaseStateStore(logger logger.Logger) *OracleDatabase {
func NewOracleDatabaseStateStore(logger logger.Logger) state.Store {
dba := newOracleDatabaseAccess(logger)
return newOracleDatabaseStateStore(logger, dba)

View File

@ -61,7 +61,7 @@ func TestOracleDatabaseIntegration(t *testing.T) {
Base: metadata.Base{Properties: map[string]string{connectionStringKey: connectionString, oracleWalletLocationKey: oracleWalletLocation}},
}
ods := NewOracleDatabaseStateStore(logger.NewLogger("test"))
ods := NewOracleDatabaseStateStore(logger.NewLogger("test")).(*OracleDatabase)
t.Cleanup(func() {
defer ods.Close()
})
@ -773,7 +773,7 @@ func testInitConfiguration(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
p := NewOracleDatabaseStateStore(logger)
p := NewOracleDatabaseStateStore(logger).(*OracleDatabase)
defer p.Close()
metadata := state.Metadata{

View File

@ -26,7 +26,7 @@ type PostgreSQL struct {
}
// NewPostgreSQLStateStore creates a new instance of PostgreSQL state store.
func NewPostgreSQLStateStore(logger logger.Logger) *PostgreSQL {
func NewPostgreSQLStateStore(logger logger.Logger) state.Store {
dba := newPostgresDBAccess(logger)
return newPostgreSQLStateStore(logger, dba)

View File

@ -51,7 +51,7 @@ func TestPostgreSQLIntegration(t *testing.T) {
Base: metadata.Base{Properties: map[string]string{connectionStringKey: connectionString}},
}
pgs := NewPostgreSQLStateStore(logger.NewLogger("test"))
pgs := NewPostgreSQLStateStore(logger.NewLogger("test")).(*PostgreSQL)
t.Cleanup(func() {
defer pgs.Close()
})
@ -492,7 +492,7 @@ func testInitConfiguration(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
p := NewPostgreSQLStateStore(logger)
p := NewPostgreSQLStateStore(logger).(*PostgreSQL)
defer p.Close()
metadata := state.Metadata{

View File

@ -106,7 +106,7 @@ type StateStore struct {
}
// NewRedisStateStore returns a new redis state store.
func NewRedisStateStore(logger logger.Logger) *StateStore {
func NewRedisStateStore(logger logger.Logger) state.Store {
s := &StateStore{
json: jsoniter.ConfigFastest,
features: []state.Feature{state.FeatureETag, state.FeatureTransactional, state.FeatureQueryAPI},

Some files were not shown because too many files have changed in this diff Show More