github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/kv/record_match_test.go (about)

     1  package kv_test
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  
     7  	"github.com/treeverse/lakefs/pkg/actions"
     8  	"github.com/treeverse/lakefs/pkg/auth/model"
     9  	"github.com/treeverse/lakefs/pkg/graveler"
    10  	"github.com/treeverse/lakefs/pkg/kv"
    11  	"google.golang.org/protobuf/reflect/protoreflect"
    12  )
    13  
    14  func TestFindMessageTypeRecord(t *testing.T) {
    15  	tests := []struct {
    16  		name      string
    17  		partition string
    18  		path      string
    19  		want      protoreflect.MessageType
    20  	}{
    21  		{name: "RepositoryData", partition: "graveler", path: "repos/test-repo", want: (&graveler.RepositoryData{}).ProtoReflect().Type()},
    22  		{name: "BranchData", partition: "test", path: "branches/test-branch", want: (&graveler.BranchData{}).ProtoReflect().Type()},
    23  		{name: "CommitData", partition: "test", path: "commits/1234556", want: (&graveler.CommitData{}).ProtoReflect().Type()},
    24  		{name: "TagData", partition: "test", path: "tags/test-tag", want: (&graveler.TagData{}).ProtoReflect().Type()},
    25  		{name: "StagedEntryData", partition: "test", path: "test", want: (&graveler.StagedEntryData{}).ProtoReflect().Type()},
    26  		{name: "TaskResultData", partition: "test", path: "repos/test-repo/tasks/test-key", want: (&actions.TaskResultData{}).ProtoReflect().Type()},
    27  		{name: "RunResultData", partition: "test", path: "repos/test-repo/runs/test-key", want: (&actions.RunResultData{}).ProtoReflect().Type()},
    28  		{name: "branches_SecondaryIndex", partition: "test", path: "repos/test-repo/branches/test-branch/test-key", want: (&kv.SecondaryIndex{}).ProtoReflect().Type()},
    29  		{name: "commits_SecondaryIndex", partition: "test", path: "repos/test-repo/commits/test-commit/test-key", want: (&kv.SecondaryIndex{}).ProtoReflect().Type()},
    30  		{name: "UserData", partition: "auth", path: "users/test-user", want: (&model.UserData{}).ProtoReflect().Type()},
    31  		{name: "PolicyData", partition: "auth", path: "policies/test-policy", want: (&model.PolicyData{}).ProtoReflect().Type()},
    32  		{name: "GroupData", partition: "auth", path: "groups/test-group", want: (&model.GroupData{}).ProtoReflect().Type()},
    33  		{name: "CredentialData", partition: "auth", path: "uCredentials/test-cred/credentials/test-key", want: (&model.CredentialData{}).ProtoReflect().Type()},
    34  		{name: "users_SecondaryIndex", partition: "auth", path: "gUsers/test-user/users/test-key", want: (&kv.SecondaryIndex{}).ProtoReflect().Type()},
    35  		{name: "group_policy_SecondaryIndex", partition: "auth", path: "gPolicies/test-group/policies/test-key", want: (&kv.SecondaryIndex{}).ProtoReflect().Type()},
    36  		{name: "user_policy_SecondaryIndex", partition: "auth", path: "uPolicies/test-user-policy/policies/test-key", want: (&kv.SecondaryIndex{}).ProtoReflect().Type()},
    37  		{name: "TokenData", partition: "auth", path: "expiredTokens/token12345", want: (&model.TokenData{}).ProtoReflect().Type()},
    38  		{name: "installation_metadata", partition: "auth", path: "installation_metadata/installation_id", want: nil},
    39  	}
    40  	for _, tt := range tests {
    41  		t.Run(tt.name, func(t *testing.T) {
    42  			got := kv.FindMessageTypeRecord(tt.partition, tt.path)
    43  			if !reflect.DeepEqual(got, tt.want) {
    44  				t.Errorf("FindMessageTypeRecord() got = %v, want %v", got, tt.want)
    45  			}
    46  		})
    47  	}
    48  }