コード例 #1
0
        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"));
        }
コード例 #2
0
        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);
        }