package main import "testing" func TestUpdate_ChatID(t *testing.T) { u := MakeUpdate(1, 100, 42, 7, "hi") id, ok := u.ChatID() if !ok || id != 42 { t.Fatalf("Message chat = %d/%v", id, ok) } editU := Update{EditedMessage: &Message{Chat: Chat{ID: 99}}} id, ok = editU.ChatID() if !ok || id != 99 { t.Fatalf("EditedMessage chat = %d/%v", id, ok) } cb := Update{CallbackQuery: &CallbackQuery{Message: &Message{Chat: Chat{ID: 77}}}} id, ok = cb.ChatID() if !ok || id != 77 { t.Fatalf("CallbackQuery chat = %d/%v", id, ok) } empty := Update{} if _, ok := empty.ChatID(); ok { t.Fatal("empty Update must have no chat") } } func TestUpdate_UserID(t *testing.T) { u := MakeUpdate(1, 7497777082, 42, 7, "hi") id, ok := u.UserID() if !ok || id != 7497777082 { t.Fatalf("Message from = %d/%v", id, ok) } cb := Update{CallbackQuery: &CallbackQuery{From: &User{ID: 555}}} id, ok = cb.UserID() if !ok || id != 555 { t.Fatalf("CallbackQuery from = %d/%v", id, ok) } noFrom := Update{Message: &Message{Chat: Chat{ID: 1}}} if _, ok := noFrom.UserID(); ok { t.Fatal("Message without From should have no UserID") } } func TestUpdate_Text(t *testing.T) { if got := MakeUpdate(1, 1, 1, 1, "hi").Text(); got != "hi" { t.Errorf("Message text: %q", got) } cb := Update{CallbackQuery: &CallbackQuery{Data: "btn:42"}} if got := cb.Text(); got != "btn:42" { t.Errorf("CallbackQuery data: %q", got) } } func TestMessageID(t *testing.T) { u := MakeUpdate(1, 1, 1, 88, "x") if got := messageID(u); got != 88 { t.Errorf("messageID = %d", got) } if got := messageID(Update{}); got != 0 { t.Errorf("empty Update messageID = %d (want 0)", got) } }