public void GeneratesCorrectType(Type argumentType) { var generator = new EnumerableGenerator(elementGeneratorType: typeof(ConstantGenerator), elementGeneratorConstructorArguments: 42); var random = new FuzzRandom(); var generatedValue = generator.Generate(Mock.Of <IFuzzProfile>(), argumentType, random); Assert.IsInstanceOfType(generatedValue, argumentType); }
public override object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { var constructor = random.Choice(type.GetConstructors()); var arguments = constructor.GetParameters() .Select(p => profile.Generate(p.ParameterType, random)); return(constructor.Invoke(arguments.ToArray())); }
public void GeneratesString() { var generator = new NaughtyStringGenerator(); var random = new FuzzRandom(); var generatedValue = generator.Generate(Mock.Of <IFuzzProfile>(), typeof(string), random); Assert.That.IsType <string>(generatedValue); }
public void GeneratesInt() { var generator = new UniformIntGenerator(); var random = new FuzzRandom(); var generatedValue = generator.Generate(Mock.Of <IFuzzProfile>(), typeof(int), random); Assert.IsTrue(generatedValue is int); }
public void GeneratesEnum() { var generator = new EnumGenerator(); var random = new FuzzRandom(); var generatedValue = generator.Generate(Mock.Of <IFuzzProfile>(), typeof(TestEnum), random); Assert.IsTrue(generatedValue is TestEnum); }
public override object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { // Only find direct subclasses. Indirect subclasses can be found recursively var candidateClasses = DirectSubclassesOf(type) .ToList(); var generatedType = random.Choice(candidateClasses); return(profile.Generate(generatedType, random)); }
public void CollectionGeneratorParams() { var generator = new ChoiceGenerator(1, 2, 3, 4); var random = new FuzzRandom(); var generatedValue = generator.Generate(Mock.Of <IFuzzProfile>(), typeof(int), random); Assert.That.IsType <int>(generatedValue); Assert.IsTrue((int)generatedValue < 5); Assert.IsTrue((int)generatedValue > 0); }
public void DefaultsToProfileElementGenerator() { var generator = new EnumerableGenerator(); var random = new FuzzRandom(); var profile = new Mock <IFuzzProfile>(); profile.Setup(c => c.GeneratorFor(typeof(int))).Returns(new ConstantGenerator(42)); var generatedValue = generator.Generate(profile.Object, typeof(IList <int>), random); Assert.IsInstanceOfType(generatedValue, typeof(IList <int>)); }
public override object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { var constructor = type.GetConstructor(Array.Empty <Type>()) !; var instance = constructor.Invoke(Array.Empty <object?>()); foreach (var property in type.GetDataProperties()) { if (!property.CanWrite) { continue; } var value = profile.Generate(property.PropertyType, random); property.SetValue(instance, value); } return(instance); }
public object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { return(null); }
public override object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { return(random.Uniform(Min, Max)); }
public override object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { return(_value); }
public override object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { return(random.Poisson(Mean)); }
public override object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { Check.IsTrue(type.IsEnum); return(random.Choice(type.GetEnumValues())); }
public override object?Generate(IFuzzProfile profile, Type type, FuzzRandom random) { return(random.Choice(_items)); }