ws peer 를 제네릭으로 변경

This commit is contained in:
2023-12-20 10:02:49 +09:00
parent b2ee40249a
commit 00f4cab992
3 changed files with 89 additions and 144 deletions

View File

@ -60,24 +60,27 @@ func TestUnmarshalToken(t *testing.T) {
}
type peerHandler struct {
type testpeer struct {
id string
}
func (ph *peerHandler) ApiFunc1(arg1 string, arg2 int) error {
func (ph *testpeer) ApiFunc1(arg1 string, arg2 int) error {
fmt.Println("ApiFunc1", ph.id, arg1, arg2)
return errors.New("fake")
}
func (ph *peerHandler) ApiFunc2(arg1 string, arg2 map[string]int) (string, error) {
func (ph *testpeer) ApiFunc2(arg1 string, arg2 map[string]int) (string, error) {
fmt.Println("ApiFunc2", ph.id, arg1, arg2)
return "success", nil
}
func (ph *peerHandler) ApiFunc3(arg1 float64, arg2 []int) {
func (ph *testpeer) ApiFunc3(arg1 float64, arg2 []int) {
fmt.Println("ApiFunc3", ph.id, arg1, arg2)
}
func (ph *testpeer) ClientDisconnected(reason string) {
}
type dummySessionConsumer struct {
}
@ -89,19 +92,19 @@ func (dsc *dummySessionConsumer) Touch(string) (session.Authorization, error) {
}
func TestPeerApiBroker(t *testing.T) {
handler := MakeWebsocketPeerApiHandler[peerHandler]("test")
ws := NewWebsocketPeerHandler(&dummySessionConsumer{})
handler := MakeWebsocketPeerApiHandler[*testpeer]("test")
ws := NewWebsocketPeerHandler[*testpeer](&dummySessionConsumer{})
ws.AddHandler(handler)
peer := &peerHandler{
tp := &testpeer{
id: "onlyone",
}
func1args, _ := json.Marshal([]any{string("arg1"), int(100)})
ws.Call(peer, "test.ApiFunc1", bytes.NewBuffer(func1args))
ws.Call(tp, "test.ApiFunc1", bytes.NewBuffer(func1args))
func1args, _ = json.Marshal([]any{string("arg1"), map[string]int{"arg2.key": 99}})
ws.Call(peer, "test.ApiFunc2", bytes.NewBuffer(func1args))
ws.Call(tp, "test.ApiFunc2", bytes.NewBuffer(func1args))
func1args, _ = json.Marshal([]any{float64(111.1), []int{99, 98}})
ws.Call(peer, "test.ApiFunc3", bytes.NewBuffer(func1args))
ws.Call(tp, "test.ApiFunc3", bytes.NewBuffer(func1args))
}