static IEnumerable <TEnum> GetEnumValues <TEnum>(bool excludeCombinations) { IEnumerable <TEnum> values; var enumType = typeof(TEnum); if (enumType.IsEnum) { values = Enumerator.GetAll <TEnum>(); } else if (enumType.IsGenericType && enumType.GetGenericTypeDefinition() == typeof(Nullable <>)) { values = Enumerator.GetAll(enumType.GetGenericArguments()[0]).Cast <TEnum>(); } else { throw new ArgumentException("TProperty: `" + enumType + "` must be an Enum"); } if (!excludeCombinations) { return(values); } return(values.Where(v => !(v as Enum).IsFlagCombination())); }
public void GetAllShouldReturnAllValues() { var expected = new[] { SupplierStatus.Draft, SupplierStatus.AuthorityReview }; var actual = Enumerator.GetAll <SupplierStatus>(); actual.Should().BeEquivalentTo(expected, options => options.WithStrictOrdering()); }
public void GetAllShouldReturnAllValues() { var expected = new[] { SizeType.Small, SizeType.Medium, SizeType.Large, }; var actual = Enumerator.GetAll <SizeType>(); actual.Should().BeEquivalentTo(expected, options => options.WithStrictOrdering()); }