示例#1
0
        public string ProcessDocument(DocumentViewModel model)
        {
            switch (model.DocumentType)
            {
            case DocumentTypes.QuickDocument:
                var quickDocument = new QuickDocument
                {
                    Name    = model.Name,
                    Content = model.Content
                };
                return(quickDocument.PrintString());

            case DocumentTypes.StandardDocument:
                var standardDocument = new StandardDocument
                {
                    Name           = model.Name,
                    Content        = model.Content,
                    NumberOfCopies = model.NumberOfCopies
                };
                return(standardDocument.PrintString());

            case DocumentTypes.SlowDocument:
                var slowDocument = new SlowDocument
                {
                    Name           = model.Name,
                    Content        = model.Content,
                    NumberOfCopies = model.NumberOfCopies
                };
                return(slowDocument.PrintString());

            default:
                return("Error processing document");
            }
        }
示例#2
0
        public void SlowDocument_Test()
        {
            // Arrange
            var expectedValue = "name: content";
            var document      = new SlowDocument {
                Name = "name", Content = "content", NumberOfCopies = 2
            };

            // Act
            var startTime = DateTime.Now;

            var results = document.PrintString();

            var jobDuration = DateTime.Now - startTime;

            // Assert
            Assert.IsTrue(Regex.Matches(results, expectedValue).Count == document.NumberOfCopies);
            Assert.GreaterOrEqual(jobDuration, new TimeSpan(0, 0, document.Delay * document.NumberOfCopies));
        }