public void GetActiveValuesTests() { var value = FlagsEnum.P1 | FlagsEnum.P2; var subject = EnumTools.GetActiveValues(value); Assert.Contains(FlagsEnum.P1, subject); Assert.Contains(FlagsEnum.P2, subject); Assert.DoesNotContain(FlagsEnum.P3, subject); Assert.DoesNotContain(FlagsEnum.P4, subject); }
/// <summary> /// Get collection for key from Enum, if enum has flags, /// multiple collections are merge into one /// </summary> /// <param name="key"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public IValidatorCollection GetCollection <T>(T key) where T : Enum { return(EnumTools.GetActiveValues(key) .Select(e => GetCollection(e.ToString())) .Aggregate((prev, next) => prev is null ? next : prev.MergeCollection(next))); }