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"); } }
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)); }