コード例 #1
0
ファイル: TestTimeOut.cs プロジェクト: ywangmaxmd/nhin-d
        public void TestProcessedTimeOutToDSNFail()
        {
            //
            // Sample data
            //
            MdnManager target = CreateManager();

            InitMdnRecords();
            CleanMessages(PickupFolder);

            //timespan and max records set
            var mdns = target.GetExpiredProcessed(TimeSpan.FromMinutes(10), 40);

            Assert.Equal(20, mdns.Count());


            MdnProcessedTimeout processedTimeout = new MdnProcessedTimeout();

            //Execute unprocessed records over 11 minutes old.
            JobExecutionContext context = CreateProcessedJobExecutionContext(11, 10);

            processedTimeout.Execute(context);

            //Nothing was processed
            mdns = target.GetExpiredProcessed(TimeSpan.FromMinutes(10), 40);
            Assert.Equal(20, mdns.Count());

            //Execute unprocessed records over 10 minutes old.
            context = CreateProcessedJobExecutionContext(10, 10);
            processedTimeout.Execute(context);

            //10 records left
            mdns = target.GetExpiredProcessed(TimeSpan.FromMinutes(10), 40);
            Assert.Equal(10, mdns.Count());

            var files = Directory.GetFiles(PickupFolder);

            Assert.Equal(10, files.Count());

            //Do it again
            processedTimeout.Execute(context);
            mdns = target.GetExpiredProcessed(TimeSpan.FromMinutes(10), 40);
            Assert.Equal(0, mdns.Count());

            files = Directory.GetFiles(PickupFolder);
            Assert.Equal(20, files.Count());

            foreach (var file in files)
            {
                Message loadedMessage = Message.Load(File.ReadAllText(file));
                Assert.True(loadedMessage.IsDSN());
                Assert.Equal("multipart/report", loadedMessage.ParsedContentType.MediaType);
                Assert.Equal("Rejected:To dispatch or not dispatch", loadedMessage.SubjectValue);
                var dsnActual = DSNParser.Parse(loadedMessage);
                Assert.Equal(DSNStandard.DSNAction.Failed, dsnActual.PerRecipient.First().Action);
                Assert.Equal("5.4.71", dsnActual.PerRecipient.First().Status);
            }
        }
コード例 #2
0
ファイル: TestTimeOut.cs プロジェクト: DM-TOR/nhin-d
        public void TestProcessedTimeOutToDSNFail()
        {
            //
            // Sample data
            //
            MdnManager target = CreateManager();
            InitMdnRecords();
            CleanMessages(PickupFolder);
            
            //timespan and max records set
            var mdns = target.GetExpiredProcessed(TimeSpan.FromMinutes(10), 40);
            Assert.Equal(20, mdns.Count());


            MdnProcessedTimeout processedTimeout = new MdnProcessedTimeout();

            //Execute unprocessed records over 11 minutes old.
            JobExecutionContext context = CreateProcessedJobExecutionContext(11, 10);
            processedTimeout.Execute(context); 

            //Nothing was processed 
            mdns = target.GetExpiredProcessed(TimeSpan.FromMinutes(10), 40);
            Assert.Equal(20, mdns.Count());

            //Execute unprocessed records over 10 minutes old.
            context = CreateProcessedJobExecutionContext(10, 10);
            processedTimeout.Execute(context); 

            //10 records left
            mdns = target.GetExpiredProcessed(TimeSpan.FromMinutes(10), 40);
            Assert.Equal(10, mdns.Count());

            var files = Directory.GetFiles(PickupFolder);
            Assert.Equal(10, files.Count());

            //Do it again
            processedTimeout.Execute(context);
            mdns = target.GetExpiredProcessed(TimeSpan.FromMinutes(10), 40);
            Assert.Equal(0, mdns.Count());

            files = Directory.GetFiles(PickupFolder);
            Assert.Equal(20, files.Count());

            foreach (var file in files)
            {
                Message loadedMessage = Message.Load(File.ReadAllText(file));
                Assert.True(loadedMessage.IsDSN());
                Assert.Equal("multipart/report", loadedMessage.ParsedContentType.MediaType);
                Assert.Equal("Rejected:To dispatch or not dispatch", loadedMessage.SubjectValue);
                var dsnActual = DSNParser.Parse(loadedMessage);
                Assert.Equal(DSNStandard.DSNAction.Failed, dsnActual.PerRecipient.First().Action);
                Assert.Equal("5.4.71", dsnActual.PerRecipient.First().Status);
            }
            

        }