1
0
mirror of synced 2024-11-22 13:06:05 +03:00
mg-transport-api-client-go/v1/client_test.go

222 lines
4.2 KiB
Go
Raw Normal View History

package v1
import (
"net/http"
"os"
"strconv"
"testing"
2018-05-21 17:56:42 +03:00
"time"
)
var (
mgURL = os.Getenv("MG_URL")
mgToken = os.Getenv("MG_TOKEN")
channelId, _ = strconv.ParseUint(os.Getenv("MG_CHANNEL"), 10, 64)
2018-05-21 17:56:42 +03:00
ext = strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
)
func client() *MgClient {
return New(mgURL, mgToken)
}
func TestMgClient_ActivateTransportChannel(t *testing.T) {
c := client()
ch := Channel{
ID: channelId,
Type: "telegram",
2018-09-10 12:06:57 +03:00
Name: "@my_shopping_bot",
2018-08-16 16:53:29 +03:00
Settings: ChannelSettings{
2018-08-21 13:37:49 +03:00
SpamAllowed: false,
Status: Status{
Delivered: ChannelFeatureNone,
Read: ChannelFeatureReceive,
},
Text: ChannelSettingsText{
Creating: ChannelFeatureBoth,
Editing: ChannelFeatureSend,
Quoting: ChannelFeatureReceive,
Deleting: ChannelFeatureBoth,
2018-08-16 16:53:29 +03:00
},
},
}
data, status, err := c.ActivateTransportChannel(ch)
if err != nil {
t.Errorf("%d %v", status, err)
}
2018-05-21 17:56:42 +03:00
t.Logf("Activate selected channel: %v", data.ChannelID)
}
func TestMgClient_ActivateNewTransportChannel(t *testing.T) {
c := client()
ch := Channel{
Type: "telegram",
2018-09-10 12:06:57 +03:00
Name: "@my_shopping_bot",
2018-08-16 16:53:29 +03:00
Settings: ChannelSettings{
2018-08-21 13:37:49 +03:00
SpamAllowed: false,
Status: Status{
Delivered: ChannelFeatureNone,
Read: ChannelFeatureBoth,
},
Text: ChannelSettingsText{
Creating: ChannelFeatureBoth,
Editing: ChannelFeatureSend,
Quoting: ChannelFeatureBoth,
Deleting: ChannelFeatureSend,
2018-08-16 16:53:29 +03:00
},
},
}
data, status, err := c.ActivateTransportChannel(ch)
if err != nil {
t.Errorf("%d %v", status, err)
}
2018-05-21 17:56:42 +03:00
t.Logf("New channel ID %v", data.ChannelID)
deleteData, status, err := c.DeactivateTransportChannel(data.ChannelID)
if err != nil {
t.Errorf("%d %v", status, err)
}
if deleteData.DectivatedAt.String() == "" {
t.Errorf("%v", err)
}
t.Logf("Deactivate new channel with ID %v", deleteData.ChannelID)
}
func TestMgClient_UpdateTransportChannel(t *testing.T) {
c := client()
ch := Channel{
2018-09-10 11:33:42 +03:00
ID: channelId,
2018-09-10 12:06:57 +03:00
Name: "@my_shopping_bot_2",
2018-08-16 16:53:29 +03:00
Settings: ChannelSettings{
2018-08-21 13:37:49 +03:00
SpamAllowed: false,
Status: Status{
Delivered: ChannelFeatureNone,
Read: ChannelFeatureBoth,
},
Text: ChannelSettingsText{
Creating: ChannelFeatureBoth,
Editing: ChannelFeatureBoth,
Quoting: ChannelFeatureBoth,
Deleting: ChannelFeatureBoth,
2018-08-16 16:53:29 +03:00
},
},
}
data, status, err := c.UpdateTransportChannel(ch)
if status != http.StatusOK {
t.Errorf("%v", err)
}
2018-05-21 17:56:42 +03:00
t.Logf("Update selected channel: %v", data.ChannelID)
}
2018-05-21 17:56:42 +03:00
func TestMgClient_Messages(t *testing.T) {
c := client()
2018-05-21 17:56:42 +03:00
t.Logf("%v", ext)
2018-05-21 17:56:42 +03:00
snd := SendData{
2018-09-10 11:33:42 +03:00
Message: Message{
ExternalID: ext,
Type: "text",
Text: "hello!",
2018-05-21 17:56:42 +03:00
},
2018-07-13 15:15:51 +03:00
User: User{
2018-05-21 17:56:42 +03:00
ExternalID: "6",
Nickname: "octopus",
Firstname: "Joe",
},
2018-07-13 15:15:51 +03:00
Channel: channelId,
ExternalChatID: "24798237492374",
}
2018-05-21 17:56:42 +03:00
data, status, err := c.Messages(snd)
if status != http.StatusOK {
t.Errorf("%v", err)
}
2018-05-21 17:56:42 +03:00
if data.Time.String() == "" {
t.Errorf("%v", err)
}
t.Logf("Message %v is sent", data.MessageID)
}
2018-05-21 17:56:42 +03:00
func TestMgClient_UpdateMessages(t *testing.T) {
t.Skip()
c := client()
2018-05-21 17:56:42 +03:00
t.Logf("%v", ext)
2018-05-21 17:56:42 +03:00
snd := UpdateData{
UpdateMessage{
Message{
2018-05-21 17:56:42 +03:00
ExternalID: ext,
Type: "text",
2018-05-21 17:56:42 +03:00
Text: "hello hello!",
},
2018-08-16 16:53:29 +03:00
MakeTimestamp(),
},
channelId,
}
2018-05-21 17:56:42 +03:00
data, status, err := c.UpdateMessages(snd)
if status != http.StatusOK {
t.Errorf("%v", err)
}
if data.Time.String() == "" {
t.Errorf("%v", err)
}
t.Logf("Message %v updated", data.MessageID)
}
func TestMgClient_DeleteMessage(t *testing.T) {
t.Skip()
2018-05-21 17:56:42 +03:00
c := client()
t.Logf("%v", ext)
snd := DeleteData{
Message{
ExternalID: ext,
},
channelId,
}
2018-05-21 17:56:42 +03:00
data, status, err := c.DeleteMessage(snd)
if status != http.StatusOK {
t.Errorf("%v", err)
}
if data.Time.String() == "" {
t.Errorf("%v", err)
}
2018-05-21 17:56:42 +03:00
t.Logf("Message %v updated", data.MessageID)
}
func TestMgClient_DeactivateTransportChannel(t *testing.T) {
c := client()
deleteData, status, err := c.DeactivateTransportChannel(channelId)
if err != nil {
t.Errorf("%d %v", status, err)
}
if deleteData.DectivatedAt.String() == "" {
t.Errorf("%v", err)
}
t.Logf("Deactivate selected channel: %v", deleteData.ChannelID)
}