mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-04 15:49:49 +00:00
61 lines
861 B
Go
61 lines
861 B
Go
package util
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestDeepClone(t *testing.T) {
|
|
type user struct {
|
|
Name string `json:"name"`
|
|
Age int `json:"age"`
|
|
|
|
v int
|
|
}
|
|
|
|
type args[T any] struct {
|
|
v *T
|
|
}
|
|
type testCase[T any] struct {
|
|
name string
|
|
args args[T]
|
|
want *T
|
|
}
|
|
tests := []testCase[user]{
|
|
{
|
|
name: "case 1",
|
|
args: args[user]{
|
|
v: &user{
|
|
Name: "test",
|
|
Age: 10,
|
|
},
|
|
},
|
|
want: &user{
|
|
Name: "test",
|
|
Age: 10,
|
|
},
|
|
},
|
|
{
|
|
name: "case 2",
|
|
args: args[user]{
|
|
v: &user{
|
|
Name: "test",
|
|
Age: 10,
|
|
v: 1,
|
|
},
|
|
},
|
|
want: &user{
|
|
Name: "test",
|
|
Age: 10,
|
|
},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := DeepClone(tt.args.v); !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("DeepClone() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|