@@ -218,27 +218,39 @@ func TestTreatmentsByFlagSet(t *testing.T) {
218218 }}).
219219 Once ()
220220
221- expectedImpressions := [] dtos.Impression {
222- {KeyName : "key1" , BucketingKey : "" , FeatureName : "f1" , Treatment : "on" , Label : "label1" , ChangeNumber : 123 },
223- {KeyName : "key1" , BucketingKey : "" , FeatureName : "f2" , Treatment : "on" , Label : "label2" , ChangeNumber : 124 },
224- {KeyName : "key1" , BucketingKey : "" , FeatureName : "f3" , Treatment : "on" , Label : "label3" , ChangeNumber : 125 },
221+ expectedImpressions := map [ string ] * dtos.Impression {
222+ "f1" : {KeyName : "key1" , BucketingKey : "" , FeatureName : "f1" , Treatment : "on" , Label : "label1" , ChangeNumber : 123 },
223+ "f2" : {KeyName : "key1" , BucketingKey : "" , FeatureName : "f2" , Treatment : "on" , Label : "label2" , ChangeNumber : 124 },
224+ "f3" : {KeyName : "key1" , BucketingKey : "" , FeatureName : "f3" , Treatment : "on" , Label : "label3" , ChangeNumber : 125 },
225225 }
226226 im := & mocks.ImpressionManagerMock {}
227227 im .On ("ProcessSingle" , mock .Anything ).
228228 Run (func (args mock.Arguments ) {
229- assertImpEq (t , & expectedImpressions [0 ], args .Get (0 ).(* dtos.Impression ))
229+ imp , ok := args .Get (0 ).(* dtos.Impression )
230+ if ! ok {
231+ t .Error ("not an impression" )
232+ }
233+ assertImpEq (t , expectedImpressions [imp .FeatureName ], args .Get (0 ).(* dtos.Impression ))
230234 }).
231235 Return (true ).
232236 Once ()
233237 im .On ("ProcessSingle" , mock .Anything ).
234238 Run (func (args mock.Arguments ) {
235- assertImpEq (t , & expectedImpressions [1 ], args .Get (0 ).(* dtos.Impression ))
239+ imp , ok := args .Get (0 ).(* dtos.Impression )
240+ if ! ok {
241+ t .Error ("not an impression" )
242+ }
243+ assertImpEq (t , expectedImpressions [imp .FeatureName ], args .Get (0 ).(* dtos.Impression ))
236244 }).
237245 Return (true ).
238246 Once ()
239247 im .On ("ProcessSingle" , mock .Anything ).
240248 Run (func (args mock.Arguments ) {
241- assertImpEq (t , & expectedImpressions [2 ], args .Get (0 ).(* dtos.Impression ))
249+ imp , ok := args .Get (0 ).(* dtos.Impression )
250+ if ! ok {
251+ t .Error ("not an impression" )
252+ }
253+ assertImpEq (t , expectedImpressions [imp .FeatureName ], args .Get (0 ).(* dtos.Impression ))
242254 }).
243255 Return (true ).
244256 Once ()
@@ -258,9 +270,9 @@ func TestTreatmentsByFlagSet(t *testing.T) {
258270 assert .Nil (t , res ["f1" ].Config )
259271 assert .Nil (t , res ["f2" ].Config )
260272 assert .Nil (t , res ["f3" ].Config )
261- assertImpEq (t , & expectedImpressions [0 ], res ["f1" ].Impression )
262- assertImpEq (t , & expectedImpressions [1 ], res ["f2" ].Impression )
263- assertImpEq (t , & expectedImpressions [2 ], res ["f3" ].Impression )
273+ assertImpEq (t , expectedImpressions ["f1" ], res ["f1" ].Impression )
274+ assertImpEq (t , expectedImpressions ["f2" ], res ["f2" ].Impression )
275+ assertImpEq (t , expectedImpressions ["f3" ], res ["f3" ].Impression )
264276
265277 err = is .RangeAndClear (func (md types.ClientMetadata , st * storage.LockingQueue [dtos.Impression ]) {
266278 assert .Equal (t , types.ClientMetadata {ID : "some" , SdkVersion : "go-1.2.3" }, md )
@@ -271,9 +283,9 @@ func TestTreatmentsByFlagSet(t *testing.T) {
271283 assert .Nil (t , nil )
272284 assert .Equal (t , 3 , n )
273285 assert .Equal (t , 3 , len (imps ))
274- assertImpEq (t , & expectedImpressions [0 ], & imps [0 ])
275- assertImpEq (t , & expectedImpressions [1 ], & imps [1 ])
276- assertImpEq (t , & expectedImpressions [2 ], & imps [2 ])
286+ assertImpEq (t , expectedImpressions [imps [ 0 ]. FeatureName ], & imps [0 ])
287+ assertImpEq (t , expectedImpressions [imps [ 1 ]. FeatureName ], & imps [1 ])
288+ assertImpEq (t , expectedImpressions [imps [ 2 ]. FeatureName ], & imps [2 ])
277289 n , err = st .Pop (1 , & imps )
278290 assert .Equal (t , 0 , n )
279291 assert .ErrorIs (t , err , storage .ErrQueueEmpty )
@@ -295,27 +307,39 @@ func TestTreatmentsByFlagSets(t *testing.T) {
295307 }}).
296308 Once ()
297309
298- expectedImpressions := [] dtos.Impression {
299- {KeyName : "key1" , BucketingKey : "" , FeatureName : "f1" , Treatment : "on" , Label : "label1" , ChangeNumber : 123 },
300- {KeyName : "key1" , BucketingKey : "" , FeatureName : "f2" , Treatment : "on" , Label : "label2" , ChangeNumber : 124 },
301- {KeyName : "key1" , BucketingKey : "" , FeatureName : "f3" , Treatment : "on" , Label : "label3" , ChangeNumber : 125 },
310+ expectedImpressions := map [ string ] * dtos.Impression {
311+ "f1" : {KeyName : "key1" , BucketingKey : "" , FeatureName : "f1" , Treatment : "on" , Label : "label1" , ChangeNumber : 123 },
312+ "f2" : {KeyName : "key1" , BucketingKey : "" , FeatureName : "f2" , Treatment : "on" , Label : "label2" , ChangeNumber : 124 },
313+ "f3" : {KeyName : "key1" , BucketingKey : "" , FeatureName : "f3" , Treatment : "on" , Label : "label3" , ChangeNumber : 125 },
302314 }
303315 im := & mocks.ImpressionManagerMock {}
304316 im .On ("ProcessSingle" , mock .Anything ).
305317 Run (func (args mock.Arguments ) {
306- assertImpEq (t , & expectedImpressions [0 ], args .Get (0 ).(* dtos.Impression ))
318+ imp , ok := args .Get (0 ).(* dtos.Impression )
319+ if ! ok {
320+ t .Error ("not an impression" )
321+ }
322+ assertImpEq (t , expectedImpressions [imp .FeatureName ], args .Get (0 ).(* dtos.Impression ))
307323 }).
308324 Return (true ).
309325 Once ()
310326 im .On ("ProcessSingle" , mock .Anything ).
311327 Run (func (args mock.Arguments ) {
312- assertImpEq (t , & expectedImpressions [1 ], args .Get (0 ).(* dtos.Impression ))
328+ imp , ok := args .Get (0 ).(* dtos.Impression )
329+ if ! ok {
330+ t .Error ("not an impression" )
331+ }
332+ assertImpEq (t , expectedImpressions [imp .FeatureName ], args .Get (0 ).(* dtos.Impression ))
313333 }).
314334 Return (true ).
315335 Once ()
316336 im .On ("ProcessSingle" , mock .Anything ).
317337 Run (func (args mock.Arguments ) {
318- assertImpEq (t , & expectedImpressions [2 ], args .Get (0 ).(* dtos.Impression ))
338+ imp , ok := args .Get (0 ).(* dtos.Impression )
339+ if ! ok {
340+ t .Error ("not an impression" )
341+ }
342+ assertImpEq (t , expectedImpressions [imp .FeatureName ], args .Get (0 ).(* dtos.Impression ))
319343 }).
320344 Return (true ).
321345 Once ()
@@ -335,9 +359,9 @@ func TestTreatmentsByFlagSets(t *testing.T) {
335359 assert .Nil (t , res ["f1" ].Config )
336360 assert .Nil (t , res ["f2" ].Config )
337361 assert .Nil (t , res ["f3" ].Config )
338- assertImpEq (t , & expectedImpressions [0 ], res ["f1" ].Impression )
339- assertImpEq (t , & expectedImpressions [1 ], res ["f2" ].Impression )
340- assertImpEq (t , & expectedImpressions [2 ], res ["f3" ].Impression )
362+ assertImpEq (t , expectedImpressions ["f1" ], res ["f1" ].Impression )
363+ assertImpEq (t , expectedImpressions ["f2" ], res ["f2" ].Impression )
364+ assertImpEq (t , expectedImpressions ["f3" ], res ["f3" ].Impression )
341365
342366 err = is .RangeAndClear (func (md types.ClientMetadata , st * storage.LockingQueue [dtos.Impression ]) {
343367 assert .Equal (t , types.ClientMetadata {ID : "some" , SdkVersion : "go-1.2.3" }, md )
@@ -348,9 +372,9 @@ func TestTreatmentsByFlagSets(t *testing.T) {
348372 assert .Nil (t , nil )
349373 assert .Equal (t , 3 , n )
350374 assert .Equal (t , 3 , len (imps ))
351- assertImpEq (t , & expectedImpressions [0 ], & imps [0 ])
352- assertImpEq (t , & expectedImpressions [1 ], & imps [1 ])
353- assertImpEq (t , & expectedImpressions [2 ], & imps [2 ])
375+ assertImpEq (t , expectedImpressions [imps [ 0 ]. FeatureName ], & imps [0 ])
376+ assertImpEq (t , expectedImpressions [imps [ 1 ]. FeatureName ], & imps [1 ])
377+ assertImpEq (t , expectedImpressions [imps [ 2 ]. FeatureName ], & imps [2 ])
354378 n , err = st .Pop (1 , & imps )
355379 assert .Equal (t , 0 , n )
356380 assert .ErrorIs (t , err , storage .ErrQueueEmpty )
0 commit comments