@@ -1706,6 +1706,9 @@ public async Task TelemetryPublishing()
17061706 string label = evaluationEvent . Tags . FirstOrDefault ( kvp => kvp . Key == "Label" ) . Value ? . ToString ( ) ;
17071707 string firstTag = evaluationEvent . Tags . FirstOrDefault ( kvp => kvp . Key == "Tags.Tag1" ) . Value ? . ToString ( ) ;
17081708
1709+ string variantAssignmentPercentage = evaluationEvent . Tags . FirstOrDefault ( kvp => kvp . Key == "VariantAssignmentPercentage" ) . Value ? . ToString ( ) ;
1710+ string defaultWhenEnabled = evaluationEvent . Tags . FirstOrDefault ( kvp => kvp . Key == "DefaultWhenEnabled" ) . Value ? . ToString ( ) ;
1711+
17091712 // Test telemetry cases
17101713 switch ( featureName )
17111714 {
@@ -1733,6 +1736,8 @@ public async Task TelemetryPublishing()
17331736 Assert . Equal ( "True" , enabled ) ;
17341737 Assert . Equal ( "Medium" , variantName ) ;
17351738 Assert . Equal ( VariantAssignmentReason . DefaultWhenEnabled . ToString ( ) , variantAssignmentReason ) ;
1739+ Assert . Equal ( "100" , variantAssignmentPercentage ) ;
1740+ Assert . Equal ( "Medium" , defaultWhenEnabled ) ;
17361741 break ;
17371742
17381743 case Features . VariantFeatureDefaultDisabled :
@@ -1741,6 +1746,8 @@ public async Task TelemetryPublishing()
17411746 Assert . Equal ( "False" , enabled ) ;
17421747 Assert . Equal ( "Small" , variantName ) ;
17431748 Assert . Equal ( VariantAssignmentReason . DefaultWhenDisabled . ToString ( ) , variantAssignmentReason ) ;
1749+ Assert . Null ( variantAssignmentPercentage ) ;
1750+ Assert . Null ( defaultWhenEnabled ) ;
17441751 break ;
17451752
17461753 case Features . VariantFeaturePercentileOn :
@@ -1763,41 +1770,62 @@ public async Task TelemetryPublishing()
17631770 currentTest = 0 ;
17641771 Assert . Null ( variantName ) ;
17651772 Assert . Equal ( VariantAssignmentReason . DefaultWhenDisabled . ToString ( ) , variantAssignmentReason ) ;
1773+ Assert . Null ( variantAssignmentPercentage ) ;
1774+ Assert . Null ( defaultWhenEnabled ) ;
17661775 break ;
17671776
17681777 case Features . VariantFeatureUser :
17691778 Assert . Equal ( 8 , currentTest ) ;
17701779 currentTest = 0 ;
17711780 Assert . Equal ( "Small" , variantName ) ;
17721781 Assert . Equal ( VariantAssignmentReason . User . ToString ( ) , variantAssignmentReason ) ;
1782+ Assert . Null ( variantAssignmentPercentage ) ;
1783+ Assert . Null ( defaultWhenEnabled ) ;
17731784 break ;
17741785
17751786 case Features . VariantFeatureGroup :
17761787 Assert . Equal ( 9 , currentTest ) ;
17771788 currentTest = 0 ;
17781789 Assert . Equal ( "Small" , variantName ) ;
17791790 Assert . Equal ( VariantAssignmentReason . Group . ToString ( ) , variantAssignmentReason ) ;
1791+ Assert . Null ( variantAssignmentPercentage ) ;
1792+ Assert . Null ( defaultWhenEnabled ) ;
17801793 break ;
17811794
17821795 case Features . VariantFeatureNoVariants :
17831796 Assert . Equal ( 10 , currentTest ) ;
17841797 currentTest = 0 ;
17851798 Assert . Null ( variantName ) ;
17861799 Assert . Equal ( VariantAssignmentReason . None . ToString ( ) , variantAssignmentReason ) ;
1800+ Assert . Null ( variantAssignmentPercentage ) ;
1801+ Assert . Null ( defaultWhenEnabled ) ;
17871802 break ;
17881803
17891804 case Features . VariantFeatureNoAllocation :
17901805 Assert . Equal ( 11 , currentTest ) ;
17911806 currentTest = 0 ;
17921807 Assert . Null ( variantName ) ;
17931808 Assert . Equal ( VariantAssignmentReason . DefaultWhenEnabled . ToString ( ) , variantAssignmentReason ) ;
1809+ Assert . Equal ( "100" , variantAssignmentPercentage ) ;
1810+ Assert . Null ( defaultWhenEnabled ) ;
17941811 break ;
17951812
17961813 case Features . VariantFeatureAlwaysOffNoAllocation :
17971814 Assert . Equal ( 12 , currentTest ) ;
17981815 currentTest = 0 ;
17991816 Assert . Null ( variantName ) ;
18001817 Assert . Equal ( VariantAssignmentReason . DefaultWhenDisabled . ToString ( ) , variantAssignmentReason ) ;
1818+ Assert . Null ( variantAssignmentPercentage ) ;
1819+ Assert . Null ( defaultWhenEnabled ) ;
1820+ break ;
1821+
1822+ case Features . VariantFeatureIncorrectDefaultWhenEnabled :
1823+ Assert . Equal ( 13 , currentTest ) ;
1824+ currentTest = 0 ;
1825+ Assert . Null ( variantName ) ;
1826+ Assert . Equal ( VariantAssignmentReason . DefaultWhenEnabled . ToString ( ) , variantAssignmentReason ) ;
1827+ Assert . Equal ( "100" , variantAssignmentPercentage ) ;
1828+ Assert . Equal ( "Foo" , defaultWhenEnabled ) ;
18011829 break ;
18021830
18031831 default :
@@ -1862,6 +1890,10 @@ public async Task TelemetryPublishing()
18621890 await featureManager . GetVariantAsync ( Features . VariantFeatureAlwaysOffNoAllocation , cancellationToken ) ;
18631891 Assert . Equal ( 0 , currentTest ) ;
18641892
1893+ currentTest = 13 ;
1894+ await featureManager . GetVariantAsync ( Features . VariantFeatureIncorrectDefaultWhenEnabled , cancellationToken ) ;
1895+ Assert . Equal ( 0 , currentTest ) ;
1896+
18651897 // Test a feature with telemetry disabled- should throw if the listener hits it
18661898 bool result = await featureManager . IsEnabledAsync ( Features . OnTestFeature , cancellationToken ) ;
18671899
0 commit comments