38 lines
712 B
Go
38 lines
712 B
Go
package lobby_test
|
|
|
|
import (
|
|
"fmt"
|
|
lobby "gitea/price-is-wrong/pkg/state/lobby/internal"
|
|
"testing"
|
|
)
|
|
|
|
func TestMarshalUnmarshal(t *testing.T) {
|
|
cases := map[string]struct {
|
|
e lobby.Event
|
|
}{
|
|
"PlayerJoin": {e: &lobby.PlayerJoin{ID: 1}},
|
|
"PlayerLeave": {e: &lobby.PlayerLeave{ID: 1}},
|
|
}
|
|
|
|
for name, d := range cases {
|
|
c := d
|
|
t.Run(name, func(t *testing.T) {
|
|
b, err := lobby.MarshalEvent(c.e)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Logf("marshalled: %s", b)
|
|
|
|
e, err := lobby.ParseEvent(b)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Logf("unmarshalled: %+v", e)
|
|
|
|
if fmt.Sprintf("%+v", c.e) != fmt.Sprintf("%+v", e) {
|
|
t.Errorf("expected %+v but got %+v", c.e, e)
|
|
}
|
|
})
|
|
}
|
|
}
|