github.com/weaviate/weaviate@v1.24.6/usecases/modulecomponents/additional/rank/rank_params_extractor_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package rank 13 14 import ( 15 "reflect" 16 "testing" 17 18 "github.com/stretchr/testify/assert" 19 "github.com/tailor-inc/graphql/language/ast" 20 ) 21 22 func Test_parseCrossRankerArguments(t *testing.T) { 23 type args struct { 24 args []*ast.Argument 25 } 26 tests := []struct { 27 name string 28 args args 29 want *Params 30 }{ 31 { 32 name: "Should create with no params", 33 args: args{}, 34 want: &Params{}, 35 }, 36 { 37 name: "Should create with query param", 38 args: args{ 39 args: []*ast.Argument{ 40 createStringArg("query", "sample query"), 41 }, 42 }, 43 want: &Params{ 44 Query: strPtr("sample query"), 45 }, 46 }, 47 { 48 name: "Should create with property param", 49 args: args{ 50 args: []*ast.Argument{ 51 createStringArg("property", "sample property"), 52 }, 53 }, 54 want: &Params{ 55 Property: strPtr("sample property"), 56 }, 57 }, 58 { 59 name: "Should create with all params", 60 args: args{ 61 args: []*ast.Argument{ 62 createStringArg("query", "sample query"), 63 createStringArg("property", "sample property"), 64 }, 65 }, 66 want: &Params{ 67 Query: strPtr("sample query"), 68 Property: strPtr("sample property"), 69 }, 70 }, 71 } 72 for _, tt := range tests { 73 t.Run(tt.name, func(t *testing.T) { 74 p := &ReRankerProvider{} 75 if got := p.parseReRankerArguments(tt.args.args); !reflect.DeepEqual(got, tt.want) { 76 t.Errorf("parseReRankerArguments() = %v, want %v", got, tt.want) 77 } 78 actual := p.parseReRankerArguments(tt.args.args) 79 assert.Equal(t, tt.want, actual) 80 }) 81 } 82 } 83 84 func createStringArg(name, value string) *ast.Argument { 85 n := ast.Name{ 86 Value: name, 87 } 88 val := ast.StringValue{ 89 Kind: "Kind", 90 Value: value, 91 } 92 arg := ast.Argument{ 93 Name: ast.NewName(&n), 94 Kind: "Kind", 95 Value: &val, 96 } 97 a := ast.NewArgument(&arg) 98 return a 99 } 100 101 func strPtr(s string) *string { 102 return &s 103 }