package transfer_test import ( "testing" "github.com/stretchr/testify/assert" "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models" "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/proto/broker" "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/proto/discount" "penahub.gitlab.yandexcloud.net/pena-services/customer/internal/utils/transfer" ) func TestTariffsToProductInformations(t *testing.T) { t.Run("Успешный перевод массива моделей тарифов в массив информации о продуктах", func(t *testing.T) { assert.Equal(t, []*discount.ProductInformation{ {ID: "1", Price: 20}, {ID: "2", Price: 10}, }, transfer.TariffsToProductInformations([]models.Tariff{ {ID: "1", Price: 20}, {ID: "2", Price: 10}, }), ) }) } func TestTariffMessageProtoToTariffModel(t *testing.T) { t.Run("Успешный перевод прото сообщения тарифа в модель", func(t *testing.T) { assert.Equal(t, &models.Tariff{ Privileges: []models.Privilege{ { PrivilegeID: "12", ServiceKey: "key-1", Type: models.PrivilegeTypeCount, Value: "12", }, }, }, transfer.TariffMessageProtoToTariffModel(&broker.TariffMessage{ UserID: "11", Privileges: []*broker.PrivilegeMessage{ { PrivilegeID: "12", ServiceKey: "key-1", Type: broker.PrivilegeType_Count, Value: "12", }, }, }), ) }) t.Run("Успешный перевод nil прото сообщения тарифа в модель", func(t *testing.T) { assert.Equal(t, &models.Tariff{}, transfer.TariffMessageProtoToTariffModel(nil)) }) } func TestTariffModelToProtoMessage(t *testing.T) { t.Run("Успешный перевод модели тарифа в прото сообщение", func(t *testing.T) { assert.Equal(t, &broker.TariffMessage{ UserID: "1", Privileges: []*broker.PrivilegeMessage{ { PrivilegeID: "12", ServiceKey: "key-1", Type: broker.PrivilegeType_Count, Value: "12", }, }, }, transfer.TariffModelToProtoMessage("1", &models.Tariff{ Privileges: []models.Privilege{ { PrivilegeID: "12", ServiceKey: "key-1", Type: models.PrivilegeTypeCount, Value: "12", }, }, }), ) }) t.Run("Успешный перевод nil модели тарифа в прото сообщение", func(t *testing.T) { assert.Equal(t, &broker.TariffMessage{}, transfer.TariffModelToProtoMessage("1", nil)) }) }