Library used for generating arbitrary values for unit testing. Allow extension for your own type
var value = Arbitraty.GetNew<int>()
// generate a range of 12 random int
var value = Arbitraty.GetNewRange<int>(12)
Static method generation use an internal, immutable default generator
A default generator bag including every following types is available for usage and modification using ArbitratyPredefined static class
// retrieve a default generator:
var generator = ArbitratyPredefined.GetDefault();
- Int
- Uint
- Float
- Long
- Double
- String
- Char
- Byte
- Bool
- DateTime
- TimeSpan
- Guid
You could also retrieve an empty one and populate it:
// retrieve an empty generator:
var emptyGenerator = ArbitratyPredefined.GetEmpty();
To add a generator, use the RegisterGenerator method:
// retrieve an empty generator:
var emptyGenerator = ArbitratyPredefined.GetEmpty();
// register a default int generator
emptyGenerator.RegisterGenerator(ArbitraryGeneratorPredefined.IntGenerator);
it could be chained in a fluent manner:
var generator = ArbitratyPredefined
.GetEmpty()
.RegisterGenerator(ArbitraryGeneratorPredefined.IntGenerator)
...
.RegisterGenerator(ArbitraryGeneratorPredefined.DoubleGenerator);
When registering a generator, if a matching type is found, it is overriden
Types generators inherit from ArbitraryGeneratorBase and define a GetNew.
you could create whatever generator suit your needs