Exemple #1
0
        public void Test_EnumTypeException_constructor_type()
        {
            // Arrange
            var type = typeof(int);

            // Act
            var ex = new EnumTypeException(type);

            // Assert
            ex.ShouldNotBeNull();
            ex.Type.ShouldBe(type);
        }
Exemple #2
0
        public void Test_EnumTypeException_constructor_type_messageTemplate()
        {
            // Arrange
            var messageTemplate = "Customer message about: {0}";
            var type            = typeof(int);

            // Act
            var ex = new EnumTypeException(type, messageTemplate);

            // Assert
            ex.ShouldNotBeNull();
            ex.Type.ShouldBe(type);
            ex.Message.ShouldBe(ex.Message.Replace("{0}", type.Name));
        }
        /// <summary>
        /// Enums the is subset.
        /// </summary>
        /// <returns><c>true</c>, if is subset was enumed, <c>false</c> otherwise.</returns>
        /// <typeparam name="TSuperset">The 1st type parameter.</typeparam>
        /// <typeparam name="TSubset">The 2nd type parameter.</typeparam>
        public static bool EnumIsSubset <TSuperset, TSubset>()
            where TSuperset : struct, IConvertible
            where TSubset : struct, IConvertible
        {
            EnumTypeException <TSuperset> .VerifyEnum();

            EnumTypeException <TSubset> .VerifyEnum();

            foreach (var value in Enum.GetValues(typeof(TSubset)).Cast <TSubset>())
            {
                TSuperset e;
                if (!Enum.TryParse(value.ToString(), out e))
                {
                    return(false);
                }
            }

            return(true);
        }