Standardized Mainsoft DataColumn tests.
authorEyal Alalouf <eyala@mainsoft.com>
Tue, 12 Jul 2005 14:10:01 +0000 (14:10 -0000)
committerEyal Alalouf <eyala@mainsoft.com>
Tue, 12 Jul 2005 14:10:01 +0000 (14:10 -0000)
svn path=/trunk/mcs/; revision=47212

mcs/class/System.Data/ChangeLog
mcs/class/System.Data/System.Data_test.dll.sources
mcs/class/System.Data/Test/System.Data/ChangeLog
mcs/class/System.Data/Test/System.Data/DataColumnTest2.cs [new file with mode: 0644]

index cf8479a35b3bb76edc6dbdb824bd87476b2fd8c8..cd1f3ba57a3538eabf3bd8bf1c2cae72f1a509c7 100644 (file)
@@ -1,3 +1,7 @@
+2005-07-12  Eyal Alalouf  <eyala@mainsoft.com>
+       * System.Data_tests.dll.sources: Unified Mainsoft DataColumn tests into one test in Test/System.Data
+
+2005-06-21  Sureshkumar T  <tsureshkumar@novell.com>
 2005-06-30  Eyal Alalouf  <eyala@mainsoft.com>
        * System.Data_tests.dll.sources: Unified Mainsoft DataColumnCollection tests into one test in Test/System.Data
 
index 1205441d3963aa7ee423139d08bc6b5402dc38b3..4ba6a9b0e179ad31fe761b1904f1e646e7cc2c7a 100644 (file)
@@ -20,6 +20,7 @@ System.Data/ConstraintTest.cs
 System.Data/DataColumnCollectionTest.cs
 System.Data/DataColumnCollectionTest2.cs
 System.Data/DataColumnTest.cs
+System.Data/DataColumnTest2.cs
 System.Data/DataRelationTest.cs
 System.Data/DataRowCollectionTest.cs
 System.Data/DataRowTest.cs
@@ -65,30 +66,6 @@ System.Data.Tests.Mainsoft/GHTUtils/HttpClientBase.cs
 System.Data.Tests.Mainsoft/GHTUtils/ObjectTester.cs
 System.Data.Tests.Mainsoft/GHTUtils/XmlUtils.cs
 System.Data.Tests.Mainsoft/System.Data/ConstraintException/ConstraintException_Generate.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_AllowDBNull.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_AutoIncrement.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_AutoIncrementSeed.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_AutoIncrementStep.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_Caption.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ColumnName.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ctor.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ctor_S.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ctor_ST.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ctor_STS.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ctor_STSM.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_DataType.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_Equals_O.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ExtendedProperties.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_GetHashCode.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_GetType.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_MaxLength.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_Namespace.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ordinal.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_Prefix.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ReadOnly.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_Table.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_ToString.cs
-System.Data.Tests.Mainsoft/System.Data/DataColumn/DataColumn_Unique.cs
 System.Data.Tests.Mainsoft/System.Data/DataRelation/DataRelation_ChildColumns.cs
 System.Data.Tests.Mainsoft/System.Data/DataRelation/DataRelation_ChildKeyConstraint.cs
 System.Data.Tests.Mainsoft/System.Data/DataRelation/DataRelation_ChildTable.cs
index 23ae5422952ae06acd0250c361531f1b5aaa1ebc..fa8cc56fbe7a95b12150fc8daa45866a135a304d 100644 (file)
@@ -1,3 +1,7 @@
+2005-07-12  Eyal Alalouf  <eyala@mainsoft.com>
+
+       * DataColumnTest2.cs: Added file
+
 2005-07-08  Sureshkumar T  <tsureshkumar@novell.com>
 
        * DataTableLoadRowTest.cs: Added tests for event handling.
