forked from max-messenger/max-bot-api-client-go
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuploads_test.go
More file actions
71 lines (65 loc) · 1.97 KB
/
uploads_test.go
File metadata and controls
71 lines (65 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package maxbot
import (
"context"
"fmt"
"net/http"
"net/http/httptest"
"net/url"
"strings"
"testing"
"github.com/max-messenger/max-bot-api-client-go/schemes"
"github.com/stretchr/testify/require"
)
func Test_uploads_UploadMediaFromReaderWithName_whenUploadVideoOrAudioType(t *testing.T) {
tests := []struct {
name string
uploadType schemes.UploadType
want *schemes.UploadedInfo
}{
{
name: "video type",
uploadType: schemes.VIDEO,
want: &schemes.UploadedInfo{Token: "new_video_token"},
},
{
name: "audio type",
uploadType: schemes.AUDIO,
want: &schemes.UploadedInfo{Token: "new_audio_token"},
},
{
name: "file type",
uploadType: schemes.FILE,
want: &schemes.UploadedInfo{FileID: 12345, Token: "new_file_token"},
},
}
var server *httptest.Server
server = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/uploads" {
switch r.URL.Query().Get("type") {
case string(schemes.VIDEO):
_, _ = fmt.Fprint(w, `{"token": "new_video_token", "url": "`+server.URL+`/mock-upload-video-or-audio"}`)
case string(schemes.AUDIO):
_, _ = fmt.Fprint(w, `{"token": "new_audio_token", "url": "`+server.URL+`/mock-upload-video-or-audio"}`)
case string(schemes.FILE):
_, _ = fmt.Fprint(w, `{"url": "`+server.URL+`/mock-upload-file"}`)
}
}
if r.URL.Path == "/mock-upload-video-or-audio" {
_, _ = fmt.Fprint(w, "<retval>1</retval>")
}
if r.URL.Path == "/mock-upload-file" {
_, _ = fmt.Fprint(w, `{"file_id": 12345, "token": "new_file_token"}`)
}
}))
defer server.Close()
u, _ := url.Parse(server.URL)
cl := newClient("bot_token", Version, u, server.Client())
upl := newUploads(cl)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result, err := upl.UploadMediaFromReader(context.Background(), tt.uploadType, strings.NewReader("content"))
require.NoError(t, err)
require.Equal(t, tt.want, result)
})
}
}