67 lines
1.7 KiB
Go
67 lines
1.7 KiB
Go
// package main ...
|
|
package wshandler
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
type TestReceiver struct {
|
|
}
|
|
|
|
func (tr *TestReceiver) Func1([]any) {
|
|
|
|
}
|
|
|
|
func (tr *TestReceiver) Func2(args []any) {
|
|
fmt.Println(args...)
|
|
}
|
|
|
|
func TestUnmarshalToken(t *testing.T) {
|
|
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
|
|
// 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
insrc := []byte(`["string value 1",200,["inner string value 1","inner string value 2"],{"inner map key 1":"inner map string value 1","inner map key 2":"inner map string value 2"},500.1]`)
|
|
|
|
dec := json.NewDecoder(bytes.NewBuffer(insrc))
|
|
dec.Token()
|
|
|
|
for {
|
|
token_start := dec.InputOffset()
|
|
tok, _ := dec.Token()
|
|
token_end := dec.InputOffset()
|
|
|
|
var string_val_1 string
|
|
stringtype := reflect.TypeOf(string_val_1)
|
|
stringvalue := reflect.New(stringtype)
|
|
castptr := stringvalue.Interface()
|
|
|
|
err := json.Unmarshal(insrc[token_start:token_end], castptr)
|
|
fmt.Println(err)
|
|
|
|
if tok == nil {
|
|
break
|
|
}
|
|
fmt.Println(tok, dec.InputOffset())
|
|
}
|
|
// src := []any{"a", 1, false}
|
|
// payload, _ := json.Marshal(src)
|
|
|
|
// tr := new(TestReceiver)
|
|
// receiver := MakeWebsocketApiHandler(tr, "test")
|
|
|
|
// var con WebsocketApiBroker
|
|
// con.AddHandler(receiver)
|
|
|
|
}
|
|
func TestUnmarshal(t *testing.T) {
|
|
src := []byte(`{"123" :"str1", "456": "str2"}`)
|
|
var test map[int]string
|
|
err := json.Unmarshal(src, &test)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
}
|