public void InputFile_NotExcelFile_Throws()
        {
            var options = new Options {InputPath = @"C:\TestDir\TestFile.pdf", OutputPath = @"C:\TestDir\TestFile.txt"};
              var validator = new OptionsValidator();
              Action act = () => validator.ValidateAndThrow(options);

              act.ShouldThrow<ValidationException>().WithMessage("*not Excel*");
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var options = new Options();

              var extractor = Container.GetInstance<IExtractor<KitLabel>>();
              var settings = Container.GetInstance<ISettingsService>();

              var jobValidator = new JobValidator(settings);
              var columnMapValidator = new ColumnMapValidator();
              var optionsValidator = new OptionsValidator();
              var kitLabels = new List<KitLabel>();
              Job job;

              CommandLine.Parser.Default.ParseArguments(args, options);

              try {
            optionsValidator.ValidateAndThrow(options);

            extractor.Initialize(options.InputPath);
            var columnMap = extractor.GetColumnMap(settings, 1, 1);

            columnMapValidator.ValidateAndThrow(columnMap);

            kitLabels.AddRange(extractor.Extract(columnMap, 1, 2));
            job = new Job(settings.OutputHeaderString, kitLabels);

            jobValidator.ValidateAndThrow(job);
              }

              catch (ValidationException exc) {
            var messages = string.Join("; ", exc.Errors.Select(e => e.ErrorMessage));
            var messageText = string.Format("** Warning! Input data file validation failed:; {0}", messages);

            kitLabels = new List<KitLabel>
            {
              new KitLabel(69) {Attn = "Data errors detected", Sbu = "Error", KitName = messageText}
            };
              }

              catch (ArgumentOutOfRangeException exception) {
            var message = "** Warning! Excel conversion errors occurred:; ";
            var lookup = new Dictionary<string, string>
            {
              {"sheetIndex", "Unable to find a worksheet from which to extract data"},
              {"startRowIndex", "No kit label rows are present in the data file"}
            };

            string errorText;

            if (lookup.TryGetValue(exception.ParamName, out errorText)) {
              message += errorText;
            }

            kitLabels = new List<KitLabel>
            {
              new KitLabel(69) {Attn = "Range error detected", Sbu = "Error",  KitName = message}
            };
              }

              catch (Exception exc) {
            var message = string.Format("** Warning! Excel conversion errors occurred:; {0}", exc.Message);
            kitLabels = new List<KitLabel>
            {
              new KitLabel(70) {Attn = "Unknown Error detected", Sbu = "Error",  KitName = message}
            };
              }

              finally {
            job = new Job(settings.OutputHeaderString, kitLabels);
            File.WriteAllLines(options.OutputPath, job.GetOutputList(), Encoding.Unicode);
              }
        }