/// <inheritdoc/>
        public IScoutingResult Scout(string path)
        {
            var result = new ScoutingResult()
            {
                Columns = ScoutingMethod.Keys.ToList <string>()
            };

            if (!Directory.Exists(path))
            {
                result.ErrorOccurred = true;
                result.ErrorMessage  = $"対象ディレクトリが存在しません。\n{path}";
                return(result);
            }

            try
            {
                AppendToReport(path, result);

                result.ErrorOccurred = false;
            }
            catch (PathTooLongException ex)
            {
                result.ErrorOccurred = true;
                result.ErrorMessage  = ex.Message;
                return(result);
            }
            catch (Exception ex)
            {
                result.ErrorOccurred = true;
                result.ErrorMessage  = $@"{ex.Message}\r\n{ex.StackTrace}";
                return(result);
            }

            return(result);
        }
示例#2
0
        public void Test_Report_WhenScoutingIsFailed()
        {
            // インスタンス生成
            var scoutingResult = new ScoutingResult()
            {
                ErrorOccurred = true,
                ErrorMessage  = "abc123"
            };

            // テスト対象の処理を実行
            var reporter       = new CSVScoutingReporter();
            var reporterResult = reporter.Report(new ReportingClue()
            {
                ScoutingResult = scoutingResult,
                OutputLocation = Path.Combine(this.DirectoryPath, "unittest.csv")
            });

            // テスト結果を検証
            var actual = File.ReadAllText(reporterResult.OutputLocation, Encoding.UTF8);

            Assert.AreEqual("abc123", actual);
        }
示例#3
0
        public void Test_Report_WhenScoutingIsSuccessful()
        {
            // テスト前のファイル一覧を取得
            var root = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var filesBeforeReporting = Directory.GetFiles(root);

            // インスタンス生成
            var columns = new string[] { "C1", "C2", "C3" };
            var values  = new string[][] {
                new string[] { "V11", "V12", "V13" },
                new string[] { "V21", "V22", "V23" },
                new string[] { "V31", "V32", "V33" },
            };
            var scoutingResult = new ScoutingResult()
            {
                Columns       = columns.ToList(),
                Values        = values.Select(x => x.ToList()).ToList(),
                ErrorOccurred = false
            };

            // テスト対象の処理を実行
            var reporter       = new CSVScoutingReporter();
            var reporterResult = reporter.Report(new ReportingClue()
            {
                ScoutingResult = scoutingResult,
                OutputLocation = Path.Combine(this.DirectoryPath, "unittest.csv")
            });

            // テスト結果を検証
            var expected =
                "\"C1\",\"C2\",\"C3\"\r\n" +
                "\"V11\",\"V12\",\"V13\"\r\n" +
                "\"V21\",\"V22\",\"V23\"\r\n" +
                "\"V31\",\"V32\",\"V33\"\r\n";
            var actual = File.ReadAllText(reporterResult.OutputLocation, Encoding.UTF8);

            Assert.AreEqual(expected, actual);
        }