Beispiel #1
0
        public void EnterJsonTest(string targetMessage, LoggerExtensionsTestObject targetArgs, ExpectedLog expectedLog)
        {
            List <TestLog>      logs   = new List <TestLog>();
            TestLogger <string> logger = new TestLogger <string>(logs);

            // ログ出力
            Rms.Server.Core.Utility.Extensions.LoggerExtensions.EnterJson(logger, targetMessage, targetArgs);

            // ログを確認する
            CheckEqualityLogLevelsAndMessages(logs, expectedLog, targetArgs);
        }
Beispiel #2
0
        public void WarnJsonWithException(
            Exception targetException, string targetMessageCode, LoggerExtensionsTestObject targetArgs, ExpectedLog expectedLog)
        {
            List <TestLog>      logs   = new List <TestLog>();
            TestLogger <string> logger = new TestLogger <string>(logs);

            // ログ出力
            Rms.Server.Core.Utility.Extensions.LoggerExtensions.WarnJson(logger, targetException, targetMessageCode, targetArgs);

            // ログを確認する
            CheckEqualityLogLevelsAndExceptionsAndMessages(logs, expectedLog, targetArgs);
        }
Beispiel #3
0
        public void ErrorTestWithArgumentsWithException(
            Exception targetException, string targetMessageCode, LoggerExtensionsTestObject targetArgs, ExpectedLog expectedLog)
        {
            List <TestLog>      logs   = new List <TestLog>();
            TestLogger <string> logger = new TestLogger <string>(logs);

            // ログ出力
            Rms.Server.Core.Utility.Extensions.LoggerExtensions.Error(
                logger, targetException, targetMessageCode, new object[] { LoggerExtensionsTestObject.GetJsonString(targetArgs) });

            // ログを確認する
            CheckEqualityLogLevelsAndExceptionsAndMessages(logs, expectedLog, targetArgs);
        }
Beispiel #4
0
 /// <summary>
 /// 本クラスをシリアライズした文字列を取得する
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public static string GetJsonString(LoggerExtensionsTestObject obj)
 {
     return(JsonConvert.SerializeObject(obj));
 }
Beispiel #5
0
 /// <summary>
 /// 指定したメッセージフォーマットに引数を渡してログメッセージを生成する
 /// </summary>
 /// <param name="jsonObject">引数に渡すJSONオブジェクト</param>
 /// <returns>引数つきのログメッセージ</returns>
 /// <remarks>
 /// メッセージフォーマットにプレースホルダーが無い場合には引数として渡したJSONオブジェクトは無視される。
 /// 引数に渡すオブジェクトの数とプレースホルダーの数が一致しないとFormatExceptionが発生するので注意
 /// </remarks>
 public static string GetMessageWithArguments(ExpectedLog expectedLog, LoggerExtensionsTestObject jsonObject)
 {
     return(string.Format(expectedLog.MessageFormat, LoggerExtensionsTestObject.GetJsonString(jsonObject)));
 }
Beispiel #6
0
        /// <summary>
        /// 出力した例外付きログをチェックする
        /// </summary>
        /// <param name="actualLogs">出力したログのリスト</param>
        /// <param name="expectedLog">テスト結果として期待するログ</param>
        /// <param name="expectedArgs">テスト結果として期待するログに渡す引数</param>
        private void CheckEqualityLogLevelsAndExceptionsAndMessages(List <TestLog> actualLogs, ExpectedLog expectedLog, LoggerExtensionsTestObject expectedArgs)
        {
            // ログレベルとメッセージの確認
            CheckEqualityLogLevelsAndMessages(actualLogs, expectedLog, expectedArgs);

            // Exceptionの確認
            Exception exception = actualLogs[0].Exception;

            Assert.IsNotNull(exception);
            Assert.AreEqual(expectedLog.Exception.GetType(), exception.GetType());
        }
Beispiel #7
0
        /// <summary>
        /// 出力したログをチェックする
        /// </summary>
        /// <param name="actualLogs">出力したログのリスト</param>
        /// <param name="expectedLog">テスト結果として期待するログ</param>
        /// <param name="expectedArgs">テスト結果として期待するログに渡す引数</param>
        private void CheckEqualityLogLevelsAndMessages(List <TestLog> actualLogs, ExpectedLog expectedLog, LoggerExtensionsTestObject expectedArgs)
        {
            // ログは1つだけ出力
            Assert.AreEqual(1, actualLogs.Count);

            // ログオブジェクトがnullでない
            Assert.IsNotNull(actualLogs[0]);

            // ログレベルを確認
            Assert.AreEqual(expectedLog.LogLevel, actualLogs[0].LogLevel);

            // ログオブジェクトのメッセージが期待した値になっていることを確認
            Assert.AreEqual(true, actualLogs[0].GetSimpleText().Contains(ExpectedLog.GetMessageWithArguments(expectedLog, expectedArgs)));
        }