components-contrib/bindings/alicloud/sls/sls_test.go

61 lines
1.3 KiB
Go

package sls
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/dapr/components-contrib/bindings"
)
/**
* test the metadata in the yaml file
*/
func TestSlsLogstorageMetadata(t *testing.T) {
m := bindings.Metadata{}
m.Properties = map[string]string{
"Endpoint": "ENDPOINT",
"AccessKeyID": "ACCESSKEYID",
"AccessKeySecret": "ACCESSKEYSECRET",
}
aliCloudSlsLogstorage := AliCloudSlsLogstorage{}
meta, err := aliCloudSlsLogstorage.parseMeta(m)
require.NoError(t, err)
assert.Equal(t, "ENDPOINT", meta.Endpoint)
assert.Equal(t, "ACCESSKEYID", meta.AccessKeyID)
assert.Equal(t, "ACCESSKEYSECRET", meta.AccessKeySecret)
}
/*
* test the log content
*/
func TestParseLog(t *testing.T) {
aliCloudSlsLogstorage := AliCloudSlsLogstorage{}
d, _ := json.Marshal(map[string]string{
"log1": "LOG1",
"log2": "LOG2",
})
log := bindings.InvokeRequest{
Data: d,
Metadata: map[string]string{
"project": "PROJECT",
"logstore": "LOGSTORE",
"topic": "TOPIC",
"source": "SOURCE",
},
}
parseLog, _ := aliCloudSlsLogstorage.parseLog(&log)
for _, v := range parseLog.Contents {
switch *v.Key {
case "log1":
assert.Equal(t, "LOG1", *v.Value)
case "log2":
assert.Equal(t, "LOG2", *v.Value)
}
}
}