@@ -78,44 +78,92 @@ func TestSearchIndex(t *testing.T) {
7878 t .Errorf ("moref mismatch %s != %s" , ref , vm .Reference ())
7979 }
8080
81- ref , err = si .FindByUuid (ctx , dc , vm .Config .Uuid , true , types . NewBool ( false ) )
81+ refs , err : = si .FindAllByUuid (ctx , dc , vm .Config .Uuid , true , nil )
8282 if err != nil {
8383 t .Fatal (err )
8484 }
85+ if len (refs ) != 1 {
86+ t .Errorf ("len(refs) %d != 1" , len (refs ))
87+ }
88+ if refs [0 ].Reference () != vm .Reference () {
89+ t .Errorf ("moref mismatch %s != %s" , refs [0 ], vm .Reference ())
90+ }
8591
92+ ref , err = si .FindByUuid (ctx , dc , vm .Config .Uuid , true , types .NewBool (false ))
93+ if err != nil {
94+ t .Fatal (err )
95+ }
8696 if ref .Reference () != vm .Reference () {
8797 t .Errorf ("moref mismatch %s != %s" , ref , vm .Reference ())
8898 }
8999
90- ref , err = si .FindByUuid (ctx , dc , vm .Config .InstanceUuid , true , types .NewBool (true ))
100+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .Uuid , true , types .NewBool (false ))
91101 if err != nil {
92102 t .Fatal (err )
93103 }
104+ if len (refs ) != 1 {
105+ t .Errorf ("len(refs) %d != 1" , len (refs ))
106+ }
107+ if refs [0 ].Reference () != vm .Reference () {
108+ t .Errorf ("moref mismatch %s != %s" , refs [0 ], vm .Reference ())
109+ }
94110
111+ ref , err = si .FindByUuid (ctx , dc , vm .Config .InstanceUuid , true , types .NewBool (true ))
112+ if err != nil {
113+ t .Fatal (err )
114+ }
95115 if ref .Reference () != vm .Reference () {
96116 t .Errorf ("moref mismatch %s != %s" , ref , vm .Reference ())
97117 }
98118
99- ref , err = si .FindByUuid (ctx , dc , vm .Config .Uuid , false , nil )
119+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .InstanceUuid , true , types . NewBool ( true ) )
100120 if err != nil {
101121 t .Fatal (err )
102122 }
123+ if len (refs ) != 1 {
124+ t .Errorf ("len(refs) %d != 1" , len (refs ))
125+ }
126+ if refs [0 ].Reference () != vm .Reference () {
127+ t .Errorf ("moref mismatch %s != %s" , refs [0 ], vm .Reference ())
128+ }
103129
130+ ref , err = si .FindByUuid (ctx , dc , vm .Config .Uuid , false , nil )
131+ if err != nil {
132+ t .Fatal (err )
133+ }
104134 if ref != nil {
105135 t .Error ("expected nil" )
106136 }
107137
138+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .Uuid , false , nil )
139+ if err != nil {
140+ t .Fatal (err )
141+ }
142+ if refs != nil {
143+ t .Error ("refs != nil" )
144+ }
145+
108146 host := model .Map ().Any ("HostSystem" ).(* HostSystem )
109147
110148 ref , err = si .FindByUuid (ctx , dc , host .Summary .Hardware .Uuid , false , nil )
111149 if err != nil {
112150 t .Fatal (err )
113151 }
114-
115152 if ref .Reference () != host .Reference () {
116153 t .Errorf ("moref mismatch %s != %s" , ref , host .Reference ())
117154 }
118155
156+ refs , err = si .FindAllByUuid (ctx , dc , host .Summary .Hardware .Uuid , false , nil )
157+ if err != nil {
158+ t .Fatal (err )
159+ }
160+ if len (refs ) != 1 {
161+ t .Errorf ("len(refs) %d != 1" , len (refs ))
162+ }
163+ if refs [0 ].Reference () != host .Reference () {
164+ t .Errorf ("moref mismatch %s != %s" , refs [0 ], host .Reference ())
165+ }
166+
119167 rootFolder , err := finder .Folder (ctx , "/" )
120168 if err != nil {
121169 t .Fatal (err )
@@ -129,6 +177,41 @@ func TestSearchIndex(t *testing.T) {
129177 if ref .Reference () != rootFolder .Reference () {
130178 t .Errorf ("moref mismatch %s != %s" , ref , rootFolder .Reference ())
131179 }
180+
181+ {
182+ // Duplicate UUIDs to test multiple results from FindAllByUuid().
183+
184+ if len (vms ) == 1 {
185+ t .Errorf ("len(vms) %d == 1" , len (vms ))
186+ }
187+
188+ task , err := vms [1 ].Reconfigure (ctx , types.VirtualMachineConfigSpec {
189+ InstanceUuid : vm .Config .InstanceUuid ,
190+ Uuid : vm .Config .Uuid ,
191+ })
192+ if err != nil {
193+ t .Fatal (err )
194+ }
195+ if err := task .Wait (ctx ); err != nil {
196+ t .Fatal (err )
197+ }
198+
199+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .InstanceUuid , true , types .NewBool (true ))
200+ if err != nil {
201+ t .Fatal (err )
202+ }
203+ if len (refs ) != 2 {
204+ t .Errorf ("len(refs) %d != 2" , len (refs ))
205+ }
206+
207+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .Uuid , true , nil )
208+ if err != nil {
209+ t .Fatal (err )
210+ }
211+ if len (refs ) != 2 {
212+ t .Errorf ("len(refs) %d != 2" , len (refs ))
213+ }
214+ }
132215 }
133216}
134217
0 commit comments