📄 testaparam.pas
字号:
unit testAParam;
{$INCLUDE dOCI.inc}
interface
uses
TestFrameWork, ADataSet, AOraSQL
{$IFDEF D7} , Variants {$ENDIF};
type
TTestAParam = class(TTestCase)
private
AParam:TAOraParam;
protected
procedure SetUp; override;
procedure TearDown; override;
published
procedure testAParam1;
procedure testAParamString;
procedure testAParamDouble;
procedure testAParamWord;
procedure testAParamInt64;
procedure testAParamDateTime;
{$IFDEF D6_OR_HIGHER}
procedure testAParamVarInt64;
procedure testAParamVarDateTime;
{$ENDIF}
procedure testAParamVarString;
end;
implementation
procedure TTestAParam.SetUp;
begin
end;
procedure TTestAParam.TearDown;
begin
end;
procedure TTestAParam.testAParam1;
begin
// ??? seems we must not allow to create parameters with empty name
AParam := TAOraParam.Create(nil, '', ftoSmallInt, ptoInput);
Check(AParam.IsNull);
CheckEquals('', AParam.Name);
Check(ftoSmallInt = AParam.FieldType);
Check(ptoInput = AParam.ParamType);
AParam.AsSmallInt := 32767;
Check(not AParam.IsNull);
CheckEquals(32767, AParam.AsSmallInt);
AParam.Clear;
Check(AParam.IsNull);
AParam.Free;
end;
procedure TTestAParam.testAParamString;
begin
AParam := TAOraParam.Create(nil, 'param1', ftoString, ptoOutput);
Check(AParam.IsNull);
CheckEquals('param1', AParam.Name);
Check(ftoString = AParam.FieldType);
Check(ptoOutput = AParam.ParamType);
AParam.AsString := 'aaa';
Check(not AParam.IsNull);
CheckEquals('aaa', AParam.AsString);
AParam.Clear;
Check(AParam.IsNull);
AParam.Free;
end;
procedure TTestAParam.testAParamDouble;
begin
AParam := TAOraParam.Create(nil, 'p', ftoDouble, ptoInputOutput);
Check(AParam.IsNull);
CheckEquals('p', AParam.Name);
Check(ftoDouble = AParam.FieldType);
Check(ptoInputOutput = AParam.ParamType);
AParam.AsDouble := 5;
Check(not AParam.IsNull);
CheckEquals(5.0, AParam.AsDouble,0);
AParam.Clear;
Check(AParam.IsNull);
AParam.Free;
end;
procedure TTestAParam.testAParamWord;
var tmp:integer;
begin
AParam := TAOraParam.Create(nil, 'param1AA', ftoWord, ptoInput);
Check(AParam.IsNull);
CheckEquals('param1AA', AParam.Name);
Check(ftoWord = AParam.FieldType);
Check(ptoInput = AParam.ParamType);
tmp := 65535;
AParam.AsWord := tmp;
Check(not AParam.IsNull);
CheckEquals(tmp and $FFFF, AParam.AsWord);
AParam.Clear;
Check(AParam.IsNull);
AParam.Free;
end;
procedure TTestAParam.testAParamInt64;
//var tmp:integer;
begin
AParam := TAOraParam.Create(nil, 'paramInt64', ftoInt64, ptoInput);
Check(AParam.IsNull);
CheckEquals('paramInt64', AParam.Name);
Check(ftoInt64 = AParam.FieldType);
Check(ptoInput = AParam.ParamType);
AParam.AsInt64 := 1234567890123456789;
Check(not AParam.IsNull);
Check(1234567890123456789 = AParam.AsInt64);
AParam.Clear;
Check(AParam.IsNull);
AParam.Free;
end;
procedure TTestAParam.testAParamDateTime;
//var tmp:int64;
begin
AParam := TAOraParam.Create(nil, 'paramDateTime', ftoDateTime, ptoInputOutput);
Check(AParam.IsNull);
CheckEquals('paramDateTime', AParam.Name);
Check(ftoDateTime = AParam.FieldType);
Check(ptoInputOutput = AParam.ParamType);
AParam.AsDateTime := 1122334455;
Check(not AParam.IsNull);
Check(1122334000 = AParam.AsDateTime);
AParam.Clear;
Check(AParam.IsNull);
AParam.Free;
end;
{$IFDEF D6_OR_HIGHER}
procedure TTestAParam.testAParamVarDateTime;
begin
AParam := TAOraParam.Create(nil, 'paramDateTime', ftoDateTime, ptoOutput);
Check(AParam.Value = Null);
CheckEquals('paramDateTime', AParam.Name);
Check(ftoDateTime = AParam.FieldType);
Check(ptoOutput = AParam.ParamType);
AParam.Value := 1122334455;
Check(AParam.Value <> Null);
Check(1122334000 = AParam.Value);
AParam.Clear;
Check(AParam.Value = Null);
AParam.Free;
end;
procedure TTestAParam.testAParamVarInt64;
begin
AParam := TAOraParam.Create(nil, 'int64', ftoInt64, ptoOutput);
Check(AParam.Value = Null);
CheckEquals('int64', AParam.Name);
Check(ftoInt64 = AParam.FieldType);
Check(ptoOutput = AParam.ParamType);
AParam.Value := 1122334455667788990;
Check(AParam.Value <> Null);
Check(1122334455667788990 = AParam.Value);
AParam.Clear;
Check(AParam.Value = Null);
AParam.Free;
end;
{$ENDIF}
procedure TTestAParam.testAParamVarString;
begin
AParam := TAOraParam.Create(nil, 'String', ftoString, ptoOutput);
Check(AParam.Value = Null);
CheckEquals('String', AParam.Name);
Check(ftoString = AParam.FieldType);
Check(ptoOutput = AParam.ParamType);
AParam.Value := '1122334455667788990aaaa';
Check(AParam.Value <> Null);
Check('1122334455667788990aaaa' = AParam.Value);
AParam.Clear;
Check(AParam.Value = Null);
AParam.Free;
end;
initialization
TestFramework.RegisterTest(TTestAParam.Suite);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -