remove assert
This commit is contained in:
@@ -4,9 +4,6 @@ import (
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/charlienet/go-misc/json"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestCopyMap(t *testing.T) {
|
||||
@@ -33,11 +30,9 @@ func TestCopyMap(t *testing.T) {
|
||||
|
||||
dst := map[string]any{}
|
||||
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
|
||||
// fmt.Println(src, dst)
|
||||
|
||||
fmt.Println(json.Struct2JsonIndent(dst))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMapAnyCopy(t *testing.T) {
|
||||
@@ -47,7 +42,9 @@ func TestMapAnyCopy(t *testing.T) {
|
||||
}
|
||||
|
||||
dst := map[string]any{}
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
fmt.Println(src, dst)
|
||||
}
|
||||
@@ -59,7 +56,9 @@ func TestIntMapCopy(t *testing.T) {
|
||||
}
|
||||
|
||||
dst := map[int]any{}
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
fmt.Println(src, dst)
|
||||
}
|
||||
@@ -84,8 +83,9 @@ func TestDiffStructMapCopy(t *testing.T) {
|
||||
|
||||
dst := map[string]*user{}
|
||||
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Println(src, dst)
|
||||
}
|
||||
|
||||
@@ -105,10 +105,10 @@ func TestStructToMapCopy(t *testing.T) {
|
||||
}
|
||||
|
||||
dst := map[string]any{}
|
||||
assert.NoError(t, Copy(&dst, src, WithIgnoreEmpty()))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Println(src, dst)
|
||||
|
||||
println(json.Struct2JsonIndent(dst))
|
||||
}
|
||||
|
||||
func TestAnonymousStructToMapCopy(t *testing.T) {
|
||||
@@ -133,9 +133,9 @@ func TestAnonymousStructToMapCopy(t *testing.T) {
|
||||
}
|
||||
|
||||
dst := map[string]any{}
|
||||
assert.NoError(t, Copy(&dst, src, WithIgnoreEmpty()))
|
||||
|
||||
println(dst, json.Struct2JsonIndent(dst))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -155,8 +155,9 @@ func TestMapToStructCopy(t *testing.T) {
|
||||
}
|
||||
|
||||
dst := person{}
|
||||
assert.NoError(t, Copy(&dst, src, WithIgnoreEmpty()))
|
||||
fmt.Println(dst, json.Struct2JsonIndent(dst))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMixMapToStruct(t *testing.T) {
|
||||
@@ -201,9 +202,9 @@ func TestMixMapToStruct(t *testing.T) {
|
||||
}
|
||||
|
||||
var dst Person
|
||||
assert.NoError(t, Copy(&dst, src, WithIgnoreEmpty()))
|
||||
fmt.Println(json.Struct2JsonIndent(dst))
|
||||
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkMapCopy(b *testing.B) {
|
||||
@@ -249,7 +250,9 @@ func BenchmarkMapCopy(b *testing.B) {
|
||||
|
||||
for b.Loop() {
|
||||
var dst Person
|
||||
assert.NoError(b, Copy(&dst, src, WithIgnoreEmpty()))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,9 +2,8 @@ package copier
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"slices"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestSliceCopy(t *testing.T) {
|
||||
@@ -20,7 +19,9 @@ func TestSliceCopy(t *testing.T) {
|
||||
|
||||
dst := []person{}
|
||||
|
||||
Copy(&dst, src)
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Check if the copy was successful
|
||||
if len(dst) != len(src) {
|
||||
@@ -43,19 +44,22 @@ func TestPtrSliceCopy(t *testing.T) {
|
||||
|
||||
dst := []*person{}
|
||||
|
||||
Copy(&dst, src)
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Check if the copy was successful
|
||||
if len(dst) != len(src) {
|
||||
t.Errorf("Expected %d elements, got %d", len(src), len(dst))
|
||||
}
|
||||
|
||||
assert.Equal(t, src[0].Name, dst[0].Name)
|
||||
|
||||
for i := range src {
|
||||
assert.Equal(t, src[i].Name, dst[i].Name)
|
||||
assert.Equal(t, src[i].Age, dst[i].Age)
|
||||
assert.NotSame(t, src[i], dst[i])
|
||||
if src[i].Name != dst[i].Name {
|
||||
t.Errorf("Expected %s, got %s", src[i].Name, dst[i].Name)
|
||||
}
|
||||
if src[i].Age != dst[i].Age {
|
||||
t.Errorf("Expected %d, got %d", src[i].Age, dst[i].Age)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +67,11 @@ func TestAndSlice(t *testing.T) {
|
||||
src := []any{"developer", "golang", "backend"}
|
||||
dst := []string{}
|
||||
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
assert.Equal(t, []string{"developer", "golang", "backend"}, dst)
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if !slices.Equal([]string{"developer", "golang", "backend"}, dst) {
|
||||
t.Errorf("Expected %v, got %v", []string{"developer", "golang", "backend"}, dst)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,6 @@ import (
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
type Person struct {
|
||||
@@ -36,7 +34,9 @@ func TestCopySameStruct(t *testing.T) {
|
||||
|
||||
var dst Person
|
||||
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if dst.Name != src.Name || dst.Age != src.Age {
|
||||
t.Errorf("Expected %v, got %v", src, dst)
|
||||
@@ -63,7 +63,9 @@ func TestCopyToNamedStruct(t *testing.T) {
|
||||
|
||||
var dst Person4
|
||||
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("src,dst:", src, dst)
|
||||
}
|
||||
|
||||
@@ -79,7 +81,9 @@ func TestCopyDiffStruct(t *testing.T) {
|
||||
|
||||
var dst Person2
|
||||
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("src,dst:", src, dst)
|
||||
}
|
||||
|
||||
@@ -101,8 +105,14 @@ func TestCopyPtrStruct(t *testing.T) {
|
||||
|
||||
var dst User
|
||||
|
||||
assert.NoError(t, Copy(&dst, src))
|
||||
assert.Equal(t, src, dst)
|
||||
if err := Copy(&dst, src); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if dst.Name != src.Name || dst.Age != src.Age {
|
||||
t.Errorf("Expected %v, got %v", src, dst)
|
||||
}
|
||||
|
||||
t.Log("src,dst:", src, dst)
|
||||
}
|
||||
|
||||
@@ -265,8 +275,10 @@ func TestTypeConvert(t *testing.T) {
|
||||
|
||||
var dst Book2
|
||||
|
||||
assert.NoError(t, Copy(&dst, &src, WithTypeConvertByName("Date", func(src any) (dst any, err error) {
|
||||
if err := Copy(&dst, &src, WithTypeConvertByName("Date", func(src any) (dst any, err error) {
|
||||
return src.(time.Time).Format("2006-01-02"), nil
|
||||
})))
|
||||
})); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("src,dst:", src, dst)
|
||||
}
|
||||
|
||||
14
go.mod
14
go.mod
@@ -1,17 +1,3 @@
|
||||
module git.charlienet.top/go/copier
|
||||
|
||||
go 1.25
|
||||
|
||||
require (
|
||||
github.com/charlienet/go-misc v0.0.0-20250920151122-cb147afeabdf
|
||||
github.com/stretchr/testify v1.11.1
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
23
go.sum
23
go.sum
@@ -1,23 +0,0 @@
|
||||
github.com/charlienet/go-misc v0.0.0-20250920151122-cb147afeabdf h1:AQS/jJma5vCm03dbHd2h8FcT/fWlhACpiqMWeuz3XgU=
|
||||
github.com/charlienet/go-misc v0.0.0-20250920151122-cb147afeabdf/go.mod h1:+NpQcYzYcl/sLr+d04plyLWd2BS6dRmPoccyKn36Yl8=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
Reference in New Issue
Block a user