remove assert

This commit is contained in:
2025-09-24 15:29:14 +08:00
parent 2dea7ec6ae
commit 86e6558c8d
5 changed files with 68 additions and 81 deletions

View File

@@ -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)
}
}
}

View File

@@ -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)
}
}

View File

@@ -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
View File

@@ -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
View File

@@ -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=