You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kratos/contrib/log/aliyun/aliyun_test.go

133 lines
3.5 KiB

package aliyun
import (
"math"
"testing"
"github.com/go-kratos/kratos/v2/log"
)
func TestWithEndpoint(t *testing.T) {
opts := new(options)
endpoint := "foo"
funcEndpoint := WithEndpoint(endpoint)
funcEndpoint(opts)
if opts.endpoint != endpoint {
t.Errorf("WithEndpoint() = %s, want %s", opts.endpoint, endpoint)
}
}
func TestWithProject(t *testing.T) {
opts := new(options)
project := "foo"
funcProject := WithProject(project)
funcProject(opts)
if opts.project != project {
t.Errorf("WithProject() = %s, want %s", opts.project, project)
}
}
func TestWithLogstore(t *testing.T) {
opts := new(options)
logstore := "foo"
funcLogstore := WithLogstore(logstore)
funcLogstore(opts)
if opts.logstore != logstore {
t.Errorf("WithLogatore() = %s, want %s", opts.logstore, logstore)
}
}
func TestWithAccessKey(t *testing.T) {
opts := new(options)
accessKey := "foo"
funcAccessKey := WithAccessKey(accessKey)
funcAccessKey(opts)
if opts.accessKey != accessKey {
t.Errorf("WithAccessKey() = %s, want %s", opts.accessKey, accessKey)
}
}
func TestWithAccessSecret(t *testing.T) {
opts := new(options)
accessSecret := "foo"
funcAccessSecret := WithAccessSecret(accessSecret)
funcAccessSecret(opts)
if opts.accessSecret != accessSecret {
t.Errorf("WithAccessSecret() = %s, want %s", opts.accessSecret, accessSecret)
}
}
func TestLogger(t *testing.T) {
project := "foo"
logger := NewAliyunLog(WithProject(project))
defer logger.Close()
logger.GetProducer()
flog := log.NewHelper(logger)
flog.Debug("log", "test")
flog.Info("log", "test")
flog.Warn("log", "test")
flog.Error("log", "test")
}
func TestLog(t *testing.T) {
project := "foo"
logger := NewAliyunLog(WithProject(project))
defer logger.Close()
err := logger.Log(log.LevelDebug, 0, int8(1), int16(2), int32(3))
if err != nil {
t.Errorf("Log() returns error:%v", err)
}
err = logger.Log(log.LevelDebug, uint(0), uint8(1), uint16(2), uint32(3))
if err != nil {
t.Errorf("Log() returns error:%v", err)
}
err = logger.Log(log.LevelDebug, uint(0), uint8(1), uint16(2), uint32(3))
if err != nil {
t.Errorf("Log() returns error:%v", err)
}
err = logger.Log(log.LevelDebug, int64(0), uint64(1), float32(2), float64(3))
if err != nil {
t.Errorf("Log() returns error:%v", err)
}
err = logger.Log(log.LevelDebug, []byte{0, 1, 2, 3}, "foo")
if err != nil {
t.Errorf("Log() returns error:%v", err)
}
err = logger.Log(log.LevelDebug, true, 0)
if err != nil {
t.Errorf("Log() returns error:%v", err)
}
}
func TestToString(t *testing.T) {
tests := []struct {
in interface{}
out string
}{
{math.MaxFloat64, "17976931348623157000000000000000000000000000000000000" +
"000000000000000000000000000000000000000000000000000000000000000000000000000" +
"000000000000000000000000000000000000000000000000000000000000000000000000000" +
"000000000000000000000000000000000000000000000000000000000000000000000000000" +
"0000000000000000000000000000000"},
{math.MaxFloat32, "340282346638528860000000000000000000000"},
{1<<((32<<(^uint(0)>>63))-1) - 1, "9223372036854775807"},
{uint(1<<(32<<(^uint(0)>>63)) - 1), "-1"},
{math.MaxInt8, "127"},
{math.MaxUint8, "255"},
{math.MaxInt16, "32767"},
{math.MaxUint16, "65535"},
{math.MaxInt32, "2147483647"},
{math.MaxUint32, "4294967295"},
{math.MaxInt64, "9223372036854775807"},
{uint64(math.MaxUint64), "18446744073709551615"},
{"abc", "abc"},
{false, "false"},
{[]byte("abc"), "abc"},
}
for _, test := range tests {
if toString(test.in) != test.out {
t.Fatalf("want: %s, got: %s", test.out, toString(test.in))
}
}
}