package utils_test import ( "testing" "gitea.pena/PenaSide/cbrfWorker/internal/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, ) }) }) }