public static FeaturifyOptions BuildOptions(this FeaturifyOptions options) { return(options ?? new FeaturifyOptions { AnyUserVerifier = FeaturifyConstants.DefaultAnyUserVerifier, UseStrict = false }); }
public void CanIdentifyFeatureStatusWithOptionsNonExistentUserStrict() { var currentUserId = "afefebe0-9478-4ba0-90eb-35d6ac5b9d4e"; var metadata = new ToggleMetadata { Name = "Featurify.ImportFeature", Value = true, UserId = "afefebe0-9478-4ba0-90eb-35d6ac5b9d4f" }; var options = new FeaturifyOptions { AnyUserVerifier = "?", UseStrict = true }; var result = metadata.IsFeatureEnabled(currentUserId, options); }
public void CanIdentifyFeatureStatusWithOptionsSpecificUserNotStrict() { var currentUserId = "afefebe0-9478-4ba0-90eb-35d6ac5b9d4f"; var metadata = new ToggleMetadata { Name = "Featurify.ImportFeature", Value = true, UserId = "afefebe0-9478-4ba0-90eb-35d6ac5b9d4f" }; var options = new FeaturifyOptions { AnyUserVerifier = "?", UseStrict = false }; var result = metadata.IsFeatureEnabled(currentUserId, options); Assert.AreEqual(true, result); }
public static bool IsFeatureEnabled(this IToggleMetadata metadata, string userId, FeaturifyOptions options = null) { var validationOptions = BuildOptions(options); if (metadata.UserId == validationOptions.AnyUserVerifier) { return(metadata.Value); } if (metadata.UserId == userId) { return(metadata.Value); } if (validationOptions.UseStrict) { throw new FeatureNotEnabledException($"This feature has not been enabled."); } return(false); }