public void AllowNullDeterminesWhetherNullCanBeReturned(bool allowNull) { var nullFound = false; var executeStrategy = Substitute.For <IExecuteStrategy>(); var buildChain = new BuildHistory(); executeStrategy.BuildChain.Returns(buildChain); var sut = new NumericValueGenerator { AllowNull = allowNull }; for (var index = 0; index < 10000; index++) { var value = sut.Generate(executeStrategy, typeof(int?)); if (value == null) { nullFound = true; break; } } nullFound.Should().Be(allowNull); }
public void GenerateCanEvalutateManyTimesTest(Type type, bool typeSupported, double min, double max) { if (typeSupported == false) { // Ignore this test return; } var target = new NumericValueGenerator(); for (var index = 0; index < 10000; index++) { var value = target.Generate(type, null, null); if (type.IsNullable() && value == null) { // Nullable values could be returned so nothing more to assert return; } var evaluateType = type; if (type.IsNullable()) { evaluateType = type.GenericTypeArguments[0]; } value.Should().BeOfType(evaluateType); var convertedValue = Convert.ToDouble(value); convertedValue.Should().BeGreaterOrEqualTo(min); convertedValue.Should().BeLessOrEqualTo(max); } }
public void PriorityReturnsValueHigherThanNumericValueGenerator() { var sut = new AgeValueGenerator(); var other = new NumericValueGenerator(); sut.Priority.Should().BeGreaterThan(other.Priority); }
public void PriorityReturnsGreaterThanNumericValueGenerator() { var sut = new Wrapper(); var generator = new NumericValueGenerator(); sut.Priority.Should().BeGreaterThan(generator.Priority); }
public void UpdateValueGeneratorThrowsExceptionWhenOnlyBaseClassFound() { var sut = new BuildConfiguration(); var generator = new NumericValueGenerator(); sut.ValueGenerators.Add(generator); Action action = () => sut.UpdateValueGenerator <CountValueGenerator>(x => { // Do nothing }); action.Should().Throw <InvalidOperationException>(); }
public void UpdateValueGeneratorUpdateMatchingRuleMatchingExplicitType() { var sut = new BuildConfiguration(); var first = new CountValueGenerator(); var second = new NumericValueGenerator(); sut.ValueGenerators.Add(first); sut.ValueGenerators.Add(second); var config = sut.UpdateValueGenerator <NumericValueGenerator>(x => { x.AllowNull = true; }); config.Should().Be(sut); first.AllowNull.Should().BeFalse(); second.AllowNull.Should().BeTrue(); }
public void GenerateCanReturnNonMinValuesTest() { var valueFound = false; var target = new NumericValueGenerator(); for (var index = 0; index < 1000; index++) { var value = target.Generate(typeof(double), null, null); var actual = Convert.ToDouble(value); if (actual.Equals(double.MinValue) == false) { valueFound = true; break; } } valueFound.Should().BeTrue(); }
public void GenerateCanReturnNullAndNonNullValuesTest() { var nullFound = false; var valueFound = false; var target = new NumericValueGenerator(); for (var index = 0; index < 1000; index++) { var value = (int?) target.Generate(typeof(int?), null, null); if (value == null) { nullFound = true; } else { valueFound = true; } if (nullFound && valueFound) { break; } } nullFound.Should().BeTrue(); valueFound.Should().BeTrue(); }
public void IsSupportedThrowsExceptionWithNullTypeTest() { var target = new NumericValueGenerator(); Action action = () => target.IsSupported(null, null, null); action.ShouldThrow<ArgumentNullException>(); }
public void IsSupportedEvaluatesRequestedTypeTest(Type type, bool typeSupported, double min, double max) { var target = new NumericValueGenerator(); var actual = target.IsSupported(type, null, null); actual.Should().Be(typeSupported); }
public void GenerateValidatesRequestedTypeTest(Type type, bool typeSupported, double min, double max) { var target = new NumericValueGenerator(); Action action = () => target.Generate(type, null, null); if (typeSupported) { action.ShouldNotThrow(); } else { action.ShouldThrow<NotSupportedException>(); } }
public void GenerateReturnsDecimalValuesTest(Type type) { var decimalFound = false; var target = new NumericValueGenerator(); for (var index = 0; index < 1000; index++) { var value = target.Generate(type, null, null); var actual = Convert.ToDouble(value); if (unchecked(actual != (int) actual)) { decimalFound = true; break; } } decimalFound.Should().BeTrue(); }
public void GenerateDoesNotReturnInfinityForDoubleTest() { var target = new NumericValueGenerator(); var value = target.Generate(typeof(double), null, null); var actual = Convert.ToDouble(value); double.IsInfinity(actual).Should().BeFalse(); }
public void HasHigherPriorityThanNumericValueGeneratorTest() { var target = new AgeValueGenerator(); var other = new NumericValueGenerator(); target.Priority.Should().BeGreaterThan(other.Priority); }
public void PriorityReturnsGreaterThanNumericValueGeneratorTest() { var target = new CountValueGenerator(); var generator = new NumericValueGenerator(); target.Priority.Should().BeGreaterThan(generator.Priority); }
public void AllowNullReturnsFalseByDefault() { var sut = new NumericValueGenerator(); sut.AllowNull.Should().BeFalse(); }