public void HasNoFlags() { EnumSimpleFlags invalid = (EnumSimpleFlags)(-1); Assert.ThrowsExact <ArgumentNullException>(() => EnumExtensions.HasNoFlags(null)); Assert.ThrowsExact <ArgumentNullException>(() => EnumExtensions.HasNoFlags(null, EnumSimpleFlags.None)); Assert.ThrowsExact <ArgumentNullException>(() => EnumExtensions.HasNoFlags(EnumSimpleFlags.None, null)); Assert.ThrowsExact <ArgumentNullException>(() => EnumExtensions.HasNoFlags(EnumSimpleFlags.None, EnumSimpleFlags.None, null)); Assert.ThrowsExact <ArgumentException>(() => EnumExtensions.HasNoFlags(invalid, EnumSimpleFlags.None)); Assert.ThrowsExact <ArgumentException>(() => EnumExtensions.HasNoFlags(EnumSimpleFlags.None, invalid)); Assert.ThrowsExact <ArgumentException>(() => EnumExtensions.HasNoFlags(EnumSimpleFlags.None, EnumSimpleFlags.None, null as Enum)); Assert.ThrowsExact <ArgumentException>(() => EnumExtensions.HasNoFlags(EnumSimpleFlags.None, EnumSimpleFlags.None, invalid)); Assert.ThrowsExact <ArgumentException>(() => EnumExtensions.HasNoFlags(EnumComboFlags.BitOne, EnumSimpleFlags.None)); Assert.ThrowsExact <ArgumentException>(() => EnumExtensions.HasNoFlags(EnumSimpleFlags.None, EnumComboFlags.BitOne)); Assert.ThrowsExact <ArgumentException>(() => EnumExtensions.HasNoFlags(EnumSimpleFlags.None, EnumSimpleFlags.None, EnumComboFlags.BitOne)); bool result = false; Assert.DoesNotThrow(() => result = EnumSimpleFlags.BitOne.HasNoFlags()); Assert.False(result); Assert.DoesNotThrow(() => result = EnumSimpleFlags.None.HasNoFlags()); Assert.True(result); Assert.DoesNotThrow(() => result = (EnumSimpleFlags.BitOne | EnumSimpleFlags.BitTwo | EnumSimpleFlags.BitThree | EnumSimpleFlags.BitFour).HasNoFlags()); Assert.False(result); Assert.DoesNotThrow(() => result = EnumComboFlags.BitOne.HasNoFlags(EnumComboFlags.BitsOneThree)); Assert.False(result); Assert.DoesNotThrow(() => result = EnumComboFlags.BitsOneThree.HasNoFlags(EnumComboFlags.BitOne)); Assert.False(result); Assert.DoesNotThrow(() => result = EnumComboFlags.BitsOneThree.HasNoFlags(EnumComboFlags.BitTwo)); Assert.True(result); Assert.DoesNotThrow(() => result = EnumComboFlags.BitsOneThree.HasNoFlags(EnumComboFlags.BitOne, EnumComboFlags.BitTwo)); Assert.False(result); Assert.DoesNotThrow(() => result = EnumComboFlags.BitsOneThree.HasNoFlags(EnumComboFlags.BitOne, EnumComboFlags.BitThree)); Assert.False(result); Assert.DoesNotThrow(() => result = EnumComboOnlyFlags.BitOne.HasNoFlags(EnumComboOnlyFlags.BitsOneFour)); Assert.False(result); Assert.DoesNotThrow(() => result = EnumComboOnlyFlags.BitsOneFour.HasNoFlags(EnumComboOnlyFlags.BitOne)); Assert.False(result); Assert.DoesNotThrow(() => result = EnumComboOnlyFlags.BitsOneFour.HasNoFlags(EnumComboOnlyFlags.BitTwo)); Assert.True(result); Assert.DoesNotThrow(() => result = EnumComboOnlyFlags.BitsOneFour.HasNoFlags(EnumComboOnlyFlags.None)); Assert.True(result); Assert.DoesNotThrow(() => result = EnumComboOnlyFlags.None.HasNoFlags(EnumComboOnlyFlags.BitOne)); Assert.True(result); Assert.DoesNotThrow(() => result = EnumComboOnlyFlags.BitsOneFour.HasNoFlags(EnumComboOnlyFlags.BitOne, EnumComboOnlyFlags.BitTwo)); Assert.False(result); }
public void ThrowIfInvalid() { Assert.ThrowsExact <ArgumentNullException>(() => EnumExtensions.ThrowIfInvalid(null)); EnumSimpleFlags testSimpleFlags1 = EnumSimpleFlags.BitOne; Assert.DoesNotThrow(() => testSimpleFlags1.ThrowIfInvalid()); EnumSimpleFlags testSimpleFlags2 = ~EnumSimpleFlags.BitOne; Assert.ThrowsExact <ArgumentException>(() => testSimpleFlags2.ThrowIfInvalid()); EnumSimpleFlags testSimpleFlags3 = EnumSimpleFlags.None; Assert.DoesNotThrow(() => testSimpleFlags3.ThrowIfInvalid()); EnumSimpleDuplicateFlags testSimpleDuplicateFlags1 = EnumSimpleDuplicateFlags.BitThree; Assert.DoesNotThrow(() => testSimpleDuplicateFlags1.ThrowIfInvalid()); EnumSimpleDuplicateFlags testSimpleDuplicateFlags2 = ~EnumSimpleDuplicateFlags.BitAlsoThree; Assert.ThrowsExact <ArgumentException>(() => testSimpleDuplicateFlags2.ThrowIfInvalid()); EnumSimpleDuplicateFlags testSimpleDuplicateFlags3 = EnumSimpleDuplicateFlags.None; Assert.DoesNotThrow(() => testSimpleDuplicateFlags3.ThrowIfInvalid()); EnumVanilla testVanilla1 = EnumVanilla.Three; Assert.DoesNotThrow(() => testVanilla1.ThrowIfInvalid()); EnumVanilla testVanilla2 = (EnumVanilla)(-1); Assert.ThrowsExact <ArgumentException>(() => testVanilla2.ThrowIfInvalid()); EnumVanilla testVanilla3 = EnumVanilla.None; Assert.DoesNotThrow(() => testVanilla3.ThrowIfInvalid()); EnumVanillaDuplicate testVanillaDuplicate1 = EnumVanillaDuplicate.One; Assert.DoesNotThrow(() => testVanillaDuplicate1.ThrowIfInvalid()); EnumVanillaDuplicate testVanillaDuplicate2 = EnumVanillaDuplicate.AlsoOne; Assert.DoesNotThrow(() => testVanillaDuplicate2.ThrowIfInvalid()); EnumVanillaDuplicate testVanillaDuplicate3 = (EnumVanillaDuplicate)(-1); Assert.ThrowsExact <ArgumentException>(() => testVanillaDuplicate3.ThrowIfInvalid()); EnumComboFlags testComboFlags1 = EnumComboFlags.BitsOneThree; Assert.DoesNotThrow(() => testComboFlags1.ThrowIfInvalid()); EnumComboFlags testComboFlags2 = EnumComboFlags.BitOne | (EnumComboFlags)(1 << 4); Assert.ThrowsExact <ArgumentException>(() => testComboFlags2.ThrowIfInvalid()); EnumComboFlags testComboFlags3 = EnumComboFlags.BitsOneTwoThree; Assert.DoesNotThrow(() => testComboFlags3.ThrowIfInvalid()); EnumComboFlags testComboFlags4 = EnumComboFlags.BitsOneTwoThree | (EnumComboFlags)(1 << 4); Assert.ThrowsExact <ArgumentException>(() => testComboFlags4.ThrowIfInvalid()); EnumComboFlags testComboFlags5 = 0; Assert.ThrowsExact <ArgumentException>(() => testComboFlags5.ThrowIfInvalid()); EnumComboOnlyFlags testComboOnlyFlags1 = EnumComboOnlyFlags.BitsOneFour; Assert.DoesNotThrow(() => testComboOnlyFlags1.ThrowIfInvalid()); EnumComboOnlyFlags testComboOnlyFlags2 = EnumComboOnlyFlags.BitOne | (EnumComboOnlyFlags)(1 << 5); Assert.ThrowsExact <ArgumentException>(() => testComboOnlyFlags2.ThrowIfInvalid()); EnumComboOnlyFlags testComboOnlyFlags3 = EnumComboOnlyFlags.BitsOneTwoFour; Assert.DoesNotThrow(() => testComboOnlyFlags3.ThrowIfInvalid()); EnumComboOnlyFlags testComboOnlyFlags4 = EnumComboOnlyFlags.BitsOneTwoFour | (EnumComboOnlyFlags)(1 << 5); Assert.ThrowsExact <ArgumentException>(() => testComboOnlyFlags4.ThrowIfInvalid()); EnumComboOnlyFlags testComboOnlyFlags5 = (EnumComboOnlyFlags)(1 << 3); Assert.ThrowsExact <ArgumentException>(() => testComboOnlyFlags5.ThrowIfInvalid()); EnumNoValues testNoValues = default(EnumNoValues); Assert.ThrowsExact <ArgumentException>(() => testNoValues.ThrowIfInvalid()); }