2023-05-22 19:48:44 +00:00
|
|
|
|
package utils_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
|
2025-01-01 22:10:33 +00:00
|
|
|
|
"gitea.pena/PenaSide/cbrfWorker/internal/utils"
|
2023-05-22 19:48:44 +00:00
|
|
|
|
"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,
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|