* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / System.Data / Test / System.Data.Tests.Mainsoft / System.Data / DuplicateNameException / DuplicateNameException_Generate.cs
1 // Authors:
2 //   Rafael Mizrahi   <rafim@mainsoft.com>
3 //   Erez Lotan       <erezl@mainsoft.com>
4 //   Oren Gurfinkel   <oreng@mainsoft.com>
5 //   Ofer Borstein
6 // 
7 // Copyright (c) 2004 Mainsoft Co.
8 // 
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28
29 using NUnit.Framework;
30
31
32 using System;
33 using System.Data;
34
35 using GHTUtils;
36 using GHTUtils.Base;
37
38 namespace tests.system_data_dll.System_Data
39 {
40 [TestFixture] public class DuplicateNameException_Generate : GHTBase
41 {
42         [Test] public void Main()
43         {
44                 DuplicateNameException_Generate tc = new DuplicateNameException_Generate();
45                 Exception exp = null;
46                 try
47                 {
48                         tc.BeginTest("DuplicateNameException");
49                         tc.run();
50                 }
51                 catch(Exception ex)
52                 {
53                         exp = ex;
54                 }
55                 finally
56                 {
57                         tc.EndTest(exp);
58                 }
59         }
60
61         //Activate This Construntor to log All To Standard output
62         //public TestClass():base(true){}
63
64         //Activate this constructor to log Failures to a log file
65         //public TestClass(System.IO.TextWriter tw):base(tw, false){}
66
67
68         //Activate this constructor to log All to a log file
69         //public TestClass(System.IO.TextWriter tw):base(tw, true){}
70
71         //BY DEFAULT LOGGING IS DONE TO THE STANDARD OUTPUT ONLY FOR FAILURES
72
73         public void run()
74         {
75                 Exception exp = null;
76                 Exception tmpEx = new Exception() ;
77
78                 DataSet ds = new DataSet();
79                 ds.Tables.Add(new DataTable("Table"));
80                 ds.Tables.Add(new DataTable("Table1"));
81                 ds.Tables[0].Columns.Add(new DataColumn("Column"));
82                 ds.Tables[0].Columns.Add(new DataColumn("Column1"));
83                 ds.Tables[0].Columns.Add(new DataColumn("Column2"));
84                 ds.Tables[1].Columns.Add(new DataColumn("Column"));
85
86                 ds.Relations.Add(new DataRelation("Relation",ds.Tables[0].Columns[0],ds.Tables[1].Columns[0]));
87                 ds.Tables[0].Constraints.Add(new UniqueConstraint("Constraint",ds.Tables[0].Columns[1]));
88                         
89
90                 try
91                 {
92                         BeginCase("DuplicateNameException - tables ");
93                         try
94                         {
95                                 ds.Tables.Add(new DataTable("Table"));
96                         }
97                         catch (DuplicateNameException ex)
98                         {
99                                 tmpEx = ex;
100                         }
101                         base.Compare(tmpEx.GetType(),typeof(DuplicateNameException));
102                         tmpEx = new  Exception();
103                 }
104                 catch(Exception ex)     {exp = ex;}
105                 finally {EndCase(exp); exp = null;}
106
107                 try
108                 {
109                         BeginCase("DuplicateNameException - Column ");
110                         try
111                         {
112                                 ds.Tables[0].Columns.Add(new DataColumn("Column"));
113                         }
114                         catch (DuplicateNameException ex)
115                         {
116                                 tmpEx = ex;
117                         }
118                         base.Compare(tmpEx.GetType(),typeof(DuplicateNameException));
119                         tmpEx = new  Exception();
120                 }
121                 catch(Exception ex)     {exp = ex;}
122                 finally {EndCase(exp); exp = null;}
123
124                 try
125                 {
126                         BeginCase("DuplicateNameException - Constraints ");
127                         try
128                         {
129                                 ds.Tables[0].Constraints.Add(new UniqueConstraint("Constraint",ds.Tables[0].Columns[2]));
130                         }
131                         catch (DuplicateNameException ex)
132                         {
133                                 tmpEx = ex;
134                         }
135                         base.Compare(tmpEx.GetType(),typeof(DuplicateNameException));
136                         tmpEx = new  Exception();
137                 }
138                 catch(Exception ex)     {exp = ex;}
139                 finally {EndCase(exp); exp = null;}
140         
141                 try
142                 {
143                         BeginCase("DuplicateNameException - Relations ");
144                         try
145                         {
146                                 ds.Relations.Add(new DataRelation("Relation",ds.Tables[0].Columns[1],ds.Tables[1].Columns[0]));
147
148                         }
149                         catch (DuplicateNameException ex)
150                         {
151                                 tmpEx = ex;
152                         }
153                         base.Compare(tmpEx.GetType(),typeof(DuplicateNameException));
154                         tmpEx = new  Exception();
155                 }
156                 catch(Exception ex)     {exp = ex;}
157                 finally {EndCase(exp); exp = null;}
158         }
159 }
160 }