mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-04 07:45:30 +00:00
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/GopeedLab/gopeed/pkg/api/model"
|
|
"github.com/GopeedLab/gopeed/pkg/download"
|
|
"testing"
|
|
)
|
|
|
|
func TestInvoke(t *testing.T) {
|
|
doTestInvoke(t, "Info", []any{}, model.CodeOk)
|
|
doTestInvoke(t, "Info1", []any{}, model.CodeError)
|
|
doTestInvoke(t, "CreateTask", []any{nil}, model.CodeError)
|
|
doTestInvoke(t, "GetTasks", nil, model.CodeError)
|
|
doTestInvoke(t, "GetTasks", []any{}, model.CodeError)
|
|
doTestInvoke(t, "GetTasks", []any{"{abc:123"}, model.CodeError)
|
|
doTestInvoke(t, "GetTasks", []any{&download.TaskFilter{}}, model.CodeOk)
|
|
doTestInvoke(t, "SwitchExtension", []any{"test", &model.SwitchExtension{Status: true}}, model.CodeError)
|
|
}
|
|
|
|
func doTestInvoke(t *testing.T, method string, params []any, expectCode model.RespCode) {
|
|
instance, _ := Create(nil)
|
|
defer instance.Close()
|
|
|
|
result := Invoke(instance, &Request{
|
|
Method: method,
|
|
Params: params,
|
|
})
|
|
buf, err := json.Marshal(result)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var res model.Result[any]
|
|
if err := json.Unmarshal(buf, &res); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if res.Code != expectCode {
|
|
t.Fatalf("Invoke method [%s] failed, expect code [%d], got [%d], msg: %s", method, expectCode, res.Code, res.Msg)
|
|
}
|
|
}
|