Merge pull request #33 from zhulik/master
Some small helpers added to Message and Bot, testsbot-api-6.1
commit
f219f3e9db
|
@ -184,6 +184,8 @@ func TestSendWithNewAudio(t *testing.T) {
|
|||
msg.Title = "TEST"
|
||||
msg.Duration = 10
|
||||
msg.Performer = "TEST"
|
||||
msg.MimeType = "audio/mpeg"
|
||||
msg.FileSize = 688
|
||||
_, err := bot.Send(msg)
|
||||
|
||||
if err != nil {
|
||||
|
|
10
configs.go
10
configs.go
|
@ -93,6 +93,8 @@ type BaseFile struct {
|
|||
File interface{}
|
||||
FileID string
|
||||
UseExisting bool
|
||||
MimeType string
|
||||
FileSize int
|
||||
}
|
||||
|
||||
// Params returns map[string]string representation of BaseFile
|
||||
|
@ -118,6 +120,14 @@ func (file BaseFile) Params() (map[string]string, error) {
|
|||
params["reply_markup"] = string(data)
|
||||
}
|
||||
|
||||
if len(file.MimeType) > 0 {
|
||||
params["mime_type"] = file.MimeType
|
||||
}
|
||||
|
||||
if file.FileSize > 0 {
|
||||
params["file_size"] = strconv.Itoa(file.FileSize)
|
||||
}
|
||||
|
||||
return params, nil
|
||||
}
|
||||
|
||||
|
|
20
types.go
20
types.go
|
@ -127,9 +127,25 @@ func (m *Message) IsCommand() bool {
|
|||
return m.Text != "" && m.Text[0] == '/'
|
||||
}
|
||||
|
||||
// Command returns first word from message
|
||||
// Command if message is command returns first word from message(entire command)
|
||||
// otherwise returns empty string
|
||||
func (m *Message) Command() string {
|
||||
return strings.Split(m.Text, " ")[0]
|
||||
if m.IsCommand() {
|
||||
return strings.SplitN(m.Text, " ", 2)[0]
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// CommandArguments if message is command, returns all text after command, excluding the command itself
|
||||
// otherwise returns empty string
|
||||
func (m *Message) CommandArguments() string {
|
||||
if m.IsCommand() {
|
||||
split := strings.SplitN(m.Text, " ", 2)
|
||||
if len(split) == 2 {
|
||||
return strings.SplitN(m.Text, " ", 2)[1]
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// PhotoSize contains information about photos, including ID and Width and Height.
|
||||
|
|
|
@ -31,6 +31,75 @@ func TestMessageTime(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestMessageIsCommandWithCommand(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: "/command"}
|
||||
|
||||
if message.IsCommand() != true {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsCommandWithText(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: "some text"}
|
||||
|
||||
if message.IsCommand() != false {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsCommandWithEmptyText(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: ""}
|
||||
|
||||
if message.IsCommand() != false {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestCommandWithCommand(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: "/command"}
|
||||
|
||||
if message.Command() != "/command" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestCommandWithEmptyText(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: ""}
|
||||
|
||||
if message.Command() != "" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestCommandWithNonCommand(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: "test text"}
|
||||
|
||||
if message.Command() != "" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestMessageCommandArgumentsWithArguments(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: "/command with arguments"}
|
||||
if message.CommandArguments() != "with arguments" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestMessageCommandArgumentsWithoutArguments(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: "/command"}
|
||||
if message.CommandArguments() != "" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestMessageCommandArgumentsForNonCommand(t *testing.T) {
|
||||
message := tgbotapi.Message{Text: "test text"}
|
||||
if message.CommandArguments() != "" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestChatIsPrivate(t *testing.T) {
|
||||
chat := tgbotapi.Chat{ID: 10, Type: "private"}
|
||||
|
||||
|
|
Loading…
Reference in New Issue