Author: gbayon
Date: Thu Mar  2 12:00:22 2006
New Revision: 382490

URL: http://svn.apache.org/viewcvs?rev=382490&view=rev
Log:
- Used Nunit 2.2.7
- Fixed IBATISNET-137

Added:
    
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/TypeResolverTest.cs
   (with props)
Modified:
    
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj
    
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/TypesResolver/TypeResolver.cs
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj?rev=382490&r1=382489&r2=382490&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj 
(original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj 
Thu Mar  2 12:00:22 2006
@@ -132,6 +132,7 @@
     <Compile Include="NUnit\CommonTests\Utilities\ResourcesTest.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="NUnit\CommonTests\Utilities\TypeResolverTest.cs" />
     <None Include="bin\Debug\dao_Access_OleDb.config" />
     <None Include="bin\Debug\dao_MSSQL_Odbc.config" />
     <None Include="bin\Debug\dao_MSSQL_OleDb.config" />

Added: 
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/TypeResolverTest.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/TypeResolverTest.cs?rev=382490&view=auto
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/TypeResolverTest.cs
 (added)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/TypeResolverTest.cs
 Thu Mar  2 12:00:22 2006
@@ -0,0 +1,41 @@
+using System;
+using System.Text;
+using IBatisNet.Common.Utilities.TypesResolver;
+using NUnit.Framework;
+
+namespace IBatisNet.Common.Test.NUnit.CommonTests.Utilities
+{
+    [TestFixture] 
+    public class TypeResolverTest
+    {
+        /// <summary>
+        /// Test nullable resolver
+        /// </summary>
+        [Test]
+        public void TestFullNameNullableType()
+        {
+            Type nullableType = typeof(bool?);
+
+            TypeResolver resolver = new TypeResolver();
+
+            Type nullableBooleanType = resolver.Resolve(nullableType.FullName);
+
+            Assert.IsNotNull(nullableBooleanType);
+        }
+
+        /// <summary>
+        /// Test nullable resolver
+        /// </summary>
+        [Test]
+        public void TestAssemblyQualifiedNameNullableType()
+        {
+            Type nullableType = typeof(bool?);
+
+            TypeResolver resolver = new TypeResolver();
+
+            Type nullableBooleanType = 
resolver.Resolve(nullableType.AssemblyQualifiedName);
+
+            Assert.IsNotNull(nullableBooleanType);
+        }
+    }
+}

Propchange: 
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/TypeResolverTest.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/TypeResolverTest.cs
------------------------------------------------------------------------------
    svn:keywords = Id LastChangedDate LastChangedBy

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/TypesResolver/TypeResolver.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/TypesResolver/TypeResolver.cs?rev=382490&r1=382489&r2=382490&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/TypesResolver/TypeResolver.cs 
(original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/TypesResolver/TypeResolver.cs 
Thu Mar  2 12:00:22 2006
@@ -1,12 +1,14 @@
 
 #region Apache Notice
 /*****************************************************************************
- * $Header: $
- * $Revision: $
- * $Date$
+ * $Revision$
+ * $LastChangedDate$
+ * $LastChangedBy$
  * 
- * Copyright 2004 the original author or authors.
+ * iBATIS.NET Data Mapper
+ * Copyright (C) 2006/2005 - The Apache Software Foundation
  *  
+ * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -133,24 +135,34 @@
                        /// from their attendant <see 
cref="System.Reflection.Assembly"/>
                        /// names in an assembly qualified type name.
                        /// </summary>
-                       public const string TypeAssemblySeparator = ",";
+                       public const string TYPE_ASSEMBLY_SEPARATOR = ",";
+            public const string NULLABLE_TYPE = "System.Nullable";
+            public const string NULLABLE_TYPE_ASSEMBLY_SEPARATOR = "]],";
                        #endregion
 
                        #region Fields
-                       private string unresolvedAssemblyName;
-                       private string unresolvedTypeName;
+                       private string _unresolvedAssemblyName = string.Empty;
+            private string _unresolvedTypeName = string.Empty;
+            private bool _isNullable = false;
+
                        #endregion
 
                        #region Properties
+
+            /// <summary>
+            /// Indicatre if the type is a nullable type.
+            /// </summary>
+            public bool IsNullable
+            {
+                get { return _isNullable; }
+            }
+
                        /// <summary>
                        /// The (unresolved) type name portion of the original 
type name.
                        /// </summary>
                        public string TypeName
                        {
-                               get
-                               {
-                                       return unresolvedTypeName;
-                               }
+                               get { return _unresolvedTypeName; }
                        }
 
                        /// <summary>
@@ -158,10 +170,7 @@
                        /// </summary>
                        public string AssemblyName
                        {
-                               get
-                               {
-                                       return unresolvedAssemblyName;
-                               }
+                               get { return _unresolvedAssemblyName; }
                        }
 
                        /// <summary>
@@ -189,11 +198,10 @@
                        {
                                get
                                {
-                                       System.Text.StringBuilder buffer
-                                               = new System.Text.StringBuilder 
(TypeName);
+                                       System.Text.StringBuilder buffer = new 
System.Text.StringBuilder (TypeName);
                                        if (IsAssemblyQualified) 
                                        {
-                                               buffer.Append 
(TypeAssemblySeparator);
+                        buffer.Append(TYPE_ASSEMBLY_SEPARATOR);
                                                buffer.Append (AssemblyName);
                                        }
                                        return buffer.ToString ();
@@ -218,20 +226,34 @@
                        #region Methods
                        private void SplitTypeAndAssemblyNames (string 
originalTypeName) 
                        {
-                               int typeAssemblyIndex
-                                       = originalTypeName.IndexOf (
-                                       TypeAssemblyInfo.TypeAssemblySeparator);
-                               if (typeAssemblyIndex < 0)
-                               {
-                                       unresolvedTypeName = originalTypeName;
-                               } 
-                               else
-                               {
-                                       unresolvedTypeName = 
originalTypeName.Substring (
-                                               0, typeAssemblyIndex).Trim ();
-                                       unresolvedAssemblyName = 
originalTypeName.Substring (
-                                               typeAssemblyIndex + 1).Trim ();
-                               }
+                if (originalTypeName.Contains(TypeAssemblyInfo.NULLABLE_TYPE))
+                {
+                    _isNullable = true;
+                    int typeAssemblyIndex = 
originalTypeName.IndexOf(TypeAssemblyInfo.NULLABLE_TYPE_ASSEMBLY_SEPARATOR);
+                    if (typeAssemblyIndex < 0)
+                    {
+                        _unresolvedTypeName = originalTypeName;
+                    }
+                    else
+                    {
+                        _unresolvedTypeName = originalTypeName.Substring(0, 
typeAssemblyIndex + 2).Trim();
+                        _unresolvedAssemblyName = 
originalTypeName.Substring(typeAssemblyIndex + 3).Trim();
+                    }
+                }
+                else
+                {
+                    int typeAssemblyIndex = 
originalTypeName.IndexOf(TypeAssemblyInfo.TYPE_ASSEMBLY_SEPARATOR);
+                    _isNullable = false;
+                    if (typeAssemblyIndex < 0)
+                    {
+                        _unresolvedTypeName = originalTypeName;
+                    }
+                    else
+                    {
+                        _unresolvedTypeName = originalTypeName.Substring(0, 
typeAssemblyIndex).Trim();
+                        _unresolvedAssemblyName = 
originalTypeName.Substring(typeAssemblyIndex + 1).Trim();
+                    }
+                }
                        }
                        #endregion
 

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj?rev=382490&r1=382489&r2=382490&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj
 Thu Mar  2 12:00:22 2006
@@ -78,7 +78,7 @@
       <Name>log4net</Name>
       <HintPath>..\External-Bin\Net\1.1\log4net.dll</HintPath>
     </Reference>
-    <Reference Include="nunit.framework, Version=2.2.6.0, Culture=neutral, 
PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL" />
+    <Reference Include="nunit.framework, Version=2.2.7.0, Culture=neutral, 
PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL" />
     <Reference Include="System">
       <Name>System</Name>
     </Reference>


Reply via email to