You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by gb...@apache.org on 2007/10/15 22:21:49 UTC

svn commit: r584895 - in /ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test: ./ Maps/MSSQL/SqlClient/ NUnit/SqlMapTests/MSSQL/ Scripts/MSSQL/ bin/Debug/

Author: gbayon
Date: Mon Oct 15 13:21:48 2007
New Revision: 584895

URL: http://svn.apache.org/viewvc?rev=584895&view=rev
Log:
Add unit test for SQL Server passing XML parameter

Added:
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/ps_SelectByIdList.sql
Modified:
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Account.xml
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/ProcedureTest.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/account-init.sql
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj?rev=584895&r1=584894&r2=584895&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 Mon Oct 15 13:21:48 2007
@@ -78,7 +78,7 @@
       <Name>log4net</Name>
       <HintPath>..\External-Bin\Net\1.1\log4net.dll</HintPath>
     </Reference>
-    <Reference Include="nunit.framework, Version=2.4.3.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL" />
+    <Reference Include="nunit.framework, Version=2.4.1.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL" />
     <Reference Include="System">
       <Name>System</Name>
     </Reference>
@@ -508,6 +508,7 @@
     <None Include="bin\Debug\test.config" />
     <None Include="DataBase-Template.config" />
     <None Include="IBatisNet.Test.build" />
+    <None Include="Scripts\MSSQL\ps_SelectByIdList.sql" />
     <EmbeddedResource Include="bin\Debug\providers.config" />
     <EmbeddedResource Include="bin\Debug\SqlMap_MSSQL_SqlClient.config" />
     <EmbeddedResource Include="Maps\MSSQL\SqlClient\Account.xml" />

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Account.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Account.xml?rev=584895&r1=584894&r2=584895&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Account.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Account.xml Mon Oct 15 13:21:48 2007
@@ -731,8 +731,6 @@
 			)
            </insert>
 				
-		<!-- For procedure, the parameters of the parameterMap must in the same order 
-		as for the procedure paramaters-->
 		<procedure id="InsertAccountViaStoreProcedure" parameterMap="insert-params">
 			ps_InsertAccount
 		</procedure>
@@ -756,14 +754,22 @@
     <procedure id="SelectAllAccountViaSP" resultClass="Account">
       ps_SelectAllAccount
     </procedure>
+
+    <procedure id="SelectAccountViaXML" parameterMap="XML-params" resultClass="Account">
+      ps_SelectByIdList
+    </procedure>
     
 	</statements>
 
 	<!-- =============================================
-            OPTIONAL EXPLICIT PARAMETER MAP
+            OPTIONAL EXPLICIT PARAMETER MAP 
     ============================================= -->
-	<parameterMaps>   
-		
+	<parameterMaps>
+
+    <parameterMap id="XML-params" class="string" >
+      <parameter property="AccountIds" /> <!-- we don't need dbType="NText" but you can specify it --> 
+    </parameterMap>
+    
 		<parameterMap id="swap-params" >
 			<parameter property="email1" column="First_Email" />
 			<parameter property="email2" column="Second_Email" />

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/ProcedureTest.cs
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/ProcedureTest.cs?rev=584895&r1=584894&r2=584895&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/ProcedureTest.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/ProcedureTest.cs Mon Oct 15 13:21:48 2007
@@ -29,7 +29,9 @@
             InitScript( sqlMap.DataSource, ScriptDirectory + "category-procedureWithReturn.sql", false);
 			InitScript( sqlMap.DataSource, ScriptDirectory + "ps_SelectAccount.sql", false );
             InitScript( sqlMap.DataSource, ScriptDirectory + "ps_SelectAllAccount.sql", false);			    
-			InitScript( sqlMap.DataSource, ScriptDirectory + "swap-procedure.sql" );	
+			InitScript( sqlMap.DataSource, ScriptDirectory + "swap-procedure.sql" );
+            InitScript(sqlMap.DataSource, ScriptDirectory + "ps_SelectByIdList.sql");	
+
 		}
 
 		/// <summary>
@@ -74,6 +76,18 @@
             Assert.AreEqual ( category.Name, category4.Name );
         }
 #endif
+
+        /// <summary>
+        /// Test XML parameter.
+        /// </summary>
+        [Test]
+        public void TestXMLParameter()
+        {
+            string accountIds = "<Accounts><id>3</id><id>4</id></Accounts>";
+
+            IList accounts = sqlMap.QueryForList("SelectAccountViaXML", accountIds);
+            Assert.IsTrue(accounts.Count == 2);
+        }
 
         /// <summary>
         /// Test get an account via a store procedure.

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/account-init.sql
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/account-init.sql?rev=584895&r1=584894&r2=584895&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/account-init.sql (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/account-init.sql Mon Oct 15 13:21:48 2007
@@ -47,4 +47,6 @@
 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ps_swap_email_address]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
 drop procedure [dbo].[ps_swap_email_address]
 
-
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ps_SelectByIdList]') and 
+OBJECTPROPERTY(id, N'IsProcedure') = 1)
+drop procedure [dbo].[ps_SelectByIdList]

Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/ps_SelectByIdList.sql
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/ps_SelectByIdList.sql?rev=584895&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/ps_SelectByIdList.sql (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/ps_SelectByIdList.sql Mon Oct 15 13:21:48 2007
@@ -0,0 +1,19 @@
+
+
+CREATE PROCEDURE ps_SelectByIdList(@AccountIds xml) AS
+
+DECLARE @Ids TABLE (ID int) 
+
+INSERT INTO @Ids (ID) SELECT ParamValues.ID.value('.','int')
+FROM @AccountIds.nodes('/Accounts/id') as ParamValues(ID) 
+
+SELECT 
+	Account_ID as Id,
+	Account_FirstName as FirstName,
+	Account_LastName as LastName,
+	Account_Email as EmailAddress
+FROM 
+    Accounts
+INNER JOIN 
+    @Ids p
+ON    Accounts.Account_ID = p.ID
\ No newline at end of file

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config?rev=584895&r1=584894&r2=584895&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config Mon Oct 15 13:21:48 2007
@@ -37,14 +37,14 @@
 				<arg key="level" value="ALL" />
 				<arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:SSS" />
 			</logFactoryAdapter>	--> 
- <!--
       <logFactoryAdapter type="IBatisNet.Common.Logging.Impl.Log4NetLoggerFA, IBatisNet.Common.Logging.Log4Net">
         <arg key="configType" value="inline" />
       </logFactoryAdapter> 
--->
+
+ <!--
       
      <logFactoryAdapter type="IBatisNet.Common.Logging.Impl.NoOpLoggerFA, IBatisNet.Common" />
-
+-->
       
 		</logging>
 	</iBATIS>