@@ -50,6 +50,18 @@ public void Setup()
5050 var mockWorker = new Mock < IFeatureWorker > ( ) ;
5151 mockWorker . Setup ( x => x . GetRunningFeatures ( ) ) . Returns ( runningFeatures ) ;
5252 var mockUserData = new Mock < IUserDataRepo > ( ) ;
53+ mockUserData . Setup ( x => x . GetExperimentsForcedA ( ) ) . Returns ( new List < string >
54+ {
55+ "ALL_A-1" ,
56+ "ALL_A-2" ,
57+ "ALL_A-3" ,
58+ } ) ;
59+ mockUserData . Setup ( x => x . GetExperimentsForcedB ( ) ) . Returns ( new List < string >
60+ {
61+ "ALL_B-1" ,
62+ "ALL_B-2" ,
63+ "ALL_B-3" ,
64+ } ) ;
5365 mockUserData . Setup ( x => x . GetUserId ( ) ) . Returns ( GetUuid ) ;
5466 _userDataRepo = mockUserData . Object ;
5567 _featureWorker = mockWorker . Object ;
@@ -127,5 +139,57 @@ public void TestFeatureWithAllBAlwaysReturnsB()
127139 Assert . AreEqual ( 0 , dictionary [ 'A' ] ) ;
128140 Assert . AreEqual ( 1000000 , dictionary [ 'B' ] ) ;
129141 }
142+
143+ [ Test ]
144+ public void TestFeatureWithOverrideExperimentsToA ( )
145+ {
146+ var dictionary = new Dictionary < char , int > { [ 'A' ] = 0 , [ 'B' ] = 0 , [ 'X' ] = 0 , [ 'Z' ] = 0 } ;
147+ var client = new FeatureClient ( _featureWorker , _userDataRepo ) ;
148+ for ( var i = 0 ; i < 100 ; i ++ )
149+ {
150+ var variant = client . GetVariant ( "ALL_A-1" ) ;
151+ dictionary [ variant ] = dictionary [ variant ] + 1 ;
152+ }
153+ for ( var i = 0 ; i < 100 ; i ++ )
154+ {
155+ var variant = client . GetVariant ( "ALL_A-2" ) ;
156+ dictionary [ variant ] = dictionary [ variant ] + 1 ;
157+ }
158+ for ( var i = 0 ; i < 100 ; i ++ )
159+ {
160+ var variant = client . GetVariant ( "ALL_A-3" ) ;
161+ dictionary [ variant ] = dictionary [ variant ] + 1 ;
162+ }
163+ Assert . AreEqual ( 300 , dictionary [ 'A' ] ) ;
164+ Assert . AreEqual ( 0 , dictionary [ 'B' ] ) ;
165+ Assert . AreEqual ( 0 , dictionary [ 'X' ] ) ;
166+ Assert . AreEqual ( 0 , dictionary [ 'Z' ] ) ;
167+ }
168+
169+ [ Test ]
170+ public void TestFeatureWithOverrideExperimentsToB ( )
171+ {
172+ var dictionary = new Dictionary < char , int > { [ 'A' ] = 0 , [ 'B' ] = 0 , [ 'X' ] = 0 , [ 'Z' ] = 0 } ;
173+ var client = new FeatureClient ( _featureWorker , _userDataRepo ) ;
174+ for ( var i = 0 ; i < 100 ; i ++ )
175+ {
176+ var variant = client . GetVariant ( "ALL_B-1" ) ;
177+ dictionary [ variant ] = dictionary [ variant ] + 1 ;
178+ }
179+ for ( var i = 0 ; i < 100 ; i ++ )
180+ {
181+ var variant = client . GetVariant ( "ALL_B-2" ) ;
182+ dictionary [ variant ] = dictionary [ variant ] + 1 ;
183+ }
184+ for ( var i = 0 ; i < 100 ; i ++ )
185+ {
186+ var variant = client . GetVariant ( "ALL_B-3" ) ;
187+ dictionary [ variant ] = dictionary [ variant ] + 1 ;
188+ }
189+ Assert . AreEqual ( 300 , dictionary [ 'B' ] ) ;
190+ Assert . AreEqual ( 0 , dictionary [ 'A' ] ) ;
191+ Assert . AreEqual ( 0 , dictionary [ 'X' ] ) ;
192+ Assert . AreEqual ( 0 , dictionary [ 'Z' ] ) ;
193+ }
130194 }
131195}
0 commit comments