package transfer_test import ( "testing" "github.com/stretchr/testify/assert" "gitea.pena/PenaSide/customer/internal/models" "gitea.pena/PenaSide/customer/internal/proto/broker" "gitea.pena/PenaSide/customer/internal/utils/transfer" ) func TestPrivilegeModelToProto(t *testing.T) { t.Run("Успешный перевод модели привелегии в прото", func(t *testing.T) { assert.Equal(t, &broker.PrivilegeMessage{ PrivilegeID: "12", ServiceKey: "key-1", Amount: 10, Type: broker.PrivilegeType_Count, Value: "12", }, transfer.PrivilegeModelToProto(&models.Privilege{ ID: "1", Name: "name", PrivilegeID: "12", ServiceKey: "key-1", Description: "description", Type: models.PrivilegeTypeCount, Value: "12", Price: 20, Amount: 10, }), ) }) t.Run("Успешный перевод nil модели привелегии в прото", func(t *testing.T) { assert.Equal(t, &broker.PrivilegeMessage{}, transfer.PrivilegeModelToProto(nil)) }) } func TestPrivilegeArrayModelToProto(t *testing.T) { t.Run("Успешный перевод массива модели привелегий в массив прото", func(t *testing.T) { assert.Equal(t, []*broker.PrivilegeMessage{ { PrivilegeID: "12", ServiceKey: "key-1", Type: broker.PrivilegeType_Full, Value: "12", }, }, transfer.PrivilegeArrayModelToProto([]models.Privilege{ { ID: "1", Name: "name", PrivilegeID: "12", ServiceKey: "key-1", Description: "description", Type: models.PrivilegeTypeFull, Value: "12", Price: 20, }, }), ) }) } func TestPrivilegeProtoToModel(t *testing.T) { t.Run("Успешный перевод прото привелегии в модель", func(t *testing.T) { assert.Equal(t, &models.Privilege{ PrivilegeID: "12", ServiceKey: "key-1", Type: models.PrivilegeTypeDay, Value: "12", Amount: 12, }, transfer.PrivilegeProtoToModel(&broker.PrivilegeMessage{ PrivilegeID: "12", ServiceKey: "key-1", Type: broker.PrivilegeType_Day, Value: "12", Amount: 12, }), ) }) t.Run("Успешный перевод nil прото привелегии в модель", func(t *testing.T) { assert.Equal(t, &models.Privilege{}, transfer.PrivilegeProtoToModel(nil)) }) } func TestPrivilegeArrayProtoToModel(t *testing.T) { t.Run("Успешный перевод массива прото привелегий в массив моделей", func(t *testing.T) { assert.Equal(t, []models.Privilege{ { PrivilegeID: "12", ServiceKey: "key-1", Type: models.PrivilegeTypeCount, Value: "12", }, {}, }, transfer.PrivilegeArrayProtoToModel([]*broker.PrivilegeMessage{ { PrivilegeID: "12", ServiceKey: "key-1", Type: broker.PrivilegeType_Count, Value: "12", }, nil, }), ) }) }