public void RestoresPreviousIndentLevelOnDisposalWithSpecifiedAmount() { // Given StringBuilder builder = new StringBuilder(); OutputFile output = new OutputFileWriter(new StringWriter(builder)); string expected = @"A B C D E "; // When output.WriteLine("A"); using (output.WithIndent()) { output.WriteLine("B"); using (output.WithIndent(0)) { output.WriteLine("C"); } output.WriteLine("D"); } output.WriteLine("E"); // Then Assert.AreEqual(expected, builder.ToString()); }
public void SetsToSpecifiedIndentLevel() { // Given StringBuilder builder = new StringBuilder(); OutputFile output = new OutputFileWriter(new StringWriter(builder)); // When output.IndentLevel = 3; // Then Assert.AreEqual(3, output.IndentLevel); }
public void ReturnsPreviousIndentLevelWhenSettingToSpecifiedIndentLevel() { // Given StringBuilder builder = new StringBuilder(); OutputFile output = new OutputFileWriter(new StringWriter(builder)); // When output.IndentLevel = 3; int previousIndentLevel = output.Indent(2); // Then Assert.AreEqual(3, previousIndentLevel); }
public void IncrementsIndentLevel() { // Given StringBuilder builder = new StringBuilder(); OutputFile output = new OutputFileWriter(new StringWriter(builder)); // When output.IndentLevel = 3; output.Indent(); // Then Assert.AreEqual(4, output.IndentLevel); }
public ExtractionResponse RunExtraction() { List <InputFileItem> inputItemCollection; var fileReader = new InputFileReader(_csvDelimiter); try { inputItemCollection = fileReader.GetInputItemCollection(Request.InputFilePath); } catch (Exception ex) { Response.GeneralException = ex.GetInnerMostException(); return(Response); } var successCnt = 0; var markupAggregator = new MarkupAggregator( HttpAgent, VerboseLogger, _hrefRegex, _invalidSiteLinkPatterns); var emailExtractor = new EmailExtractor(_emailRegex); var fileWriter = new OutputFileWriter(_csvDelimiter, Request.OutputDirectory); foreach (var inputItem in inputItemCollection) { VerboseLogger.Log($"Extracting from {inputItem.SiteUrl} url..."); try { ProcessInputFileItem(inputItem, markupAggregator, emailExtractor, fileWriter); VerboseLogger.Log($"Extraction completed for {inputItem.SiteUrl} url..."); successCnt++; } catch (Exception ex) { var eEx = new ExtractionException("", ex) { InputUrl = inputItem.SiteUrl }; VerboseLogger.Log("Extraction failed. Moving to next url..."); Response.ExtractionExceptions = Response.ExtractionExceptions ?? new List <ExtractionException>(); Response.ExtractionExceptions.Add(eEx); } } Response.SuccessfulExtractions = successCnt; return(Response); }
private void ProcessInputFileItem(InputFileItem inputItem, MarkupAggregator markupAggregator, EmailExtractor emailExtractor, OutputFileWriter fileWriter) { var aggregatedSiteMarkup = markupAggregator.AggregateMarkupFromRootUrl(inputItem.SiteUrl); VerboseLogger.Log($"...collected #{aggregatedSiteMarkup.Count} unique pages"); var extractResult = emailExtractor.ExtractEmailsFromMarkup(inputItem.SiteUrl, aggregatedSiteMarkup); VerboseLogger.Log($"...identified #{extractResult.Emails.Count} unique emails " + $"and has mailto tag = {extractResult.HasMailto}"); fileWriter.WriteExtractResult(extractResult); }
public void DoesNotWriteIfNoIndentLevel() { // Given StringBuilder builder = new StringBuilder(); OutputFile output = new OutputFileWriter(new StringWriter(builder)); // When output.IndentString = ".."; output.IndentLevel = 0; output.WriteIndent(); // Then Assert.AreEqual(string.Empty, builder.ToString()); }
public void WritesTheCurrentIndentStringMultipleTimes() { // Given StringBuilder builder = new StringBuilder(); OutputFile output = new OutputFileWriter(new StringWriter(builder)); string expected = @"...."; // When output.IndentString = ".."; output.IndentLevel = 2; output.WriteIndent(); // Then Assert.AreEqual(expected, builder.ToString()); }
public void IndentsUntilDisposal() { // Given StringBuilder builder = new StringBuilder(); OutputFile output = new OutputFileWriter(new StringWriter(builder)); string expected = @"A B C "; // When output.WriteLine("A"); using (output.WithIndent()) { output.WriteLine("B"); } output.WriteLine("C"); // Then Assert.AreEqual(expected, builder.ToString()); }
public void DoesNotResetIndentWriteFlag() { // Given StringBuilder builder = new StringBuilder(); OutputFile output = new OutputFileWriter(new StringWriter(builder)); string expected = @"A ....B C "; // When output.IndentString = ".."; output.WriteLine("A"); using (output.WithIndent()) { output.WriteIndent(); output.WriteLine("B"); } output.WriteLine("C"); // Then Assert.AreEqual(expected, builder.ToString()); }