You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by ro...@apache.org on 2005/05/17 04:45:36 UTC
svn commit: r170503 - in
/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test:
IBatisNet.DataMapper.Test.csproj Maps/PostgreSQL/Npgsql/Category.xml
NUnit/SqlMapTests/PostgreSQL/
NUnit/SqlMapTests/PostgreSQL/StatementGenerate.cs
NUnit/SqlMapTests/PostgreSQL/StatementTest.cs
Author: roberto
Date: Mon May 16 19:45:34 2005
New Revision: 170503
URL: http://svn.apache.org/viewcvs?rev=170503&view=rev
Log:
+Adding C# DataMapper PostgreSQL NUnit-specific tests
Generated SelectByPK is only issue (comments made in Category.xml about issue)
(still need to add PostgreSQL-specific "stored function" tests)
Added:
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementGenerate.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementTest.cs
Modified:
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Category.xml
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj?rev=170503&r1=170502&r2=170503&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj Mon May 16 19:45:34 2005
@@ -766,6 +766,16 @@
BuildAction = "Compile"
/>
<File
+ RelPath = "NUnit\SqlMapTests\PostgreSQL\StatementGenerate.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "NUnit\SqlMapTests\PostgreSQL\StatementTest.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Scripts\Access\account-init.sql"
BuildAction = "Content"
/>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Category.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Category.xml?rev=170503&r1=170502&r2=170503&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Category.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Category.xml Mon May 16 19:45:34 2005
@@ -12,7 +12,7 @@
select
Category_ID as Id,
Category_Name as Name,
- Category_Guid as Guid
+ Category_Guid as GuidString
from Categories
where Category_ID = #value#
</select>
@@ -98,6 +98,19 @@
<generate table="Categories" by="Category_Id, Category_Name"/>
</delete>
+ <!--
+ Using a parameterMap with more parameters than the SQL statement needs as parameters
+ will throw an error with Npgsql 0.7. This is like Oracle with MS OracleClient or ODP.NET 10g.
+
+ Removing the parameters doesn't help though, unlike Oracle since it only selects the columns
+ listed in the parameterMap!
+
+ MSSQL and MySQL databases and providers seem to allow unneeded parameters.
+ -->
+ <!--
+ This creates an invalid SQL statement (ends with ? instead of :param0) :
+ <select id="SelectByPKCategoryGenerate" resultClass="Category" parameterMap="select-generate-params">
+ -->
<select id="SelectByPKCategoryGenerate" resultClass="Category" parameterClass="Category" parameterMap="select-generate-params">
<generate table="Categories" by="Category_Id"/>
</select>
@@ -158,7 +171,12 @@
<parameter property="Id" column="Category_Id" />
<parameter property="Name" column="Category_Name"/>
</parameterMap>
-
+
+ <!--
+ <parameterMap id="select-generate-params">
+ <parameter property="Id" column="Category_Id" />
+ </parameterMap>
+ -->
<parameterMap id="select-generate-params">
<parameter property="Id" column="Category_Id" />
<parameter property="Name" column="Category_Name"/>
Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementGenerate.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementGenerate.cs?rev=170503&view=auto
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementGenerate.cs (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementGenerate.cs Mon May 16 19:45:34 2005
@@ -0,0 +1,148 @@
+using System;
+using System.Collections;
+
+using NUnit.Framework;
+
+using IBatisNet.DataMapper.Test.NUnit;
+using IBatisNet.DataMapper.Test.Domain;
+
+namespace IBatisNet.DataMapper.Test.NUnit.SqlMapTests.PostgreSQL
+{
+ /// <summary>
+ /// Summary description for StatementGenerate.
+ /// </summary>
+ [TestFixture]
+ [Category("PostgreSQL")]
+ public class StatementGenerate : BaseTest
+ {
+ #region SetUp & TearDown
+ /// <summary>
+ /// SetUp
+ /// </summary>
+ [SetUp]
+ public void Init()
+ {
+ InitSqlMap();
+ InitScript( sqlMap.DataSource, ScriptDirectory + "category-init.sql" );
+ }
+
+ /// <summary>
+ /// TearDown
+ /// </summary>
+ [TearDown]
+ public void Dispose()
+ { /* ... */ }
+
+ #endregion
+
+ #region Specific statement test for PostgreSQL
+
+ /// <summary>
+ /// Test an select by key via generate statement.
+ /// </summary>
+ [Test]
+ public void TestSelectByPK()
+ {
+ Category category = new Category();
+ category.Name = "toto";
+ category.Guid = Guid.NewGuid();
+
+ category.Id = (int)sqlMap.Insert("InsertCategoryGenerate", category);
+ Assert.AreEqual(1, category.Id);
+
+ Category categoryRead = null;
+ categoryRead = (Category) sqlMap.QueryForObject("SelectByPKCategoryGenerate", category);
+
+ Assert.AreEqual(category.Id, categoryRead.Id);
+ Assert.AreEqual(category.Name, categoryRead.Name);
+ Assert.AreEqual(category.Guid.ToString(), categoryRead.Guid.ToString());
+ }
+
+ /// <summary>
+ /// Test an select all via generate statement.
+ /// </summary>
+ [Test]
+ public void TestSelectAll()
+ {
+ Category category = new Category();
+ category.Name = "toto";
+ category.Guid = Guid.NewGuid();
+
+ int key = (int)sqlMap.Insert("InsertCategoryGenerate", category);
+ Assert.AreEqual(1, key);
+
+ category.Name = "toto";
+ category.Guid = Guid.NewGuid();
+
+ key = (int)sqlMap.Insert("InsertCategoryGenerate", category);
+ Assert.AreEqual(2, key);
+
+ IList categorieList = sqlMap.QueryForList("SelectAllCategoryGenerate",null) as IList;
+ Assert.AreEqual(2, categorieList.Count);
+
+ }
+
+ /// <summary>
+ /// Test an insert via generate statement.
+ /// </summary>
+ [Test]
+ public void TestInsert()
+ {
+ Category category = new Category();
+ category.Name = "toto";
+ category.Guid = Guid.Empty;
+
+ int key = (int)sqlMap.Insert("InsertCategoryGenerate", category);
+ Assert.AreEqual(1, key);
+ }
+
+ /// <summary>
+ /// Test Update Category with Extended ParameterMap
+ /// </summary>
+ [Test]
+ public void TestUpdate()
+ {
+ Category category = new Category();
+ category.Name = "Cat";
+ category.Guid = Guid.NewGuid();
+
+ int key = (int)sqlMap.Insert("InsertCategoryGenerate", category);
+ category.Id = key;
+
+ category.Name = "Dog";
+ category.Guid = Guid.NewGuid();
+
+ sqlMap.Update("UpdateCategoryGenerate", category);
+
+ Category categoryRead = null;
+ categoryRead = (Category) sqlMap.QueryForObject("GetCategory", key);
+
+ Assert.AreEqual(category.Id, categoryRead.Id);
+ Assert.AreEqual(category.Name, categoryRead.Name);
+ Assert.AreEqual(category.Guid.ToString(), categoryRead.Guid.ToString());
+ }
+
+ /// <summary>
+ /// Test an insert via generate statement.
+ /// </summary>
+ [Test]
+ public void TestDelete()
+ {
+ Category category = new Category();
+ category.Name = "toto";
+ category.Guid = Guid.NewGuid();
+
+ int key = (int)sqlMap.Insert("InsertCategoryGenerate", category);
+ category.Id = key;
+ Assert.AreEqual(1, category.Id);
+
+ sqlMap.Delete("DeleteCategoryGenerate", category);
+
+ Category categoryRead = null;
+ categoryRead = sqlMap.QueryForObject("GetCategory", key) as Category;
+
+ Assert.IsNull(categoryRead);
+ }
+ #endregion
+ }
+}
Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementTest.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementTest.cs?rev=170503&view=auto
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementTest.cs (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/PostgreSQL/StatementTest.cs Mon May 16 19:45:34 2005
@@ -0,0 +1,130 @@
+using System;
+using System.Collections;
+
+using NUnit.Framework;
+
+using IBatisNet.DataMapper.Test.NUnit;
+using IBatisNet.DataMapper.Test.Domain;
+
+namespace IBatisNet.DataMapper.Test.NUnit.SqlMapTests.PostgreSQL
+{
+ /// <summary>
+ /// Summary description for StatementTest.
+ /// </summary>
+ [TestFixture]
+ [Category("PostgreSQL")]
+ public class StatementTest : BaseTest
+ {
+
+ #region SetUp & TearDown
+ /// <summary>
+ /// SetUp
+ /// </summary>
+ [SetUp]
+ public void Init()
+ {
+ InitSqlMap();
+ InitScript( sqlMap.DataSource, ScriptDirectory + "category-init.sql" );
+ }
+
+ /// <summary>
+ /// TearDown
+ /// </summary>
+ [TearDown]
+ public void Dispose()
+ { /* ... */ }
+
+ #endregion
+
+ #region Specific tests for PostgreSQL
+
+ /// <summary>
+ /// Test an insert with an autonumber key.
+ /// </summary>
+ [Test]
+ public void TestInsertAutonumberViaInsertQuery()
+ {
+ Category category = new Category();
+ category.Name = "toto";
+ category.Guid = Guid.NewGuid();
+
+ int key = (int)sqlMap.Insert("InsertCategory", category);
+ Assert.AreEqual(1, key);
+ }
+
+ /// <summary>
+ /// Test Insert Via Insert Statement.
+ /// </summary>
+ [Test]
+ public void TestInsertViaInsertStatement()
+ {
+ Category category = new Category();
+ category.Name = "toto";
+ category.Guid = Guid.NewGuid();
+
+ int key = (int)sqlMap.Insert("InsertCategoryViaInsertStatement", category);
+ Assert.AreEqual(1, key);
+ }
+
+ /// <summary>
+ /// Test guid column/field.
+ /// </summary>
+ [Test]
+ public void TestGuidColumn()
+ {
+ Category category = new Category();
+ category.Name = "toto";
+ category.Guid = Guid.NewGuid();
+
+ int key = (int)sqlMap.Insert("InsertCategoryViaInsertStatement", category);
+
+ Category categoryTest = (Category)sqlMap.QueryForObject("GetCategory", key);
+ Assert.AreEqual(key, categoryTest.Id);
+ Assert.AreEqual(category.Name, categoryTest.Name);
+ Assert.AreEqual(category.Guid, categoryTest.Guid);
+ }
+
+ /// <summary>
+ /// Test Insert Category Via ParameterMap.
+ /// </summary>
+ [Test]
+ public void TestInsertCategoryViaParameterMap()
+ {
+ Category category = new Category();
+ category.Name = "Cat";
+ category.Guid = Guid.NewGuid();
+
+ int key = (int)sqlMap.Insert("InsertCategoryViaParameterMap", category);
+ Assert.AreEqual(1, key);
+ }
+
+ /// <summary>
+ /// Test Update Category with Extended ParameterMap
+ /// </summary>
+ [Test]
+ public void TestUpdateCategoryWithExtendParameterMap()
+ {
+ Category category = new Category();
+ category.Name = "Cat";
+ category.Guid = Guid.NewGuid();
+
+ int key = (int)sqlMap.Insert("InsertCategoryViaParameterMap", category);
+ category.Id = key;
+
+ category.Name = "Dog";
+ category.Guid = Guid.NewGuid();
+
+ sqlMap.Update("UpdateCategoryViaParameterMap", category);
+
+ Category categoryRead = null;
+ categoryRead = (Category) sqlMap.QueryForObject("GetCategory", key);
+
+ Assert.AreEqual(category.Id, categoryRead.Id);
+ Assert.AreEqual(category.Name, categoryRead.Name);
+ Assert.AreEqual(category.Guid.ToString(), categoryRead.Guid.ToString());
+ }
+ #endregion
+
+
+ }
+}