* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / System.Data.OracleClient / Test / System.Data.OracleClient.jvm / OracleDataReader / OracleDataReader_GetChars.cs
1 // 
2 // Copyright (c) 2006 Mainsoft Co.
3 // 
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
11 // 
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
14 // 
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 //
23
24 using System;
25 using System.Data;
26 using System.Data.OracleClient;
27
28 using MonoTests.System.Data.Utils;
29
30
31 using NUnit.Framework;
32
33 namespace MonoTests.System.Data.OracleClient
34 {
35         [TestFixture]
36         public class OracleDataReader_GetChars : ADONetTesterClass 
37         {
38                 OracleConnection con;
39                 char [] Result;
40
41                 [SetUp]
42                 public void SetUp()
43                 {
44                         Exception exp = null;
45                         BeginCase("Setup");
46                         try
47                         {
48                                 //prepare data
49                                 base.PrepareDataForTesting(MonoTests.System.Data.Utils.ConnectedDataProvider.ConnectionString);
50
51                                 con = new OracleConnection(MonoTests.System.Data.Utils.ConnectedDataProvider.ConnectionString);
52                                 Result = new char[100];
53                                 con.Open();
54                         }
55                         catch(Exception ex)     {exp = ex;}
56                         finally {EndCase(exp); exp = null;}
57                 }
58
59                 [TearDown]
60                 public void TearDown()
61                 {
62                         if (con.State == ConnectionState.Open) con.Close();
63                 }
64
65                 public static void Main()
66                 {
67                         OracleDataReader_GetChars tc = new OracleDataReader_GetChars();
68                         Exception exp = null;
69                         try
70                         {
71                                 tc.BeginTest("OracleDataReader_GetChars");
72                                 tc.SetUp();
73                                 tc.run();
74                                 tc.TearDown();
75                         }
76                         catch(Exception ex){exp = ex;}
77                         finally {tc.EndTest(exp);}
78                 }
79
80                 [Test]
81                 public void run()
82                 {
83                         Exception exp = null;
84                         long rdrResults = 0;
85
86                         OracleCommand cmd = new OracleCommand("Select LastName From Employees Where EmployeeID = 100", con);
87                         OracleDataReader rdr = cmd.ExecuteReader();
88                         rdr.Read();
89
90                         //LastName should be "Last100"
91         
92                         try
93                         {
94                                 BeginCase("check result length");
95                                 rdrResults = rdr.GetChars(0, 0, Result, 0, Result.Length);
96                                 Compare(rdrResults,(long)"Last100".Length  );
97                         } 
98                         catch(Exception ex){exp = ex;}
99                         finally{EndCase(exp); exp = null;}
100
101                         try
102                         {
103                                 BeginCase("check result - char[0]");
104                                 Compare(Result[0] ,'L');
105                         } 
106                         catch(Exception ex){exp = ex;}
107                         finally{EndCase(exp); exp = null;}
108
109                         try
110                         {
111                                 BeginCase("check result - char[last char index]");
112                                 Compare(Result["Last100".Length-1] ,'0');
113                         } 
114                         catch(Exception ex){exp = ex;}
115                         finally{EndCase(exp); exp = null;}
116
117                 }
118         }
119 }