feat: mapper.
This commit is contained in:
93
mapper/mapper_test.go
Normal file
93
mapper/mapper_test.go
Normal file
@@ -0,0 +1,93 @@
|
||||
package mapper
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestCopierMapper(t *testing.T) {
|
||||
type DtoType struct {
|
||||
Name string
|
||||
Age int
|
||||
}
|
||||
|
||||
type ModelType struct {
|
||||
Name string
|
||||
Age int
|
||||
}
|
||||
|
||||
mapper := NewCopierMapper[DtoType, ModelType]()
|
||||
|
||||
// 测试 ToModel 方法
|
||||
dto := &DtoType{Name: "Alice", Age: 25}
|
||||
model := mapper.ToModel(dto)
|
||||
assert.NotNil(t, model)
|
||||
assert.Equal(t, "Alice", model.Name)
|
||||
assert.Equal(t, 25, model.Age)
|
||||
|
||||
// 测试 ToModel 方法,传入 nil
|
||||
modelNil := mapper.ToModel(nil)
|
||||
assert.Nil(t, modelNil)
|
||||
|
||||
// 测试 ToDto 方法
|
||||
model = &ModelType{Name: "Bob", Age: 30}
|
||||
dtoResult := mapper.ToDto(model)
|
||||
assert.NotNil(t, dtoResult)
|
||||
assert.Equal(t, "Bob", dtoResult.Name)
|
||||
assert.Equal(t, 30, dtoResult.Age)
|
||||
|
||||
// 测试 ToDto 方法,传入 nil
|
||||
dtoNil := mapper.ToDto(nil)
|
||||
assert.Nil(t, dtoNil)
|
||||
}
|
||||
|
||||
func TestEnumTypeConverter(t *testing.T) {
|
||||
type DtoType string
|
||||
type ModelType int32
|
||||
|
||||
const (
|
||||
DtoTypeOne DtoType = "One"
|
||||
DtoTypeTwo DtoType = "Two"
|
||||
)
|
||||
|
||||
const (
|
||||
ModelTypeOne ModelType = 1
|
||||
ModelTypeTwo ModelType = 2
|
||||
)
|
||||
|
||||
nameMap := map[int32]string{
|
||||
1: "One",
|
||||
2: "Two",
|
||||
}
|
||||
valueMap := map[string]int32{
|
||||
"One": 1,
|
||||
"Two": 2,
|
||||
}
|
||||
|
||||
converter := NewEnumTypeConverter[DtoType, ModelType](nameMap, valueMap)
|
||||
|
||||
// 测试 ToModel 方法
|
||||
dto := DtoTypeOne
|
||||
model := converter.ToModel(&dto)
|
||||
assert.NotNil(t, model)
|
||||
assert.Equal(t, int32(1), int32(*model))
|
||||
|
||||
// 测试 ToModel 方法,传入不存在的值
|
||||
dtoInvalid := DtoType("Three")
|
||||
modelInvalid := converter.ToModel(&dtoInvalid)
|
||||
assert.Nil(t, modelInvalid)
|
||||
|
||||
// 测试 ToDto 方法
|
||||
tmpModelTwo := ModelTypeTwo
|
||||
model = &tmpModelTwo
|
||||
dtoResult := converter.ToDto(model)
|
||||
assert.NotNil(t, dtoResult)
|
||||
assert.Equal(t, "Two", string(*dtoResult))
|
||||
|
||||
// 测试 ToDto 方法,传入不存在的值
|
||||
tmpModelThree := ModelType(3)
|
||||
modelInvalid = &tmpModelThree
|
||||
dtoInvalidResult := converter.ToDto(modelInvalid)
|
||||
assert.Nil(t, dtoInvalidResult)
|
||||
}
|
||||
Reference in New Issue
Block a user