Author: bodewig
Date: Sat Nov 5 18:42:57 2016
New Revision: 1768270
URL: http://svn.apache.org/viewvc?rev=1768270&view=rev
Log:
LOG4NET-526 tests for AppSettingPatternConverter by JocularJoe, closes #39
Modified:
logging/log4net/trunk/tests/src/Util/PatternStringTest.cs
Modified: logging/log4net/trunk/tests/src/Util/PatternStringTest.cs
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/tests/src/Util/PatternStringTest.cs?rev=1768270&r1=1768269&r2=1768270&view=diff
==============================================================================
--- logging/log4net/trunk/tests/src/Util/PatternStringTest.cs (original)
+++ logging/log4net/trunk/tests/src/Util/PatternStringTest.cs Sat Nov 5
18:42:57 2016
@@ -22,11 +22,14 @@
using System;
using log4net.Util;
using NUnit.Framework;
+using System.IO;
+using System.Reflection;
+using System.Configuration;
namespace log4net.Tests.Util
{
[TestFixture]
- public class PatternStringTest
+ public class PatternStringTest : MarshalByRefObject
{
[Test]
public void TestEnvironmentFolderPathPatternConverter()
@@ -47,5 +50,63 @@ namespace log4net.Tests.Util
Assert.AreEqual(Environment.GetFolderPath(specialFolder),
evaluatedPattern);
}
}
+
+ [Test]
+ public void TestAppSettingPathConverter()
+ {
+ string configurationFileContent = @"
+<configuration>
+ <appSettings>
+ <add key=""TestKey"" value = ""TestValue"" />
+ </appSettings>
+</configuration>
+";
+ string configurationFileName = null;
+ AppDomain appDomain = null;
+ try
+ {
+ configurationFileName =
CreateTempConfigFile(configurationFileContent);
+ appDomain = CreateConfiguredDomain("AppSettingsTestDomain",
configurationFileName);
+
+ PatternStringTest pst =
(PatternStringTest)appDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName,
this.GetType().FullName);
+ pst.TestAppSettingPathConverterInConfiguredDomain();
+ }
+ finally
+ {
+ if (appDomain != null) AppDomain.Unload(appDomain);
+ if (configurationFileName != null)
File.Delete(configurationFileName);
+ }
+ }
+
+ public void TestAppSettingPathConverterInConfiguredDomain()
+ {
+ string pattern = "%appSetting{TestKey}";
+ PatternString patternString = new PatternString(pattern);
+ string evaluatedPattern = patternString.Format();
+ string appSettingValue =
ConfigurationManager.AppSettings["TestKey"];
+ Assert.AreEqual("TestValue", appSettingValue, "Expected
configuration file to contain a key TestKey with the value TestValue");
+ Assert.AreEqual(appSettingValue, evaluatedPattern, "Evaluated
pattern expected to be identical to appSetting value");
+
+ string badPattern = "%appSetting{UnknownKey}";
+ patternString = new PatternString(badPattern);
+ evaluatedPattern = patternString.Format();
+ Assert.AreEqual("(null)", evaluatedPattern, "Evaluated pattern
expected to be \"(null)\" for non-existent appSettings key");
+ }
+
+ private static string CreateTempConfigFile(string
configurationFileContent)
+ {
+ string fileName = Path.GetTempFileName();
+ File.WriteAllText(fileName, configurationFileContent);
+ return fileName;
+ }
+
+ private static AppDomain CreateConfiguredDomain(string domainName,
string configurationFileName)
+ {
+ AppDomainSetup ads = new AppDomainSetup();
+ ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
+ ads.ConfigurationFile = configurationFileName;
+ AppDomain ad = AppDomain.CreateDomain(domainName, null, ads);
+ return ad;
+ }
}
}