private void SummarizeFailedResults(string path, ParseFileResultWithAttachments resultWithAttachments, AppendedResults appendedResults)
        {
            var result = resultWithAttachments.Result;

            var attachmentSummary = GetAttachmentSummary(resultWithAttachments.Attachments);

            if (result.Parsed)
            {
                throw new ExpectedException(
                          $"'{path}' was parsed successfully with {appendedResults.AppendedVisits.Count} visits{attachmentSummary} appended when {Context.ExpectedStatus} was expected.");
            }

            if (result.Status != ParseFileStatus.CannotParse)
            {
                throw new ExpectedException(
                          $"Result: '{path}' Parsed={result.Parsed} Status={result.Status} ErrorMessage={result.ErrorMessage}{attachmentSummary}");
            }

            var errorMessage = result.ErrorMessage;

            if (!string.IsNullOrEmpty(errorMessage))
            {
                throw new ExpectedException($"Can't parse '{path}'. {errorMessage}{attachmentSummary}");
            }

            throw new ExpectedException($"File '{path}'{attachmentSummary} is not parsed by the plugin.");
        }
 private void SummarizeResults(string path, ParseFileResultWithAttachments resultWithAttachments, AppendedResults appendedResults)
 {
     try
     {
         if (resultWithAttachments.Result?.Status == Context.ExpectedStatus)
         {
             SummarizeExpectedResults(path, resultWithAttachments, appendedResults);
         }
         else
         {
             SummarizeFailedResults(path, resultWithAttachments, appendedResults);
         }
     }
     catch (ExpectedException e)
     {
         if (Context.DataPaths.Count > 1)
         {
             Log.Error(e.Message);
             ++FailedCount;
         }
         else
         {
             throw;
         }
     }
 }
        private void SummarizeExpectedResults(string path, ParseFileResultWithAttachments resultWithAttachments, AppendedResults appendedResults)
        {
            var result = resultWithAttachments.Result;

            var attachmentSummary = GetAttachmentSummary(resultWithAttachments.Attachments);

            if (result.Parsed)
            {
                if (!appendedResults.AppendedVisits.Any())
                {
                    throw new ExpectedException($"'{path}' was parsed{attachmentSummary} but no visits were appended.");
                }

                Log.Info($"Successfully parsed {appendedResults.AppendedVisits.Count} visits{attachmentSummary} from '{path}'.");
            }
            else
            {
                var actualError   = result.ErrorMessage ?? string.Empty;
                var expectedError = Context.ExpectedError ?? string.Empty;

                if (!actualError.Equals(expectedError))
                {
                    throw new ExpectedException(
                              $"Expected an error message of '{expectedError}' but received '{actualError}' instead while parsing '{path}'{attachmentSummary}.");
                }

                Log.Info($"ParsedResult.Status == {Context.ExpectedStatus} with Error='{Context.ExpectedError}' as expected when parsing '{path}'{attachmentSummary}.");
            }
        }
Example #4
0
 private void SummarizeResults(string path, ParseFileResultWithAttachments resultWithAttachments, AppendedResults appendedResults)
 {
     try
     {
         // Use a string comparison of the enum status, since they are not the same enum (which allows different frameworks to be used)
         if ($"{resultWithAttachments.Result?.Status}" == $"{Context.ExpectedStatus}")
         {
             SummarizeExpectedResults(path, resultWithAttachments, appendedResults);
         }
         else
         {
             SummarizeFailedResults(path, resultWithAttachments, appendedResults);
         }
     }
     catch (ExpectedException e)
     {
         if (Context.DataPaths.Count > 1)
         {
             Log.Error(e.Message);
             ++FailedCount;
         }
         else
         {
             throw;
         }
     }
 }