Author: krasnov
Date: 2007-12-23 09:02:37 -0500 (Sun, 23 Dec 2007)
New Revision: 91832
Added:
trunk/mcs/class/System.Web/Test/System.Web.Compilation/AppSettingsExpressionBuilderTest.cs
Modified:
trunk/mcs/class/System.Web/System.Web.Compilation/AppSettingsExpressionBuilder.cs
trunk/mcs/class/System.Web/System.Web.Compilation/ChangeLog
trunk/mcs/class/System.Web/System.Web_test.dll.sources
trunk/mcs/class/System.Web/Test/System.Web.Compilation/ChangeLog
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.config
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config
Log:
* AppSettingsExpressionBuilder.cs: fixed GetAppSetting, should convert to
property type
* added AppSettingsExpressionBuilderTest.cs
Modified:
trunk/mcs/class/System.Web/System.Web.Compilation/AppSettingsExpressionBuilder.cs
===================================================================
---
trunk/mcs/class/System.Web/System.Web.Compilation/AppSettingsExpressionBuilder.cs
2007-12-23 13:29:15 UTC (rev 91831)
+++
trunk/mcs/class/System.Web/System.Web.Compilation/AppSettingsExpressionBuilder.cs
2007-12-23 14:02:37 UTC (rev 91832)
@@ -36,6 +36,7 @@
using System.Configuration;
using System.Web.Configuration;
using System.Web.UI;
+using System.Reflection;
namespace System.Web.Compilation {
@@ -60,8 +61,14 @@
public static object GetAppSetting (string key, Type
targetType, string propertyName)
{
try {
- TypeConverter converter =
TypeDescriptor.GetConverter (targetType);
- return converter.ConvertFrom (GetAppSetting
(key));
+ object value = GetAppSetting (key);
+
+ PropertyInfo pi =
targetType.GetProperty(propertyName);
+ if (pi == null)
+ return value.ToString ();
+
+ TypeConverter converter =
TypeDescriptor.GetConverter (pi.PropertyType);
+ return converter.ConvertFrom (value);
}
catch (NotSupportedException) {
throw new InvalidOperationException
(String.Format ("Could not convert app setting {0} to type {1}", key,
targetType));
Modified: trunk/mcs/class/System.Web/System.Web.Compilation/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.Compilation/ChangeLog 2007-12-23
13:29:15 UTC (rev 91831)
+++ trunk/mcs/class/System.Web/System.Web.Compilation/ChangeLog 2007-12-23
14:02:37 UTC (rev 91832)
@@ -1,3 +1,8 @@
+2007-12-23 Vladimir Krasnov <[EMAIL PROTECTED]>
+
+ * AppSettingsExpressionBuilder.cs: fixed GetAppSetting, should convert
+ to property type
+
2007-12-21 Marek Habersack <[EMAIL PROTECTED]>
* BaseCompiler.cs: Refactoring. Move the provider creation code to
Modified: trunk/mcs/class/System.Web/System.Web_test.dll.sources
===================================================================
--- trunk/mcs/class/System.Web/System.Web_test.dll.sources 2007-12-23
13:29:15 UTC (rev 91831)
+++ trunk/mcs/class/System.Web/System.Web_test.dll.sources 2007-12-23
14:02:37 UTC (rev 91832)
@@ -49,6 +49,7 @@
System.Web/TraceContextRecordTest.cs
System.Web.Compilation/ClientBuildManagerParameterTest.cs
System.Web.Compilation/TemplateControlCompilerTest.cs
+System.Web.Compilation/AppSettingsExpressionBuilderTest.cs
System.Web.Configuration/AnonymousIdentificationSectionTest.cs
System.Web.Configuration/AssemblyCollectionTest.cs
System.Web.Configuration/AssemblyInfoTest.cs
Added:
trunk/mcs/class/System.Web/Test/System.Web.Compilation/AppSettingsExpressionBuilderTest.cs
===================================================================
---
trunk/mcs/class/System.Web/Test/System.Web.Compilation/AppSettingsExpressionBuilderTest.cs
2007-12-23 13:29:15 UTC (rev 91831)
+++
trunk/mcs/class/System.Web/Test/System.Web.Compilation/AppSettingsExpressionBuilderTest.cs
2007-12-23 14:02:37 UTC (rev 91832)
@@ -0,0 +1,102 @@
+//
+// Tests for System.Web.UI.WebControls.ListBoxTest.cs
+//
+// Author:
+// Vladimir Krasnov ([EMAIL PROTECTED])
+//
+
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// 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.
+//
+
+#if NET_2_0
+
+using NUnit.Framework;
+using System;
+using System.IO;
+using System.Drawing;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Data;
+using MonoTests.stand_alone.WebHarness;
+using MonoTests.SystemWeb.Framework;
+using System.Web.Compilation;
+
+namespace MonoTests.System.Web.Compilation
+{
+ public class SettingTestingType
+ {
+ private string strProp;
+ private int intProp;
+
+ public string StrProp
+ {
+ get { return strProp; }
+ set { strProp = value; }
+ }
+
+ public int IntProp
+ {
+ get { return intProp; }
+ set { intProp = value; }
+ }
+ }
+
+ [TestFixture]
+ public class AppSettingsExpressionBuilderTest
+ {
+
+ [Test]
+ [Category ("NunitWeb")]
+ public void GetAppSetting1 ()
+ {
+ PageDelegates pd = new PageDelegates ();
+ pd.Load = GetAppSetting_Load1;
+ WebTest test = new WebTest (new PageInvoker (pd));
+ string html = test.Run ();
+
+ }
+
+ public static void GetAppSetting_Load1 (Page p)
+ {
+ object o = AppSettingsExpressionBuilder.GetAppSetting
("strvalue", typeof (SettingTestingType), "StrProp");
+ Assert.AreEqual (typeof (string), o.GetType (),
"GetAppSetting1 #1");
+ Assert.AreEqual ("str", o, "GetAppSetting1 #2");
+
+ o = AppSettingsExpressionBuilder.GetAppSetting
("strvalue", typeof (SettingTestingType), "NotExistsProp");
+ Assert.AreEqual (typeof (string), o.GetType (),
"GetAppSetting1 #3");
+ Assert.AreEqual ("str", o, "GetAppSetting1 #4");
+
+ o = AppSettingsExpressionBuilder.GetAppSetting
("intvalue", typeof (SettingTestingType), "IntProp");
+ Assert.AreEqual (typeof (int), o.GetType (),
"GetAppSetting1 #5");
+ Assert.AreEqual (123, o, "GetAppSetting1 #6");
+
+ o = AppSettingsExpressionBuilder.GetAppSetting
("intvalue", typeof (SettingTestingType), "NotExistsProp");
+ Assert.AreEqual (typeof (string), o.GetType (),
"GetAppSetting1 #7");
+ Assert.AreEqual ("123", o, "GetAppSetting1 #8");
+ }
+ }
+}
+#endif
Modified: trunk/mcs/class/System.Web/Test/System.Web.Compilation/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/Test/System.Web.Compilation/ChangeLog
2007-12-23 13:29:15 UTC (rev 91831)
+++ trunk/mcs/class/System.Web/Test/System.Web.Compilation/ChangeLog
2007-12-23 14:02:37 UTC (rev 91832)
@@ -1,3 +1,7 @@
+2007-12-23 Vladimir Krasnov <[EMAIL PROTECTED]>
+
+ * added AppSettingsExpressionBuilderTest.cs
+
2006-06-21 Andrew Skiba <[EMAIL PROTECTED]>
* TemplateControlCompilerTest.cs: NunitWeb refactoring
Modified:
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.config
===================================================================
---
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.config
2007-12-23 13:29:15 UTC (rev 91831)
+++
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.config
2007-12-23 14:02:37 UTC (rev 91832)
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
+ <appSettings>
+ <add key="strvalue" value="str" />
+ <add key="intvalue" value="123" />
+ </appSettings>
<system.web>
<siteMap enabled="true"/>
<compilation debug="true">
Modified:
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config
===================================================================
---
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config
2007-12-23 13:29:15 UTC (rev 91831)
+++
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config
2007-12-23 14:02:37 UTC (rev 91832)
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
+ <appSettings>
+ <add key="strvalue" value="str" />
+ <add key="intvalue" value="123" />
+ </appSettings>
<system.web>
<siteMap enabled="true"/>
<compilation debug="true">
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches