See the version list below for details.
Install-Package TestDataFramework.dll -Version 3.3.2
dotnet add package TestDataFramework.dll --version 3.3.2
<PackageReference Include="TestDataFramework.dll" Version="3.3.2" />
paket add TestDataFramework.dll --version 3.3.2
#r "nuget: TestDataFramework.dll, 3.3.2"
// Install TestDataFramework.dll as a Cake Addin #addin nuget:?package=TestDataFramework.dll&version=3.3.2 // Install TestDataFramework.dll as a Cake Tool #tool nuget:?package=TestDataFramework.dll&version=3.3.2
Unit test data population tool.
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
- Array randomizer was calling ToString on a constructed value. Could cause an exception if thrown in ToString.
- Direct call to Make on the Populators will remove the RecordReference from being tracked before returning.
- Ability to remove a single Populatable (Record Reference or operable list of) on the populator.
- Bug fix: array/enumerable directly requested from the populator via Add or Make was throwing.
- Deferred values now work on nested properties.
- BindInATransaction method off of the SQL populator returning an IDisposable transaction wrapper object.
Ie: Using a transaction scope with multuiple DBs such as for EF and TestDataFramework doesn't work in the cloud/Azure.
This is to fix it.
- Improvements to bundled TestDataCodeGenerator. Eg: Load all table names in one click.
MaxAttribute added to numeric columns thatg can have small precision. Eg: The framework will respect maximums
for randomized values when number of significant digits is small in floating point DB types.
- long integer arguments to the Min and Max attributes now work with floating point value generation.
- Added Min and Max attribute handling to all scalar and floating point type handlers.
220.127.116.11 No TestDataFramework changes. TestDataCodeGenerator.exe utility bug fix.
- ToString on generated objects will not be called in the log messages.
Some ToString implementations were causing an an exception.
- Catching exception on SetProperty in the property population code.
- Attempting constructors from least number of parameters to greatest number of parameters.
- Swallowing exception if one occurs during constructor invocation on a target object.
- Added missing overload for GuaranteeByFixedQuantity in the derived OperableLists.
Was missing overload taking IEnumerable<T> and an explicit fixed quantity
- Removing state from a service. Allows the same populator object to be used in generation
of an explicitly set property value.
- Deep setting of properties.
- Deep setting of object graph properties beyond a collection.
- Make an object in one line via Make and BindAndMake.
- Ignore a property (to avoid possible side effects).
- Exclusive range of possible values for a property.
- Take and Skip operations for control of what subsets of a collection explicit setters apply to.
- Better encapsulation. Less public/protected member exposure.
* Bug fixes:
Value type and enum constructor parameters were not being populated.
Unsigned integer properties were causing code to break.
* Bug fix. Constructor finder was finding a constructor for a string with a char array parameter.
Was trying to invoke it. Now circumventing this for value/string types and arrays.
Populating those constructor arguments directly.
* Populator will now attempt to resolve constructor with parameters.
Constructors are attempted from least number of parameters (including zero) to most number of parameters.
* Bug fix. When calling deferred value generator, was including record references that were not populatable, and therefore null.
This was causing a null reference exception when the generator tried to access a method (GetType()) off the null record.
* Ability to ignore properties. Useful to avoid side effects of properties with logic in the setter.
New RecordObjects convenience property on the OperableList<T> result collection type. Instead of
user having to write the LINQ statement to select out the RecordObjects.
* All setters on a property are executed in turn.
* Support for enums
* Bug fix. A combination of explicit/deep property setting and collections in the target object were
causing a null ref exception.
* Fixed bug in deep explicit property setting, same issue as in 18.104.22.168. It's a relatively rare edge case.
Calling Make/BindAndMake on an operable list will call the persistence layer only once for entire list.
Was calling once per element. Will save database round trips when DB populator is used.
* Deep explicit setting of properties.
* Introduction of the ability to get a value immediately by calling Make() or BindAndMake().
This is without needing to call IPopulator.Bind() separately to get values on the whole set
of requested objects.
* Bug Fix. Setting explicit value off of an interface didn't identify the concrete object's
actual (derived) type. Under these conditions, properties weren't being explicitly set
on the object instance.
* Assembly version properties correction.
* Syncing C# and Sql Server DateTime values for the Sql Server populator.
Milliseconds were being truncated on Sql Server but not in C#.
* Extra guard when accessing types from assemblies to be scanned.
Was throwing a ReflectionTypeLoadException for a particular assembly/type.
* Bug fix: Guid / uniqueidentifier in Sql Server now supported.
* Foreign keys can be explicitly set. Framework will not enforce referential integrity for those
properties if so.
Allows you to set a foreign key to null if the matching primary key table isn't in the C# model.
Referential integrity errors on the database server can occur if you introduce them this way.
* Internal methods/members of public facing types are marked as internal (or internal protected)
to reduce user's intellisense noise.
* Skipping assemblies that are not found in the file system during scannig of referenced
assemblies for primary/foreign table class matches. An exception had been occuring for some
assemblies, possibly becasue they were not in the bin folder due to being in the GAC.
* Adding an AppSettings key to explicitly enable or disable log messages. The key is:
"TestDataFramework-EnableLogger". The value to enable logging is "true".
Documentation is up to date on GitHub.
* Guarantee methods work with primary keys properly.
* RecordReference.Set method fix.
* Guarantee... methods fix.