public override void OneTimeSetup()
 {
     _rangedNumberGeneratorInstanceType    = typeof(RangedNumberGenerator);
     _rangedNumberGeneratorInstanceFixture = this.Create <RangedNumberGenerator>(true);
     _rangedNumberGeneratorInstance        = _rangedNumberGeneratorInstanceFixture ?? this.Create <RangedNumberGenerator>(false);
     CurrentInstance = _rangedNumberGeneratorInstanceFixture;
     ConfigureIgnoringTests(); // Configure ignoring tests.
 }
        public void AUT_RangedNumberGenerator_Instantiated_Without_Parameter_No_Throw_Exception_Test()
        {
            // Arrange
            RangedNumberGenerator instance = null;

            // Act
            var exception = CreateAnalyzer.GetThrownExceptionWhenCreate(out instance);

            // Assert
            instance.ShouldNotBeNull();
            exception.ShouldBeNull();
        }
        private void CreateAnonymous(RangedNumberRequest range, IComparable value)
        {
            lock (this.syncRoot)
            {
                var minimum = (IComparable)range.Minimum;
                var maximum = (IComparable)range.Maximum;

                if (this.rangedValue != null)
                {
                    object target;
                    if ((range.OperandType == typeof(byte) &&
                         Convert.ToInt32(
                             this.rangedValue,
                             CultureInfo.CurrentCulture) > byte.MaxValue) ||
                        (range.OperandType == typeof(short) &&
                         Convert.ToInt32(
                             this.rangedValue,
                             CultureInfo.CurrentCulture) > short.MaxValue))
                    {
                        target = minimum;
                    }
                    else
                    {
                        target = this.rangedValue;
                    }

                    this.rangedValue = Convert.ChangeType(target, range.OperandType, CultureInfo.CurrentCulture);
                }

                if (this.rangedValue != null && (minimum.CompareTo(this.rangedValue) <= 0 && maximum.CompareTo(this.rangedValue) > 0))
                {
                    this.rangedValue =
                        Convert.ChangeType(
                            RangedNumberGenerator.Add(
                                this.rangedValue,
                                Convert.ChangeType(
                                    1,
                                    range.OperandType,
                                    CultureInfo.CurrentCulture)),
                            range.OperandType,
                            CultureInfo.CurrentCulture);

                    if (maximum.CompareTo(this.rangedValue) < 0)
                    {
                        this.rangedValue = Convert.ChangeType(
                            maximum,
                            range.OperandType,
                            CultureInfo.CurrentCulture);
                    }
                }
                else if (minimum.CompareTo(value) == 0)
                {
                    this.rangedValue = minimum;
                }
                else if (maximum.CompareTo(value) == 0)
                {
                    this.rangedValue = maximum;
                }
                else if (minimum.CompareTo(value) <= 0 && maximum.CompareTo(value) <= 0)
                {
                    this.rangedValue = minimum;
                }
                else if (minimum.CompareTo(this.rangedValue) <= 0 && maximum.CompareTo(this.rangedValue) <= 0)
                {
                    this.rangedValue = minimum;
                }
                else if (minimum.CompareTo(value) < 0)
                {
                    this.rangedValue = value;
                }
                else
                {
                    this.rangedValue = RangedNumberGenerator.Add(minimum, value);

                    if (minimum.CompareTo(this.rangedValue) > 0 ||
                        maximum.CompareTo(this.rangedValue) < 0)
                    {
                        this.rangedValue = minimum;
                    }
                }

                this.rangedValue = Convert.ChangeType(this.rangedValue, range.OperandType, CultureInfo.CurrentCulture);
            }
        }