@@ -19,7 +19,7 @@ import (
19
19
)
20
20
21
21
type index struct {
22
- Key map [ string ] int
22
+ Key bson. D
23
23
Name string
24
24
}
25
25
@@ -29,35 +29,44 @@ func TestIndexView(t *testing.T) {
29
29
30
30
mt .Run ("list" , func (mt * mtest.T ) {
31
31
verifyIndexExists (mt , mt .Coll .Indexes (), index {
32
- Key : map [string ]int {
33
- "_id" : 1 ,
34
- },
32
+ Key : bson.D {{"_id" , int32 (1 )}},
35
33
Name : "_id_" ,
36
34
})
37
35
})
38
36
mt .RunOpts ("create one" , noClientOpts , func (mt * mtest.T ) {
39
- mt .Run ("success " , func (mt * mtest.T ) {
37
+ mt .Run ("name not specified " , func (mt * mtest.T ) {
40
38
iv := mt .Coll .Indexes ()
39
+ keysDoc := bson.D {
40
+ {"foo" , int32 (1 )},
41
+ {"bar" , int32 (- 1 )},
42
+ }
43
+ expectedName := "foo_1_bar_-1"
44
+
41
45
indexName , err := iv .CreateOne (mtest .Background , mongo.IndexModel {
42
- Keys : bson. D {{ "foo" , - 1 }} ,
46
+ Keys : keysDoc ,
43
47
})
44
48
assert .Nil (mt , err , "CreateOne error: %v" , err )
49
+ assert .Equal (mt , expectedName , indexName , "expected name %q, got %q" , expectedName , indexName )
45
50
46
51
verifyIndexExists (mt , iv , index {
47
- Key : map [ string ] int { "foo" : - 1 } ,
52
+ Key : keysDoc ,
48
53
Name : indexName ,
49
54
})
50
55
})
51
56
mt .Run ("specify name" , func (mt * mtest.T ) {
52
57
iv := mt .Coll .Indexes ()
58
+ keysDoc := bson.D {{"foo" , int32 (- 1 )}}
59
+ name := "testname"
60
+
53
61
indexName , err := iv .CreateOne (mtest .Background , mongo.IndexModel {
54
- Keys : bson. D {{ "foo" , - 1 }} ,
55
- Options : options .Index ().SetName ("testname" ),
62
+ Keys : keysDoc ,
63
+ Options : options .Index ().SetName (name ),
56
64
})
57
65
assert .Nil (mt , err , "CreateOne error: %v" , err )
66
+ assert .Equal (mt , name , indexName , "expected returned name %q, got %q" , name , indexName )
58
67
59
68
verifyIndexExists (mt , iv , index {
60
- Key : map [ string ] int { "foo" : - 1 } ,
69
+ Key : keysDoc ,
61
70
Name : indexName ,
62
71
})
63
72
})
@@ -110,7 +119,7 @@ func TestIndexView(t *testing.T) {
110
119
})
111
120
assert .Nil (mt , err , "CreateOne error: %v" , err )
112
121
verifyIndexExists (mt , iv , index {
113
- Key : map [ string ] int { "$**" : 1 } ,
122
+ Key : keysDoc ,
114
123
Name : indexName ,
115
124
})
116
125
})
@@ -213,23 +222,26 @@ func TestIndexView(t *testing.T) {
213
222
mt .Run ("create many" , func (mt * mtest.T ) {
214
223
mt .Run ("success" , func (mt * mtest.T ) {
215
224
iv := mt .Coll .Indexes ()
225
+ firstKeysDoc := bson.D {{"foo" , int32 (- 1 )}}
226
+ secondKeysDoc := bson.D {{"bar" , int32 (1 )}, {"baz" , int32 (- 1 )}}
227
+ expectedNames := []string {"foo_-1" , "bar_1_baz_-1" }
216
228
indexNames , err := iv .CreateMany (mtest .Background , []mongo.IndexModel {
217
229
{
218
- Keys : bson. D {{ "foo" , - 1 }} ,
230
+ Keys : firstKeysDoc ,
219
231
},
220
232
{
221
- Keys : bson. D {{ "bar" , 1 }, { "baz" , - 1 }} ,
233
+ Keys : secondKeysDoc ,
222
234
},
223
235
})
224
236
assert .Nil (mt , err , "CreateMany error: %v" , err )
225
- assert .Equal (mt , 2 , len ( indexNames ) , "expected 2 index names, got %v" , len ( indexNames ) )
237
+ assert .Equal (mt , expectedNames , indexNames , "expected returned names %v , got %v" , expectedNames , indexNames )
226
238
227
239
verifyIndexExists (mt , iv , index {
228
- Key : map [ string ] int { "foo" : - 1 } ,
240
+ Key : firstKeysDoc ,
229
241
Name : indexNames [0 ],
230
242
})
231
243
verifyIndexExists (mt , iv , index {
232
- Key : map [ string ] int { "bar" : 1 , "baz" : - 1 } ,
244
+ Key : secondKeysDoc ,
233
245
Name : indexNames [1 ],
234
246
})
235
247
})
0 commit comments