79 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			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)
 | |
| }
 |