Files
micro-client-http/builder/used_fields_test.go
pugnack 24801750a7
Some checks failed
coverage / build (push) Successful in 2m19s
test / test (push) Failing after 17m15s
integrate request builder into HTTP client for googleapis support (#157)
2025-09-23 13:30:15 +03:00

79 lines
1.5 KiB
Go

package builder
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestNewUsedFields(t *testing.T) {
u := newUsedFields()
require.NotNil(t, u)
require.NotNil(t, u.full)
require.NotNil(t, u.top)
require.Len(t, u.full, 0)
require.Len(t, u.top, 0)
}
func TestUsedFields_Add(t *testing.T) {
u := newUsedFields()
u.add("user.name")
u.add("profile")
_, ok := u.full["user.name"]
require.True(t, ok)
_, ok = u.full["profile"]
require.True(t, ok)
_, ok = u.top["user"]
require.True(t, ok)
_, ok = u.top["profile"]
require.True(t, ok)
require.Len(t, u.full, 2)
require.Len(t, u.top, 2)
}
func TestUsedFields_HasFullKey(t *testing.T) {
u := newUsedFields()
u.add("user.name")
require.True(t, u.hasFullKey("user.name"))
require.False(t, u.hasFullKey("user.email"))
}
func TestUsedFields_HasTopLevelKey(t *testing.T) {
u := newUsedFields()
u.add("user.name")
u.add("settings.theme")
require.True(t, u.hasTopLevelKey("user"))
require.True(t, u.hasTopLevelKey("settings"))
require.False(t, u.hasTopLevelKey("profile"))
}
func TestUsedFields_AddDuplicate(t *testing.T) {
u := newUsedFields()
u.add("user.name")
u.add("user.name")
require.True(t, u.hasFullKey("user.name"))
require.True(t, u.hasTopLevelKey("user"))
require.Len(t, u.full, 1)
require.Len(t, u.top, 1)
}
func TestUsedFields_Len(t *testing.T) {
u := newUsedFields()
u.add("user.name")
u.add("profile")
u.add("user.name")
u.add("profile")
require.Equal(t, u.len(), 2)
}