Some helper methods added to Message. Some tests added. Small fixes
parent
eb6b784a5a
commit
1cede9cf45
|
@ -93,8 +93,8 @@ type BaseFile struct {
|
|||
File interface{}
|
||||
FileID string
|
||||
UseExisting bool
|
||||
MimeType string
|
||||
FileSize int
|
||||
MimeType string
|
||||
FileSize int
|
||||
}
|
||||
|
||||
// Params returns map[string]string representation of BaseFile
|
||||
|
|
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