public void Test_Do_ReturnsNumber_WhenFileDoesNotHaveEmptyRow()
        {
            // テスト用のファイルを用意
            var fileName     = MethodBase.GetCurrentMethod().Name;
            var filePath     = Path.Combine(this.DirectoryPath, fileName);
            var fileEncoding = Encoding.UTF8;

            using (var stream = File.Create(filePath))
                using (var writer = new StreamWriter(stream, fileEncoding))
                {
                    writer.WriteLine("123");
                    writer.WriteLine("abc");
                    writer.Flush();
                }

            // テスト対象の処理を実行
            var method = new NumberOfEmptyRowsScoutingMethod();
            var actual = method.Do(new ScoutingClue()
            {
                FilePath = filePath,
                Encoding = fileEncoding
            });

            // テスト結果を検証
            Assert.AreEqual("0", actual);
        }
        public void Test_Do_ReturnsNumber_WhenFileHasEmptyRows()
        {
            // テスト用のファイルを用意
            var fileName     = MethodBase.GetCurrentMethod().Name;
            var filePath     = Path.Combine(this.DirectoryPath, fileName);
            var fileEncoding = Encoding.UTF8;

            using (var stream = File.Create(filePath))
                using (var writer = new StreamWriter(stream, fileEncoding))
                {
                    // カウント対象
                    writer.WriteLine(new string(' ', 15));
                    writer.WriteLine(new string(' ', 15));
                    writer.WriteLine(new string('\t', 15));
                    writer.WriteLine($"{' '}{' '}{'\t'}");

                    // 非カウント対象
                    writer.WriteLine("       a       ");

                    writer.Flush();
                }

            // テスト対象の処理を実行
            var method = new NumberOfEmptyRowsScoutingMethod();
            var actual = method.Do(new ScoutingClue()
            {
                FilePath = filePath,
                Encoding = fileEncoding
            });

            // テスト結果を検証
            Assert.AreEqual("4", actual);
        }
        public void Test_Do_ReturnsZero_WhenFileIsBinary()
        {
            // テスト用のファイルを用意
            var fileName = MethodBase.GetCurrentMethod().Name;
            var filePath = Path.Combine(this.DirectoryPath, fileName);

            using (var stream = File.Create(filePath))
            {
                stream.Write(new byte[] { 0x0 }, 0, 1);
                stream.Flush();
            }

            // テスト対象の処理を実行
            var method = new NumberOfEmptyRowsScoutingMethod();
            var actual = method.Do(new ScoutingClue()
            {
                FilePath = filePath,
                Encoding = null,
            });

            // テスト結果を検証
            Assert.AreEqual("0", actual);
        }