@@ -58,6 +58,41 @@ func TestMergeSearchResults(t *testing.T) {
58
58
require .NoError (t , err )
59
59
require .Empty (t , res )
60
60
require .False (t , more )
61
+ t .Run ("single" , func (t * testing.T ) {
62
+ // https://github.com/nspcc-dev/neofs-node/issues/3154
63
+ expRes := make ([]client.SearchResultItem , 0 )
64
+ res , more , err := MergeSearchResults (1 , false , false , [][]client.SearchResultItem {expRes }, nil )
65
+ assertMergeResult (t , res , expRes , more , false , err )
66
+ })
67
+ })
68
+ t .Run ("single set" , func (t * testing.T ) {
69
+ expRes := searchResultFromIDs (4 )
70
+ t .Run ("less than limit" , func (t * testing.T ) {
71
+ res , more , err := MergeSearchResults (5 , false , false , [][]client.SearchResultItem {expRes }, []bool {false })
72
+ assertMergeResult (t , res , expRes , more , false , err )
73
+ })
74
+ t .Run ("exactly limit" , func (t * testing.T ) {
75
+ t .Run ("no more" , func (t * testing.T ) {
76
+ res , more , err := MergeSearchResults (4 , false , false , [][]client.SearchResultItem {expRes }, []bool {false })
77
+ assertMergeResult (t , res , expRes , more , false , err )
78
+ })
79
+ t .Run ("more" , func (t * testing.T ) {
80
+ res , more , err := MergeSearchResults (4 , false , false , [][]client.SearchResultItem {expRes }, []bool {true })
81
+ assertMergeResult (t , res , expRes , more , true , err )
82
+ })
83
+ })
84
+ t .Run ("more than limit" , func (t * testing.T ) {
85
+ t .Run ("no more" , func (t * testing.T ) {
86
+ res , more , err := MergeSearchResults (3 , false , false , [][]client.SearchResultItem {expRes }, []bool {false })
87
+ require .Len (t , res , 3 )
88
+ assertMergeResult (t , res [:3 :3 ], expRes [:3 ], more , true , err )
89
+ })
90
+ t .Run ("more" , func (t * testing.T ) {
91
+ res , more , err := MergeSearchResults (3 , false , false , [][]client.SearchResultItem {expRes }, []bool {true })
92
+ require .Len (t , res , 3 )
93
+ assertMergeResult (t , res [:3 :3 ], expRes [:3 ], more , true , err )
94
+ })
95
+ })
61
96
})
62
97
t .Run ("with empty sets" , func (t * testing.T ) {
63
98
all := []client.SearchResultItem {
0 commit comments