Exemplo n.º 1
0
 public void Operation4(RegularEnum param1)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 2
0
        public void CompareEnums()
        {
            var    sRegular  = RegularEnum.Running.ToString();
            string sEnhanced = StatusEnum.Running;
            string sFlags    = FlagsEnum.Four;

            var iRegular  = (int)RegularEnum.Running;
            int iEnhanced = StatusEnum.Running;
            int iFlags    = FlagsEnum.Four;

            // String to Enum
            regularEnum  = (RegularEnum)Enum.Parse(typeof(RegularEnum), sRegular);
            regularEnum  = Enum.Parse <RegularEnum>(sRegular);
            enhancedEnum = sEnhanced;
            flagsEnum    = sFlags;

            // Int to Enum
            regularEnum  = (RegularEnum)iRegular;
            enhancedEnum = iEnhanced;
            flagsEnum    = iFlags;

            // Flag Manipulation
            regularEnum = RegularEnum.Stopped | RegularEnum.Error;
            flagsEnum   = FlagsEnum.Four | FlagsEnum.Eight;
            regularEnum.HasFlag(RegularEnum.Stopped);
            flagsEnum.HasFlag(FlagsEnum.Four);

            // regularEnum.HasFlag(2); // Compile Error
            flagsEnum.HasFlag(2); // Valid check

            // Errors on conversion: Configurable to be NULL / throw exception.
            Func <RegularEnum> regularAct = () => regularEnum = (RegularEnum)55; // Assigns 55

            regularAct.Should()
            .NotThrow();
            regularEnum.Should()
            .Be(55);

            regularAct            =
                () => regularEnum =
                    (RegularEnum)Enum.Parse(typeof(RegularEnum), "Running1"); // throws ArgumentException
            regularAct.Should()
            .Throw <ArgumentException>();

            Func <StatusEnum> enhancedAct = () => enhancedEnum = 55; // returns null;

            enhancedAct.Should()
            .NotThrow();
            enhancedEnum.Should()
            .BeNull();

            enhancedAct = () => enhancedEnum = "Running1"; // returns null;
            enhancedAct.Should()
            .NotThrow();
            enhancedEnum.Should()
            .BeNull();

            StatusEnum.ThrowOnError = true;
            enhancedAct             = () => enhancedEnum = 55; // throws InvalidOperationException
            enhancedAct.Should()
            .Throw <InvalidOperationException>();
            enhancedAct = () => enhancedEnum = "Running1"; // throws InvalidOperationException
            enhancedAct.Should()
            .Throw <InvalidOperationException>();
        }