Quellcode durchsuchen

Add tests for AppSettingsSection.

Tom Philpot vor 11 Jahren
Ursprung
Commit
dbee33d41c

+ 1 - 0
mcs/class/System.Configuration/System.Configuration-tests-net_2_0.csproj

@@ -46,6 +46,7 @@
   <ItemGroup>
     <Compile Include="Test\System.Configuration.Provider\ProviderBaseTest.cs" />
     <Compile Include="Test\System.Configuration.Provider\ProviderCollectionTest.cs" />
+    <Compile Include="Test\System.Configuration\AppSettingsSectionTest.cs" />    
     <Compile Include="Test\System.Configuration\CallbackValidatorTest.cs" />
     <Compile Include="Test\System.Configuration\CommaDelimitedStringCollectionConverterTest.cs" />
     <Compile Include="Test\System.Configuration\CommaDelimitedStringCollectionTest.cs" />

+ 1 - 0
mcs/class/System.Configuration/System.Configuration-tests-net_4_0.csproj

@@ -46,6 +46,7 @@
   <ItemGroup>
     <Compile Include="Test\System.Configuration.Provider\ProviderBaseTest.cs" />
     <Compile Include="Test\System.Configuration.Provider\ProviderCollectionTest.cs" />
+    <Compile Include="Test\System.Configuration\AppSettingsSectionTest.cs" />
     <Compile Include="Test\System.Configuration\CallbackValidatorTest.cs" />
     <Compile Include="Test\System.Configuration\CommaDelimitedStringCollectionConverterTest.cs" />
     <Compile Include="Test\System.Configuration\CommaDelimitedStringCollectionTest.cs" />

+ 1 - 0
mcs/class/System.Configuration/System.Configuration-tests-net_4_5.csproj

@@ -46,6 +46,7 @@
   <ItemGroup>
     <Compile Include="Test\System.Configuration.Provider\ProviderBaseTest.cs" />
     <Compile Include="Test\System.Configuration.Provider\ProviderCollectionTest.cs" />
+    <Compile Include="Test\System.Configuration\AppSettingsSectionTest.cs" />
     <Compile Include="Test\System.Configuration\CallbackValidatorTest.cs" />
     <Compile Include="Test\System.Configuration\CommaDelimitedStringCollectionConverterTest.cs" />
     <Compile Include="Test\System.Configuration\CommaDelimitedStringCollectionTest.cs" />

+ 1 - 0
mcs/class/System.Configuration/System.Configuration_test.dll.sources

@@ -1,3 +1,4 @@
+System.Configuration/AppSettingsSectionTest.cs
 System.Configuration/CallbackValidatorTest.cs
 System.Configuration/CommaDelimitedStringCollectionConverterTest.cs
 System.Configuration/CommaDelimitedStringCollectionTest.cs

+ 1 - 0
mcs/class/System.Configuration/Test/App.config

@@ -4,4 +4,5 @@
 		<add name="test-connstring"
 			connectionString="Server=(local);Initial Catalog=someDb;User Id=someUser;Password=somePassword;Application Name=someAppName;Min Pool Size=5;Max Pool Size=500;Connect Timeout=10;Connection Lifetime=29;" />
 	</connectionStrings>
+  <appSettings file="Test/appSettings.config" />
 </configuration>

+ 1 - 0
mcs/class/System.Configuration/Test/System.Configuration.Test20.csproj

@@ -80,6 +80,7 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="System.Configuration\AppSettingsSectionTest.cs" />
     <Compile Include="System.Configuration\CallbackValidatorTest.cs" />
     <Compile Include="System.Configuration\CommaDelimitedStringCollectionConverterTest.cs" />
     <Compile Include="System.Configuration\CommaDelimitedStringCollectionTest.cs" />

+ 75 - 0
mcs/class/System.Configuration/Test/System.Configuration/AppSettingsSectionTest.cs

@@ -0,0 +1,75 @@
+//
+// System.Configuration.AppSettingsSectionTest.cs - Unit tests
+// for System.Configuration.AppSettingsSection.
+//
+// Author:
+//	Tom Philpot  <[email protected]>
+//
+// Copyright (C) 2014 Logos Bible Software
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Configuration;
+using System.IO;
+using System.Reflection;
+using NUnit.Framework;
+
+namespace MonoTests.System.Configuration
+{
+	using Util;
+
+	[TestFixture]
+	public class AppSettingsSectionTest
+	{
+		private string originalCurrentDir;
+		private string tempFolder;
+
+		[SetUp]
+		public void SetUp ()
+		{
+			originalCurrentDir = Directory.GetCurrentDirectory ();
+			tempFolder = Path.Combine (Path.GetTempPath (), this.GetType ().FullName);
+			if (!Directory.Exists (tempFolder))
+				Directory.CreateDirectory (tempFolder);
+		}
+
+		[TearDown]
+		public void TearDown ()
+		{
+			Directory.SetCurrentDirectory (originalCurrentDir);
+			if (Directory.Exists (tempFolder))
+				Directory.Delete (tempFolder, true);
+		}
+		
+		[Test]
+		public void TestFile ()
+		{
+			Directory.SetCurrentDirectory (tempFolder);
+
+			var currentAssembly = Assembly.GetExecutingAssembly ().Location;
+			var config = ConfigurationManager.OpenExeConfiguration (currentAssembly);
+			Assert.AreEqual ("Test/appSettings.config", config.AppSettings.File, "#A01");
+			Assert.AreEqual ("foo", ConfigurationSettings.AppSettings["TestKey1"], "#A02");
+			Assert.AreEqual ("bar", ConfigurationSettings.AppSettings["TestKey2"], "#A03");
+		}
+	}
+}

+ 4 - 0
mcs/class/System.Configuration/Test/appSettings.config

@@ -0,0 +1,4 @@
+<appSettings>
+  <add key="TestKey1" value="foo" />
+  <add key="TestKey2" value="bar" />
+</appSettings>