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

            using (var stream = File.Create(filePath))
                using (var writer = new StreamWriter(stream, fileEncoding))
                {
                    var script = @"

Sub a()
    Dim a1 As Object
End Sub

Public Sub b()
    Dim b1 As Object
End Sub

Private Sub c()
    Dim c1 As Object
End Sub

Function d() As Object
    Dim d1 As Object
End Function

Public Function e() As Object
    Dim e1 As Object
End Function

Private Function f() As Object
    Dim f1 As Object
End Function

";

                    writer.Write(script);
                    writer.Flush();
                }

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

            // テスト結果を検証
            Assert.AreEqual("2", 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 NumberOfVB6PublicSubProceduresScoutingMethod();
            var actual = method.Do(new ScoutingClue()
            {
                FilePath = filePath,
                Encoding = null,
            });

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