176 lines
2.7 KiB
Go
176 lines
2.7 KiB
Go
package echotron
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
type test struct{}
|
|
|
|
func (t test) Update(_ *Update) {}
|
|
|
|
var dsp *Dispatcher
|
|
|
|
func TestNewDispatcher(t *testing.T) {
|
|
if dsp = NewDispatcher("token", func(_ int64) Bot { return test{} }); dsp == nil {
|
|
t.Fatal("dispatcher is nil")
|
|
}
|
|
}
|
|
|
|
func TestAddSession(t *testing.T) {
|
|
dsp.AddSession(0)
|
|
|
|
if _, ok := dsp.sessions.load(0); !ok {
|
|
t.Fatal("could not add session")
|
|
}
|
|
}
|
|
|
|
func TestDelSession(t *testing.T) {
|
|
dsp.DelSession(0)
|
|
|
|
if _, ok := dsp.sessions.load(0); ok {
|
|
t.Fatal("could not delete session")
|
|
}
|
|
}
|
|
|
|
func TestListenWebhook(_ *testing.T) {
|
|
dsp.ListenWebhook("http://example.com:8443/test")
|
|
time.Sleep(time.Second)
|
|
}
|
|
|
|
func TestPoll(_ *testing.T) {
|
|
dsp.Poll()
|
|
|
|
dsp.updates <- &Update{}
|
|
|
|
dsp.updates <- &Update{
|
|
ChatJoinRequest: &ChatJoinRequest{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
ChatBoost: &ChatBoostUpdated{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
RemovedChatBoost: &ChatBoostRemoved{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
Message: &Message{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
EditedMessage: &Message{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
ChannelPost: &Message{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
EditedChannelPost: &Message{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
BusinessConnection: &BusinessConnection{
|
|
User: User{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
BusinessMessage: &Message{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
EditedBusinessMessage: &Message{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
DeletedBusinessMessages: &BusinessMessagesDeleted{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
MessageReaction: &MessageReactionUpdated{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
MessageReactionCount: &MessageReactionCountUpdated{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
InlineQuery: &InlineQuery{
|
|
From: &User{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
ChosenInlineResult: &ChosenInlineResult{
|
|
From: &User{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
CallbackQuery: &CallbackQuery{
|
|
Message: &Message{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
ShippingQuery: &ShippingQuery{
|
|
From: User{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
PreCheckoutQuery: &PreCheckoutQuery{
|
|
From: User{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
PollAnswer: &PollAnswer{
|
|
User: &User{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
MyChatMember: &ChatMemberUpdated{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
dsp.updates <- &Update{
|
|
ChatMember: &ChatMemberUpdated{
|
|
Chat: Chat{ID: 0},
|
|
},
|
|
}
|
|
|
|
time.Sleep(time.Second)
|
|
}
|