discount/pkg/utils/fields_count_test.go

65 lines
2.2 KiB
Go
Raw Normal View History

2023-07-04 04:04:31 +00:00
package utils_test
import (
"testing"
"github.com/stretchr/testify/assert"
"penahub.gitlab.yandexcloud.net/pena-services/accruals-service/pkg/utils"
)
func TestGetFilledFieldsCount(t *testing.T) {
name := "name"
age := uint(10)
t.Run("Получение количества заполненных полей структуры с пустой структурой", func(t *testing.T) {
assert.Equal(t, 0, utils.GetFilledFieldsCount(struct{}{}))
})
t.Run("Получение количества заполненных полей структуры с nil", func(t *testing.T) {
assert.Equal(t, 0, utils.GetFilledFieldsCount(nil))
})
t.Run("Получение количества заполненных полей структуры с указателем на пустую структуру", func(t *testing.T) {
assert.Equal(t, 0, utils.GetFilledFieldsCount(&struct{}{}))
})
t.Run("Получение количества заполненных полей структуры с заполненной структурой", func(t *testing.T) {
assert.Equal(t, 1, utils.GetFilledFieldsCount(struct {
name *string
age *uint
}{
name: &name,
}))
})
t.Run("Получение количества заполненных полей структуры с указателем на заполненную структурой", func(t *testing.T) {
assert.Equal(t, 2, utils.GetFilledFieldsCount(&struct {
name *string
age *uint
}{
name: &name,
age: &age,
}))
})
t.Run("Получение количества заполненных полей структуры с заполненную структурой не опциональных значений", func(t *testing.T) {
assert.Equal(t, 2, utils.GetFilledFieldsCount(&struct {
name *string
age uint
}{
name: &name,
age: age,
}))
})
t.Run("Получение количества заполненных полей структуры с не заполненную структурой не опциональных значений", func(t *testing.T) {
assert.Equal(t, 0, utils.GetFilledFieldsCount(&struct {
name string
age uint
}{
name: "",
age: 0,
}))
})
}