70 lines
1.4 KiB
Go
70 lines
1.4 KiB
Go
![]() |
package utils_test
|
|||
|
|
|||
|
import (
|
|||
|
"testing"
|
|||
|
|
|||
|
"github.com/danilsolovyov/croupierCbrf/utils"
|
|||
|
"github.com/stretchr/testify/assert"
|
|||
|
)
|
|||
|
|
|||
|
func TestArrayToMap(t *testing.T) {
|
|||
|
type testModel struct {
|
|||
|
ID string
|
|||
|
}
|
|||
|
|
|||
|
t.Run("Успешная конвертация массива в map без коллизий", func(t *testing.T) {
|
|||
|
assert.NotPanics(t, func() {
|
|||
|
result := utils.ArrayToMap(
|
|||
|
[]testModel{{ID: "test"}, {ID: "test2"}},
|
|||
|
func(model testModel) string {
|
|||
|
return model.ID
|
|||
|
},
|
|||
|
)
|
|||
|
|
|||
|
assert.Equal(t,
|
|||
|
map[string]testModel{
|
|||
|
"test": {ID: "test"},
|
|||
|
"test2": {ID: "test2"},
|
|||
|
},
|
|||
|
result,
|
|||
|
)
|
|||
|
})
|
|||
|
})
|
|||
|
|
|||
|
t.Run("Успешная конвертация массива в map с коллизиями", func(t *testing.T) {
|
|||
|
assert.NotPanics(t, func() {
|
|||
|
result := utils.ArrayToMap(
|
|||
|
[]testModel{{ID: "test"}, {ID: "test"}},
|
|||
|
func(model testModel) string {
|
|||
|
return model.ID
|
|||
|
},
|
|||
|
)
|
|||
|
|
|||
|
assert.Equal(t,
|
|||
|
map[string]testModel{
|
|||
|
"test": {ID: "test"},
|
|||
|
},
|
|||
|
result,
|
|||
|
)
|
|||
|
})
|
|||
|
})
|
|||
|
|
|||
|
t.Run("Успешная конвертация массива в map с функцией, возаращающая пустую строку", func(t *testing.T) {
|
|||
|
assert.NotPanics(t, func() {
|
|||
|
result := utils.ArrayToMap(
|
|||
|
[]testModel{{ID: "test"}, {ID: "test"}},
|
|||
|
func(model testModel) string {
|
|||
|
return ""
|
|||
|
},
|
|||
|
)
|
|||
|
|
|||
|
assert.Equal(t,
|
|||
|
map[string]testModel{
|
|||
|
"": {ID: "test"},
|
|||
|
},
|
|||
|
result,
|
|||
|
)
|
|||
|
})
|
|||
|
})
|
|||
|
}
|