protected override object GenerateValue(Type type, string referenceName, LinkedList<object> buildChain)
{
if (buildChain == null)
{
throw new ArgumentNullException(nameof(buildChain));
}
var context = buildChain.Last?.Value;
var gender = GetValue<string>(PropertyExpression.Gender, context);
if (string.Equals(gender, "male", StringComparison.OrdinalIgnoreCase))
{
// Use a male first name
var male = TestData.NextMale();
return male.FirstName;
}
// Use a female name
var female = TestData.NextFemale();
return female.FirstName;
}