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); }
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); }
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); }
/// <summary> /// 本クラスをシリアライズした文字列を取得する /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string GetJsonString(LoggerExtensionsTestObject obj) { return(JsonConvert.SerializeObject(obj)); }
/// <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))); }
/// <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()); }
/// <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))); }