mirror of
https://github.com/weloe/token-go.git
synced 2025-10-13 03:03:41 +08:00
60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package persist
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestJsonSerializer_Serialize(t *testing.T) {
|
|
serializer := NewJsonSerializer()
|
|
|
|
data := struct {
|
|
Name string `json:"name"`
|
|
Age int `json:"age"`
|
|
Email string `json:"email"`
|
|
}{
|
|
Name: "John Doe",
|
|
Age: 30,
|
|
Email: "john.doe@example.com",
|
|
}
|
|
|
|
serializedData, err := serializer.Serialize(data)
|
|
if err != nil {
|
|
t.Fatalf("Failed to serialize data: %v", err)
|
|
}
|
|
|
|
expectedData := `{"name":"John Doe","age":30,"email":"john.doe@example.com"}`
|
|
if string(serializedData) != expectedData {
|
|
t.Errorf("Serialized data does not match expected value. Got: %s, Want: %s", serializedData, expectedData)
|
|
}
|
|
}
|
|
|
|
func TestJsonSerializer_UnSerialize(t *testing.T) {
|
|
serializer := NewJsonSerializer()
|
|
|
|
serializedData := []byte(`{"name":"John Doe","age":30,"email":"john.doe@example.com"}`)
|
|
|
|
var result struct {
|
|
Name string `json:"name"`
|
|
Age int `json:"age"`
|
|
Email string `json:"email"`
|
|
}
|
|
|
|
err := serializer.UnSerialize(serializedData, &result)
|
|
if err != nil {
|
|
t.Fatalf("Failed to unserialize data: %v", err)
|
|
}
|
|
|
|
expectedResult := struct {
|
|
Name string `json:"name"`
|
|
Age int `json:"age"`
|
|
Email string `json:"email"`
|
|
}{
|
|
Name: "John Doe",
|
|
Age: 30,
|
|
Email: "john.doe@example.com",
|
|
}
|
|
if result != expectedResult {
|
|
t.Errorf("Unserialized data does not match expected value. Got: %+v, Want: %+v", result, expectedResult)
|
|
}
|
|
}
|