public async Task RunsAllJobs() { SpfRecordsDepthFirstJobProcessor processor = new SpfRecordsDepthFirstJobProcessor(); SpfRecords spfRecords = CreateSpfRecords(); List <string> spfs = new List <string>(); Task GetSpfRecord(SpfRecords spfRecds) { foreach (SpfRecord spfRecord in spfRecds.Records) { spfs.Add(spfRecord.Record); } return(Task.CompletedTask); } await processor.Process(spfRecords, GetSpfRecord, GetSpfRecord); Assert.That(spfs.Count, Is.EqualTo(6)); Assert.That(spfs[0], Is.EqualTo("one")); Assert.That(spfs[1], Is.EqualTo("one")); Assert.That(spfs[2], Is.EqualTo("two")); Assert.That(spfs[3], Is.EqualTo("two")); Assert.That(spfs[4], Is.EqualTo("three")); Assert.That(spfs[5], Is.EqualTo("three")); }
private async Task <List <SpfRecord> > Process(SpfRecords spfRecordRoot) { List <SpfRecord> allSpfRecords = new List <SpfRecord>(); Task AddToList(SpfRecords records) { if (records != null) { foreach (SpfRecord spfRecord in records.Records) { if (!spfRecordRoot.Records.Contains(spfRecord)) { allSpfRecords.Add(spfRecord); } } } return(Task.CompletedTask); } SpfRecordsDepthFirstJobProcessor processor = new SpfRecordsDepthFirstJobProcessor(); await processor.Process(spfRecordRoot, AddToList); return(allSpfRecords); }