lightningtipbot/internal/telegram/users_test.go
2022-06-13 08:34:27 +02:00

86 lines
2.7 KiB
Go

package telegram
import (
tb "gopkg.in/lightningtipbot/telebot.v3"
"testing"
)
func TestGetUserStr(t *testing.T) {
type args struct {
user *tb.User
}
tests := []struct {
name string
args args
want string
}{
{name: "NoUserName", args: args{user: &tb.User{FirstName: "BotUser", ID: 12351241}}, want: "BotUser"},
{name: "UserName", args: args{user: &tb.User{Username: "Username", FirstName: "BotUser", ID: 12351241}}, want: "@Username"},
{name: "NoUserName", args: args{user: &tb.User{Username: "", FirstName: "", ID: 12351241}}, want: "12351241"},
{name: "NoUserName", args: args{user: &tb.User{Username: "Username", FirstName: "", ID: 12351241}}, want: "@Username"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := GetUserStr(tt.args.user); got != tt.want {
t.Errorf("GetUserStr() = %v, want %v", got, tt.want)
}
})
}
}
func BenchmarkGetUserName(b *testing.B) {
benchmarkGetUserStr(&tb.User{Username: "dawg", ID: 1235123, FirstName: "adolf"}, b)
}
func BenchmarkGetUserStrNoUsername(b *testing.B) {
benchmarkGetUserStr(&tb.User{Username: "", ID: 1235123, FirstName: "adolf"}, b)
}
func BenchmarkGetUserStrNoFirstName(b *testing.B) {
benchmarkGetUserStr(&tb.User{Username: "", ID: 1235123, FirstName: ""}, b)
}
func benchmarkGetUserStr(s *tb.User, b *testing.B) {
for n := 0; n < b.N; n++ {
GetUserStr(s)
}
}
func TestGetUserStrMd(t *testing.T) {
type args struct {
user *tb.User
}
tests := []struct {
name string
args args
want string
}{
{name: "NoUserName", args: args{user: &tb.User{FirstName: "BotUser", ID: 12351241}}, want: "[BotUser](tg://user?id=12351241)"},
{name: "UserName", args: args{user: &tb.User{Username: "Username", FirstName: "BotUser", ID: 12351241}}, want: "@Username"},
{name: "NoUserName", args: args{user: &tb.User{Username: "", FirstName: "", ID: 12351241}}, want: "[12351241](tg://user?id=12351241)"},
{name: "NoUserName", args: args{user: &tb.User{Username: "Username", FirstName: "", ID: 12351241}}, want: "@Username"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := GetUserStrMd(tt.args.user); got != tt.want {
t.Errorf("GetUserStr() = %v, want %v", got, tt.want)
}
})
}
}
func BenchmarkGetUserStrMdName(b *testing.B) {
benchmarkGetUserStrMd(&tb.User{Username: "dawg", ID: 1235123, FirstName: "adolf"}, b)
}
func BenchmarkGetUserStrMdNoUsername(b *testing.B) {
benchmarkGetUserStrMd(&tb.User{Username: "", ID: 1235123, FirstName: "adolf"}, b)
}
func BenchmarkGetUserStrMdNoFirstName(b *testing.B) {
benchmarkGetUserStrMd(&tb.User{Username: "", ID: 1235123, FirstName: ""}, b)
}
func benchmarkGetUserStrMd(s *tb.User, b *testing.B) {
for n := 0; n < b.N; n++ {
GetUserStrMd(s)
}
}