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 }