c6f6857cfa
Updated tests and client to use the authorization token Fixed readme and added the example to the examples folder
177 lines
3.4 KiB
Go
177 lines
3.4 KiB
Go
package groupme
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/gorilla/mux"
|
|
"github.com/stretchr/testify/suite"
|
|
)
|
|
|
|
type DirectMessagesAPISuite struct{ APISuite }
|
|
|
|
func (s *DirectMessagesAPISuite) SetupSuite() {
|
|
s.handler = directMessagesTestRouter()
|
|
s.setupSuite()
|
|
}
|
|
|
|
func (s *DirectMessagesAPISuite) TestDirectMessagesIndex() {
|
|
resp, err := s.client.IndexDirectMessages(
|
|
ID("123"),
|
|
&IndexDirectMessagesQuery{
|
|
BeforeID: "0123456789",
|
|
SinceID: "9876543210",
|
|
},
|
|
)
|
|
s.Require().NoError(err)
|
|
s.Require().NotZero(resp)
|
|
for _, message := range resp.Messages {
|
|
s.Assert().NotZero(message)
|
|
}
|
|
}
|
|
|
|
func (s *DirectMessagesAPISuite) TestDirectMessagesCreate() {
|
|
message, err := s.client.CreateDirectMessage(
|
|
&Message{
|
|
RecipientID: ID("123"),
|
|
Text: "Test",
|
|
},
|
|
)
|
|
s.Require().NoError(err)
|
|
s.Require().NotNil(message)
|
|
s.Assert().NotZero(*message)
|
|
}
|
|
|
|
func TestDirectMessagesAPISuite(t *testing.T) {
|
|
suite.Run(t, new(DirectMessagesAPISuite))
|
|
}
|
|
|
|
func directMessagesTestRouter() *mux.Router {
|
|
router := mux.NewRouter().Queries("token", "").Subrouter()
|
|
|
|
// Index
|
|
router.Path("/direct_messages").
|
|
Methods("GET").
|
|
Name("IndexDirectMessages").
|
|
HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
|
w.WriteHeader(200)
|
|
fmt.Fprint(w, `{
|
|
"response": {
|
|
"count": 123,
|
|
"direct_messages": [
|
|
{
|
|
"id": "1234567890",
|
|
"source_guid": "GUID",
|
|
"recipient_id": "20",
|
|
"user_id": "1234567890",
|
|
"created_at": 1302623328,
|
|
"name": "John",
|
|
"avatar_url": "https://i.groupme.com/123456789",
|
|
"text": "Hello world ☃☃",
|
|
"favorited_by": [
|
|
"101"
|
|
],
|
|
"attachments": [
|
|
{
|
|
"type": "image",
|
|
"url": "https://i.groupme.com/123456789"
|
|
},
|
|
{
|
|
"type": "image",
|
|
"url": "https://i.groupme.com/123456789"
|
|
},
|
|
{
|
|
"type": "location",
|
|
"lat": "40.738206",
|
|
"lng": "-73.993285",
|
|
"name": "GroupMe HQ"
|
|
},
|
|
{
|
|
"type": "emoji",
|
|
"placeholder": "☃",
|
|
"charmap": [
|
|
[
|
|
1,
|
|
42
|
|
],
|
|
[
|
|
2,
|
|
34
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"meta": {
|
|
"code": 200,
|
|
"errors": []
|
|
}
|
|
}`)
|
|
})
|
|
|
|
// Create
|
|
router.Path("/direct_messages").
|
|
Methods("POST").
|
|
Name("CreateDirectMessage").
|
|
HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
|
w.WriteHeader(201)
|
|
fmt.Fprint(w, `{
|
|
"response": {
|
|
"message": {
|
|
"id": "1234567890",
|
|
"source_guid": "GUID",
|
|
"recipient_id": "20",
|
|
"user_id": "1234567890",
|
|
"created_at": 1302623328,
|
|
"name": "John",
|
|
"avatar_url": "https://i.groupme.com/123456789",
|
|
"text": "Hello world ☃☃",
|
|
"favorited_by": [
|
|
"101"
|
|
],
|
|
"attachments": [
|
|
{
|
|
"type": "image",
|
|
"url": "https://i.groupme.com/123456789"
|
|
},
|
|
{
|
|
"type": "image",
|
|
"url": "https://i.groupme.com/123456789"
|
|
},
|
|
{
|
|
"type": "location",
|
|
"lat": "40.738206",
|
|
"lng": "-73.993285",
|
|
"name": "GroupMe HQ"
|
|
},
|
|
{
|
|
"type": "emoji",
|
|
"placeholder": "☃",
|
|
"charmap": [
|
|
[
|
|
1,
|
|
42
|
|
],
|
|
[
|
|
2,
|
|
34
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"meta": {
|
|
"code": 201,
|
|
"errors": []
|
|
}
|
|
}`)
|
|
})
|
|
|
|
/*// Return test router //*/
|
|
return router
|
|
}
|