Some helper methods added to Message. Some tests added. Small fixes
parent
eb6b784a5a
commit
1cede9cf45
20
types.go
20
types.go
|
@ -127,9 +127,25 @@ func (m *Message) IsCommand() bool {
|
||||||
return m.Text != "" && m.Text[0] == '/'
|
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 {
|
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.
|
// 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) {
|
func TestChatIsPrivate(t *testing.T) {
|
||||||
chat := tgbotapi.Chat{ID: 10, Type: "private"}
|
chat := tgbotapi.Chat{ID: 10, Type: "private"}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue