2023-09-08 11:35:57 +09:00
// package main ...
package wshandler
import (
2023-12-18 22:21:40 +09:00
"bytes"
"encoding/json"
2023-09-08 11:35:57 +09:00
"fmt"
2023-12-18 22:21:40 +09:00
"reflect"
2023-09-08 11:35:57 +09:00
"testing"
)
type TestReceiver struct {
}
func ( tr * TestReceiver ) Func1 ( [ ] any ) {
}
func ( tr * TestReceiver ) Func2 ( args [ ] any ) {
fmt . Println ( args ... )
}
2023-12-18 22:21:40 +09:00
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 ( ) )
}
2023-09-08 11:35:57 +09:00
// src := []any{"a", 1, false}
// payload, _ := json.Marshal(src)
// tr := new(TestReceiver)
// receiver := MakeWebsocketApiHandler(tr, "test")
// var con WebsocketApiBroker
// con.AddHandler(receiver)
}
2023-12-22 11:36:55 +09:00
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 )
2023-12-18 22:21:40 +09:00
}
}