private static IReadOnlyCollection <AssertionTracker> BuildAssertionTrackersWithActionsInMustableState( Type subjectType = null, SubjectValueNullOption subjectValueNullOption = SubjectValueNullOption.CanBeNull, AssertionKind?assertionKind = null) { var result = BuildAssertionTrackersWithAllCombinationsOfFlags(subjectType, subjectValueNullOption, assertionKind) .Where(_ => _.Actions.HasFlag(Actions.Categorized)) .Where(_ => !_.Actions.HasFlag(Actions.Musted)) .Where(_ => !_.Actions.HasFlag(Actions.Eached)) .Where(_ => !_.Actions.HasFlag(Actions.VerifiedAtLeastOnce)) .ToList(); return(result); }
private static IReadOnlyCollection <AssertionTracker> BuildAssertionTrackersWithAllCombinationsOfFlags( Type subjectType = null, SubjectValueNullOption subjectValueNullOption = SubjectValueNullOption.CanBeNull, AssertionKind?assertionKind = null) { if (subjectType == null) { subjectType = typeof(object); } var result = EnumExtensions.GetAllPossibleEnumValues <Actions>().Select( _ => { object subjectValue; switch (subjectValueNullOption) { case SubjectValueNullOption.CannotBeNull: subjectValue = AD.ummy(subjectType); break; case SubjectValueNullOption.MustBeNull: subjectValue = null; break; case SubjectValueNullOption.CanBeNull: subjectValue = ThreadSafeRandom.Next(0, 2) == 0 ? AD.ummy(subjectType) : null; break; default: throw new NotSupportedException("this is not supported: " + subjectValueNullOption); } return(new AssertionTracker { SubjectValue = subjectValue, SubjectType = subjectType, SubjectName = ThreadSafeRandom.Next(0, 2) == 0 ? A.Dummy <string>() : null, Actions = _, AssertionKind = assertionKind ?? A.Dummy <AssertionKind>(), }); }) .ToList(); return(result); }