ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/udr/testsuite/Test16.pas
(Generate patch)

Comparing:
ibx/trunk/fbintf/testsuite/Test16.pas (file contents), Revision 45 by tony, Tue Dec 6 10:33:46 2016 UTC vs.
ibx/branches/udr/testsuite/Test16.pas (file contents), Revision 370 by tony, Wed Jan 5 14:59:15 2022 UTC

# Line 1 | Line 1
1 + (*
2 + *  Firebird Interface (fbintf) Test suite. This program is used to
3 + *  test the Firebird Pascal Interface and provide a semi-automated
4 + *  pass/fail check for each test.
5 + *
6 + *  The contents of this file are subject to the Initial Developer's
7 + *  Public License Version 1.0 (the "License"); you may not use this
8 + *  file except in compliance with the License. You may obtain a copy
9 + *  of the License here:
10 + *
11 + *    http://www.firebirdsql.org/index.php?op=doc&id=idpl
12 + *
13 + *  Software distributed under the License is distributed on an "AS
14 + *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
15 + *  implied. See the License for the specific language governing rights
16 + *  and limitations under the License.
17 + *
18 + *  The Initial Developer of the Original Code is Tony Whyman.
19 + *
20 + *  The Original Code is (C) 2016 Tony Whyman, MWA Software
21 + *  (http://www.mwasoftware.co.uk).
22 + *
23 + *  All Rights Reserved.
24 + *
25 + *  Contributor(s): ______________________________________.
26 + *
27 + *)
28 +
29   unit Test16;
30 + {$IFDEF MSWINDOWS}
31 + {$DEFINE WINDOWS}
32 + {$ENDIF}
33  
34 < {$mode objfpc}{$H+}
34 > {$IFDEF FPC}
35 > {$mode delphi}
36   {$codepage UTF8}
37 + {$ENDIF}
38  
39   {Test 16: Error handling}
40  
# Line 22 | Line 55 | unit Test16;
55   interface
56  
57   uses
58 <  Classes, SysUtils, TestManager, IB;
58 >  Classes, SysUtils, TestApplication, FBTestApp, IB;
59  
60   type
61  
62    { TTest16 }
63  
64 <  TTest16 = class(TTestBase)
64 >  TTest16 = class(TFBTestBase)
65    private
66 <    procedure DBTests(CharSet: string; SQLDialect: integer);
67 <    procedure ServiceTests(CharSet: string; SQLDialect: integer);
66 >    procedure DBTests(CharSet: AnsiString; SQLDialect: integer);
67 >    procedure ServiceTests(CharSet: AnsiString; SQLDialect: integer);
68    public
69 <    function TestTitle: string; override;
70 <    procedure RunTest(CharSet: string; SQLDialect: integer); override;
69 >    function TestTitle: AnsiString; override;
70 >    procedure RunTest(CharSet: AnsiString; SQLDialect: integer); override;
71    end;
72  
73  
# Line 42 | Line 75 | implementation
75  
76   { TTest16 }
77  
78 < procedure TTest16.DBTests(CharSet: string; SQLDialect: integer);
78 > procedure TTest16.DBTests(CharSet: AnsiString; SQLDialect: integer);
79   var DPB: IDPB;
80      Attachment: IAttachment;
81      Transaction: ITransaction;
# Line 106 | Line 139 | begin
139    except on E: Exception do
140      writeln(OutFile,'Error Handled: ',E.Message);
141    end;
142 +  Transaction.Rollback;
143 +  Transaction.Start;
144 +  try
145 +    writeln(OutFile,'Case sensitive Param SQL  Test');
146 +    Statement := Attachment.PrepareWithNamedParameters(Transaction,'Update Employee Set Hire_Date = :Hire_Date Where emp_no = :emp_no',3,false,true);
147 +    Statement.SQLParams.ByName('Hire_Date').AsDate := EncodeDate(2016,11,5);
148 +    Statement.SQLParams.ByName('emp_no').AsInteger := 1;
149 +    Statement.SQLParams.ByName('EMP_NO').AsInteger := 1;
150 +  except on E: Exception do
151 +    writeln(OutFile,'Error Handled: ',E.Message);
152 +  end;
153 +  Transaction.Rollback;
154 +  Transaction.Start;
155 +  writeln(Outfile,'Stale Reference Check');
156 +  writeln(Outfile,'First test correct usage');
157 +  Statement :=  Attachment.Prepare(Transaction,'Select count(*) As Counter from EMPLOYEE Where Hire_Date < ?',3);
158 +  Statement.SQLParams[0].AsDate := EncodeDate(2016,11,5);
159 +  ReportResults(Statement);
160 +  try
161 +    writeln(Outfile,'New Transaction before param set');
162 +    Statement.Prepare(Transaction);
163 +    Transaction.Rollback;
164 +    Transaction.Start;
165 +    Statement.SQLParams[0].AsDate := EncodeDate(2016,11,5);
166 +    ReportResults(Statement);
167 +  except on E: Exception do
168 +    writeln(OutFile,'Error Handled: ',E.Message);
169 +  end;
170 +  Transaction.Rollback;
171 +  Transaction.Start;
172 +  try
173 +    writeln(Outfile,'New Transaction before Open Cursor');
174 +    Statement.Prepare(Transaction);
175 +    Statement.SQLParams[0].AsDate := EncodeDate(2016,11,5);
176 +    Transaction.Rollback;
177 +    Transaction.Start;
178 +    ReportResults(Statement);
179 +  except on E: Exception do
180 +    writeln(OutFile,'Error Handled: ',E.Message);
181 +  end;
182 +  Transaction.Rollback;
183 +  Transaction.Start;
184 +  writeln(Outfile,'Stop Stale Reference Checks');
185 +  Statement.SetStaleReferenceChecks(false);
186 +  try
187 +    writeln(Outfile,'New Transaction before param set');
188 +    Statement.Prepare(Transaction);
189 +    Transaction.Rollback;
190 +    Transaction.Start;
191 +    Statement.SQLParams[0].AsDate := EncodeDate(2016,11,5);
192 +    ReportResults(Statement);
193 +  except on E: Exception do
194 +    writeln(OutFile,'Error Handled: ',E.Message);
195 +  end;
196 +  try
197 +    writeln(Outfile,'New Transaction before Open Cursor');
198 +    Statement.Prepare(Transaction);
199 +    Statement.SQLParams[0].AsDate := EncodeDate(2016,11,5);
200 +    Transaction.Rollback;
201 +    Transaction.Start;
202 +    ReportResults(Statement);
203 +  except on E: Exception do
204 +    writeln(OutFile,'Error Handled: ',E.Message);
205 +  end;
206   end;
207  
208 < procedure TTest16.ServiceTests(CharSet: string; SQLDialect: integer);
208 > procedure TTest16.ServiceTests(CharSet: AnsiString; SQLDialect: integer);
209   var SPB: ISPB;
210      Service: IServiceManager;
211 <    I: integer;
212 <    ServerName: string;
116 <    DBName: string;
211 >    ServerName: AnsiString;
212 >    DBName: AnsiString;
213   begin
214    if not FirebirdAPI.HasServiceAPI then Exit;
215  
216 <  ServerName := Owner.GetEmployeeDatabaseName;
217 <  I := Pos(':',ServerName);
122 <  if i > 0 then
123 <    DBName := system.copy(ServerName,i+1,length(ServerName) - 2);
124 <  system.Delete(ServerName,i,Length(ServerName)-i+1);
216 >  DBName := ExtractDBName(Owner.GetEmployeeDatabaseName);
217 >  ServerName := Owner.Server;
218  
219    SPB := FirebirdAPI.AllocateSPB;
220    SPB.Add(isc_spb_user_name).setAsString(Owner.GetUserName);
# Line 150 | Line 243 | begin
243    end;
244   end;
245  
246 < function TTest16.TestTitle: string;
246 > function TTest16.TestTitle: AnsiString;
247   begin
248    Result := 'Test 16: Error handling';
249   end;
250  
251 < procedure TTest16.RunTest(CharSet: string; SQLDialect: integer);
251 > procedure TTest16.RunTest(CharSet: AnsiString; SQLDialect: integer);
252   begin
253    DBTests(Charset,SQLDialect);
254    ServiceTests(Charset,SQLDialect);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines