/// <summary>
        /// 調査の実行ボタンが押下された場合の処理を行います。
        /// </summary>
        /// <param name="sender">イベント発生元。</param>
        /// <param name="e">イベント引数。</param>
        private void ExecuteButton_Click(object sender, EventArgs e)
        {
            // 調査結果の取得
            dynamic obj            = ScoutDataGridView.SelectedRows[0].DataBoundItem;
            var     scoutingResult = Scout[obj.Name].Scout(TargetDirectoryTextBox.Text);
            var     reporter       = new CSVScoutingReporter();

            // 結果の出力
            var fileName = $"result_{DateTime.Now:yyyyMMddhhmmss}.csv";
            var path     = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            IReportingResult reportingResult = reporter.Report(new ReportingClue()
            {
                ScoutingResult = scoutingResult,
                OutputLocation = Path.Combine(path, fileName)
            });

            // 結果の通知
            MessageBox.Show($"結果を保存しました。\r\n保存先:{reportingResult.OutputLocation}");
        }
Beispiel #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);
        }
Beispiel #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);
        }