Beispiel #1
0
        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);
        }
Beispiel #2
0
        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());
        }