public static IEnumerable<Task> GetTasks(Folder[] folders = null) { var stringOptions = new string[] { "", null, " ", "kevin", DateTime.Now.ToLongDateString(), "you rock the house with cheese" }; folders = folders ?? new Folder[] { null, new Folder("foo", Colors.Red) }; List<Folder> folderOptions = folders.ToList(); if (!folderOptions.Contains(null)) { folderOptions.Add(null); } var dateOptions = new DateTime?[] { null, DateTime.Now, DateTime.Now.AddDays((Util.Rnd.NextDouble() - .5) * 100) }; foreach (TimeSpan? estimate in new TimeSpan?[] { null, TimeSpan.FromDays(Util.Rnd.NextDouble() * 10), TimeSpan.FromDays(Util.Rnd.NextDouble() * 10) }) { foreach (bool? important in new bool?[] { true, false, null }) { foreach (var description in stringOptions) { foreach (var completeData in dateOptions) { foreach (var folder in folderOptions) { foreach (var dueDate in dateOptions) { yield return new Task() { Description = description, Due = dueDate, Folder = folder, Completed = completeData, Estimate = estimate, IsImportant = important, }; } } } } } } }