customer/pkg/utils/fields_count_test.go
2023-05-16 04:12:34 +03:00

65 lines
2.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package utils_test
import (
"testing"
"github.com/stretchr/testify/assert"
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/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,
}))
})
}