diff --git a/mcs/class/System.Data/Test/System.Data/DataColumnTest2.cs b/mcs/class/System.Data/Test/System.Data/DataColumnTest2.cs
new file mode 100644 (file)
index 0000000..c904578
--- /dev/null
@@ -0,0 +1,492 @@
+// Authors:
+//   Rafael Mizrahi   <rafim@mainsoft.com>
+//   Erez Lotan       <erezl@mainsoft.com>
+//   Oren Gurfinkel   <oreng@mainsoft.com>
+//   Ofer Borstein
+// 
+// Copyright (c) 2004 Mainsoft Co.
+// 
+// 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 NUnit.Framework;
+using System;
+using System.Data;
+
+namespace MonoTests.System.Data
+{
+       [TestFixture] public class DataColumnTest2
+       {
+               [Test] public void AllowDBNull()
+               {
+                       DataTable dt = new DataTable();
+                       DataColumn dc;
+                       dc = new DataColumn("ColName",typeof(int));
+                       dc.DefaultValue = DBNull.Value;
+                       dt.Columns.Add(dc);
+                       dc.AutoIncrement=false;
+
+                       // Checking default value (True)
+                       Assert.AreEqual(true ,  dc.AllowDBNull, "DC1");
+
+                       // AllowDBNull=true - adding new row with null value
+                       dt.Rows.Add(dt.NewRow());
+                       Assert.AreEqual(DBNull.Value , dt.Rows[0][0], "DC2");
+
+                       // set AllowDBNull=false 
+                       try
+                       {
+                               dc.AllowDBNull=false; //the exisiting row contains null value
+                               Assert.Fail("DC3: AllowDbNull Failed to throw DataException");
+                       }
+                       catch (DataException) {}
+                       catch (AssertionException exc) {throw  exc;}
+                       catch (Exception exc)
+                       {
+                               Assert.Fail("DC4: AllowDbNull. Wrong exception type. Got:" + exc);
+                       }
+
+                       dt.Rows.Clear();
+                       dc.AllowDBNull=false;
+                       // AllowDBNull=false - adding new row with null value
+                       try
+                       {
+                               dt.Rows.Add(dt.NewRow());
+                               Assert.Fail("DC5: RowAdd Failed to throw NoNullAllowedException");
+                       }
+                       catch (NoNullAllowedException) {}
+                       catch (AssertionException exc) {throw  exc;}
+                       catch (Exception exc)
+                       {
+                               Assert.Fail("DC6: RowAdd. Wrong exception type. Got:" + exc);
+                       }
+
+                       dc.AutoIncrement=true;
+                       int iRowCount = dt.Rows.Count;
+                       // AllowDBNull=false,AutoIncrement=true - adding new row with null value
+                       dt.Rows.Add(dt.NewRow());
+                       Assert.AreEqual(dt.Rows.Count, iRowCount+1, "DC7");
+               }
+
+               [Test] public void AutoIncrement()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn("ColName",typeof(string));
+
+                       // Checking default value (False)
+                       Assert.AreEqual(false , dc.AutoIncrement, "DC8");
+
+                       //Cheking Set
+                       dc.AutoIncrement=true;
+                       // Checking Get
+                       Assert.AreEqual(true , dc.AutoIncrement, "DC9");
+               }
+
+               [Test] public void AutoIncrementSeed()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn("ColName",typeof(string));
+
+                       // Checking default value 0
+                       Assert.AreEqual((long)0, dc.AutoIncrementSeed , "DC10");
+
+                       //Cheking Set
+                       dc.AutoIncrementSeed = long.MaxValue;
+                       // Checking Get MaxValue
+                       Assert.AreEqual(long.MaxValue, dc.AutoIncrementSeed , "DC11");
+
+                       //Cheking Set
+                       dc.AutoIncrementSeed = long.MinValue ;
+                       // Checking Get MinValue
+                       Assert.AreEqual(long.MinValue , dc.AutoIncrementSeed, "DC12");
+               }
+
+               [Test] public void AutoIncrementStep()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn("ColName",typeof(string));
+                       // Checking default value 1
+                       Assert.AreEqual((long)1,  dc.AutoIncrementStep , "DC13");
+
+                       //Cheking Set
+                       dc.AutoIncrementStep = long.MaxValue;
+                       // Checking Get MaxValue
+                       Assert.AreEqual(long.MaxValue, dc.AutoIncrementStep , "DC14");
+
+                       //Cheking Set
+                       dc.AutoIncrementStep = long.MinValue ;
+                       // Checking Get MinValue
+                       Assert.AreEqual(long.MinValue ,  dc.AutoIncrementStep , "DC15");
+               }
+
+               [Test] public void Caption()
+               {
+                       DataColumn dc;
+                       string sCaption = "NewCaption";
+                       dc = new DataColumn("ColName",typeof(string));
+
+                       //Checking default value ( ColumnName )
+                       // Checking default value ( ColumnName )
+                       Assert.AreEqual(dc.ColumnName , dc.Caption, "DC16");
+
+                       //Cheking Set
+                       dc.Caption = sCaption;
+                       // Checking Get
+                       Assert.AreEqual(sCaption , dc.Caption , "DC17");
+               }
+
+               [Test] public void ColumnName()
+               {
+                       DataColumn dc;
+                       string sName = "NewName";
+
+                       dc = new DataColumn();
+                       //Checking default value ("")
+                       // ColumnName default value
+                       Assert.AreEqual(string.Empty ,  dc.ColumnName, "DC18");
+
+                       //Cheking Set
+                       dc.ColumnName = sName;
+                       //Checking Get
+                       // ColumnName Get/Set
+                       Assert.AreEqual(sName , dc.ColumnName , "DC19");
+
+                       //Special chars (valid chars)
+                       sName = "~()#\\/=><+-*%&|^'\"[]";
+                       // ColumnName Special chars
+                       dc.ColumnName = sName ; 
+                       Assert.AreEqual(sName , dc.ColumnName , "DC20");
+               }
+
+               [Test] public void DataType()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn();
+                       string[] sTypeArr = { "System.Boolean", "System.Byte", "System.Char", "System.DateTime",
+                               "System.Decimal", "System.Double", "System.Int16", "System.Int32",
+                               "System.Int64", "System.SByte", "System.Single", "System.String", 
+                               "System.TimeSpan", "System.UInt16", "System.UInt32", "System.UInt64" };
+
+                       //Checking default value (string)
+                       // GetType - Default
+                       Assert.AreEqual(Type.GetType("System.String") ,  dc.DataType, "DC21");
+
+                       foreach (string sType in sTypeArr) 
+                       {
+                               //Cheking Set
+                               dc.DataType = Type.GetType(sType);
+                               // Checking GetType " + sType);
+                               Assert.AreEqual(Type.GetType(sType) , dc.DataType , "DC22");
+                       }
+               }
+
+               [Test] public void Equals()
+               {
+                       DataColumn dc1,dc2;
+                       dc1 = new DataColumn();
+                       dc2 = new DataColumn();
+                       // #1
+                       // Equals 1
+                       Assert.AreEqual(false , dc1.Equals(dc2) , "DC23");
+
+                       dc1 = dc2;
+                       // #2
+                       // Equals 2
+                       Assert.AreEqual(dc2 , dc1 , "DC24");
+               }
+
+               [Test] public void ExtendedProperties()
+               {
+                       DataColumn dc;
+                       PropertyCollection pc;
+                       dc = new DataColumn();
+
+                       pc = dc.ExtendedProperties ;
+                       // Checking ExtendedProperties default 
+                       Assert.AreEqual(true, pc != null, "DC25");
+
+                       // Checking ExtendedProperties count 
+                       Assert.AreEqual(0, pc.Count , "DC26");
+               }
+
+               [Test] public void TestGetHashCode()
+               {
+                       DataColumn dc1;
+                       int iHashCode1;
+                       dc1 = new DataColumn();
+
+                       iHashCode1 = dc1.GetHashCode();
+                       for (int i=0; i<10; i++)
+                       {       // must return the same value each time
+                               // GetHashCode #" + i.ToString());
+                               Assert.AreEqual(dc1.GetHashCode(), iHashCode1 , "DC27");
+                       }
+               }
+
+               [Test] public void TestGetType()
+               {
+                       DataColumn dc;
+                       Type myType;
+                       dc = new DataColumn();
+                       myType = dc.GetType();
+
+                       // GetType
+                       Assert.AreEqual(typeof(DataColumn), myType, "DC28");
+               }
+
+               [Test] public void MaxLength()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn("ColName",typeof(string));
+
+                       //Checking default value (-1)
+                       // MaxLength default
+                       Assert.AreEqual((int)-1, dc.MaxLength , "DC29");
+
+                       //Cheking Set MaxValue
+                       dc.MaxLength = int.MaxValue ;
+                       //Checking Get MaxValue
+                       // MaxLength MaxValue
+                       Assert.AreEqual(int.MaxValue , dc.MaxLength , "DC30");
+
+                       //Cheking Set MinValue
+                       dc.MaxLength = int.MinValue  ;
+                       //Checking Get MinValue
+                       // MaxLength MinValue
+                       Assert.AreEqual(int.MinValue, dc.MaxLength , "DC31");
+
+                       DataTable dt = new DataTable();
+                       dt.Columns.Add(new DataColumn("col",typeof(string)));
+                       dt.Columns[0].MaxLength = 5;
+                       dt.Rows.Add(new object[] {"a"});
+
+                       //MaxLength = 5
+                       try
+                       {
+                               // MaxLength = 5
+                               dt.Rows[0][0] = "123456";
+                               Assert.Fail("DC32: Indexer failed to throw ArgumentException");
+                       }
+                       catch(ArgumentException) {}
+                       catch (AssertionException exc) {throw  exc;}
+                       catch (Exception exc)
+                       {
+                               Assert.Fail("DC33: Indexer. Wrong exception type. Got:" + exc);
+                       }
+               }
+
+               [Test] public void Namespace()
+               {
+                       DataColumn dc;
+                       string sName = "NewName";
+
+                       dc = new DataColumn();
+                       //Checking default value ("")
+                               // Namespace default
+                               Assert.AreEqual(string.Empty , dc.Namespace , "DC34");
+
+                       //Cheking Set
+                       dc.Namespace  = sName;
+                       //Checking Get
+                               // Namespace Get/Set
+                               Assert.AreEqual(sName, dc.Namespace , "DC35");
+               }
+
+               [Test] public void Prefix()
+               {
+                       DataColumn dc;
+                       string sPrefix = "Prefix";
+                       dc = new DataColumn("ColName",typeof(string));
+
+                               // Prefix Checking default value (string.Empty)
+                               Assert.AreEqual(string.Empty , dc.Prefix , "DC36");
+
+                       //Cheking Set
+                       dc.Prefix = sPrefix;
+                       //Checking Get
+                               // Prefix Checking Get
+                               Assert.AreEqual(sPrefix , dc.Prefix , "DC37");
+               }
+
+               [Test] public void ReadOnly()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn();
+
+                       //Checking default value (false)
+                               // ReadOnly default
+                               Assert.AreEqual(false , dc.ReadOnly , "DC38");
+
+                       //Cheking Set
+                       dc.ReadOnly=true;
+                       //Checking Get
+                               // ReadOnly Get/Set
+                               Assert.AreEqual(true, dc.ReadOnly , "DC39");
+               }
+
+               [Test] public void Table()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn();
+
+                       //Checking First Get
+                               // Table test1
+                               Assert.AreEqual(null,  dc.Table, "DC40");
+
+                       DataTable dt = new DataTable();
+                       dt.Columns.Add(dc);
+
+                       //Checking Second Get
+                               // Table test2
+                               Assert.AreEqual(dt, dc.Table , "DC41");
+               }
+
+               [Test] public void TestToString()
+               {
+                       DataColumn dc;
+                       string sColName,sExp;
+                       dc = new DataColumn();
+
+                       //ToString = ""
+                       //Console.WriteLine(dc.ToString());
+
+                       //ToString = ColumnName                         
+                       sColName = "Test1";
+                       dc.ColumnName = sColName;
+                               // ToString - ColumnName
+                               Assert.AreEqual(sColName , dc.ToString() , "DC42");
+
+                       //TosTring = ColumnName + " + " + Expression
+                       sExp = "Tax * 1.234";
+                       dc.Expression = sExp;
+                               // TosTring=ColumnName + Expression
+                               Assert.AreEqual(sColName + " + " + sExp , dc.ToString() , "DC43");
+               }
+
+               [Test] public void Unique()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn();
+                       //Checking default value (false)
+
+                               // Unique default
+                               Assert.AreEqual(false , dc.Unique , "DC44");
+
+                       //Cheking Set
+                       dc.Unique=true;
+
+                       //Checking Get
+                       // Unique Get/Set
+                       Assert.AreEqual(true,  dc.Unique, "DC45");
+               }
+
+               [Test] public void ctor()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn();
+
+                       // ctor
+                       Assert.AreEqual(false, dc == null, "DC46");
+               }
+
+               [Test] public void ctor_ByColumnName()
+               {
+                       DataColumn dc;
+                       string sName = "ColName";
+                       dc = new DataColumn(sName);
+
+                       // ctor - object
+                       Assert.AreEqual(false , dc==null , "DC47");
+
+                       // ctor - ColName
+                       Assert.AreEqual(sName, dc.ColumnName , "DC48");
+               }
+
+               [Test] public void ctor_ByColumnNameType()
+               {
+                       Type typTest;
+                       DataColumn dc = null;
+                       string[] sTypeArr = { "System.Boolean", "System.Byte", "System.Char", "System.DateTime",
+                               "System.Decimal", "System.Double", "System.Int16", "System.Int32",
+                               "System.Int64", "System.SByte", "System.Single", "System.String", 
+                               "System.TimeSpan", "System.UInt16", "System.UInt32", "System.UInt64" };
+
+                       foreach (string sType in sTypeArr) 
+                       {
+                               typTest = Type.GetType(sType);
+                               dc = new DataColumn("ColName",typTest);
+                               // ctor - object
+                               Assert.AreEqual(false , dc==null, "DC49");
+
+                               // ctor - ColName
+                               Assert.AreEqual(typTest ,  dc.DataType , "DC50");
+                       }
+               }
+
+               [Test] public void ctor_ByColumnNameTypeExpression()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn("ColName",typeof(String),"Price * 1.18");
+
+                       // ctor - object
+                       Assert.AreEqual(false , dc==null, "DC51");
+               }
+
+               [Test] public void ctor_ByColumnNameTypeExpressionMappingType()
+               {
+                       DataColumn dc;
+                       //Cheking constructor for each Enum MappingType
+                       foreach (int i in Enum.GetValues(typeof(MappingType))) 
+                       {
+                               dc = null;
+                               dc = new DataColumn("ColName",typeof(string),"Price * 1.18",(MappingType)i );
+                               // Ctor #" + i.ToString());
+                               Assert.AreEqual(false , dc==null , "DC52");
+                       }
+               }
+
+               [Test] public void ordinal()
+               {
+                       DataColumn dc;
+                       dc = new DataColumn("ColName",typeof(string));
+
+                       //DEBUG
+                       //Console.WriteLine( "***" + dc.Ordinal.ToString()  + "***
+                       //DEBUG
+
+                       //Checking default value 
+                       // Ordinal default value
+                       Assert.AreEqual((int)-1 ,  dc.Ordinal, "DC53");
+
+                       // needs a DataTable.Columns to test   
+                       DataColumnCollection dcColl ;
+                       DataTable tb = new DataTable();
+                       dcColl = tb.Columns ;
+                       dcColl.Add();   //0
+                       dcColl.Add();   //1
+                       dcColl.Add();   //2
+                       dcColl.Add(dc); //3
+
+                       //Checking Get
+                       // Ordinal Get
+                       Assert.AreEqual((int)3 , dc.Ordinal , "DC54");
+               }
+       }
+}