📄 testafield.pas
字号:
unit testAField;
interface
uses
SysUtils, Dialogs, TestFrameWork, ADataSet;
type
TTestAField = class(TTestCase)
private
protected
procedure SetUp; override;
procedure TearDown; override;
published
procedure testAFieldString;
procedure testAFieldString2;
procedure testAFieldRecordNotFound;
procedure testAFieldStringRequired;
procedure testAFieldInsertRecord1;
procedure testAFieldInsertRecord2;
procedure testAFieldInsertRecord3;
procedure testAFieldDeleteRecord1;
// procedure testAFieldDeleteRecord2;
end;
implementation
procedure TTestAField.SetUp;
begin
end;
procedure TTestAField.TearDown;
begin
end;
procedure TTestAField.testAFieldString;
var
AField:TAField;
begin
AField := TAField.Create(nil, '', ftoString, 10, false);
CheckEquals(true, AField.Visible);
CheckEquals(false, AField.ReadOnly);
CheckEquals('', AField.Name);
Check(ftoString = AField.FieldType);
CheckEquals(10, AField.FieldSize);
CheckEquals(false, AField.Required);
Check(AField.HArrayValues = nil);
Check(AField.HArrayValuesNull = nil);
Check(AField.HArrayValuesSize = nil);
try
CheckEquals('', AField.AsString[0]);
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
CheckEquals(false, AField.IsNull[0]); // should generate error or not?
AField.Free;
end;
procedure TTestAField.testAFieldStringRequired;
var
AField:TAField;
begin
AField := TAField.Create(nil, '', ftoString, 0, true);
CheckEquals(true, AField.Visible);
CheckEquals(false, AField.ReadOnly);
CheckEquals('', AField.Name);
Check(ftoString = AField.FieldType);
CheckEquals(0, AField.FieldSize);
CheckEquals(true, AField.Required);
Check(AField.HArrayValues = nil);
Check(AField.HArrayValuesNull = nil);
Check(AField.HArrayValuesSize = nil);
try
CheckEquals('', AField.AsString[0]);
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
CheckEquals(false, AField.IsNull[0]); // should generate error or not?
AField.Free;
end;
procedure TTestAField.testAFieldString2;
var
AField:TAField;
begin
AField := TAField.Create(nil, '11', ftoString, 0, true);
CheckEquals(0, AField.FieldSize);
try
AField.AsString[0] := 'aaaaa';
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
try
AField.AsInteger[0] := 5;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoInteger', E.Message);
end;
try
AField.AsDate[0] := 444;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoDate', E.Message);
end;
try
AField.AsTime[0] := 111;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoTime', E.Message);
end;
try
AField.AsDateTime[0] := 1234567890;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoDateTime', E.Message);
end;
try
AField.AsDouble[0] := 23.56789;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoDouble', E.Message);
end;
try
AField.AsCurrency[0]:= 11.1111111111;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoCurrency', E.Message);
end;
try
AField.AsBoolean[0] := True;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoBoolean', E.Message);
end;
try
AField.AsWord[0] := 65535;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoWord', E.Message);
end;
try
AField.AsSmallInt[0] := 257;
except
on E:Exception do
CheckEquals('Type mismatch for field ''11'', expecting: ftoString actual: ftoSmallInt', E.Message);
end;
try
AField.Value[0] := 5.6;
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
CheckEquals(false, AField.IsNull[0]); // should generate error or not?
AField.Free;
end;
procedure TTestAField.testAFieldRecordNotFound;
var
AField:TAField;
begin
AField := TAField.Create(nil, '333', ftoString, 0, true);
CheckEquals(0, AField.FieldSize);
try
AField.AsString[0];
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
try
AField.AsInteger[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoInteger', E.Message);
end;
try
AField.AsDate[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoDate', E.Message);
end;
try
AField.AsTime[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoTime', E.Message);
end;
try
AField.AsDateTime[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoDateTime', E.Message);
end;
try
AField.AsDouble[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoDouble', E.Message);
end;
try
AField.AsCurrency[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoCurrency', E.Message);
end;
try
AField.AsBoolean[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoBoolean', E.Message);
end;
try
AField.AsWord[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoWord', E.Message);
end;
try
AField.AsSmallInt[0];
except
on E:Exception do
CheckEquals('Type mismatch for field ''333'', expecting: ftoString actual: ftoSmallInt', E.Message);
end;
try
AField.Value[0];
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
CheckEquals(false, AField.IsNull[1]); // should generate error or not?
AField.Free;
end;
procedure TTestAField.testAFieldInsertRecord1;
var
AField:TAField;
begin
AField := TAField.Create(nil, 'InsertRecord1', ftoInt64, 0, true);
CheckEquals(0, AField.FieldSize);
try
AField.InsertRecord(0);
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
try
AField.AsInt64[0];
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
{$IFDEF D6_OR_HIGHER}
try
AField.Value[0];
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
{$ENDIF}
CheckEquals(false, AField.IsNull[1]); // should generate error or not?
AField.Free;
end;
procedure TTestAField.testAFieldInsertRecord2;
var
AField:TAField;
begin
AField := TAField.Create(nil, 'InsertRecord2', ftoDate, 0, true);
CheckEquals(0, AField.FieldSize);
try
AField.InsertRecord(3);
except
on E:Exception do
CheckEquals('Record with index 3 not found !', E.Message);
end;
try
AField.AsDate[0];
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
try
AField.Value[0];
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
CheckEquals(false, AField.IsNull[1]); // should generate error or not?
AField.Free;
end;
procedure TTestAField.testAFieldInsertRecord3;
var
AField:TAField;
begin
AField := TAField.Create(nil, 'InsertRecord3', ftoDateTime, 0, false);
CheckEquals(0, AField.FieldSize);
AField.Allocate;
AField.Allocate;
AField.Allocate;
// CheckEquals(false, AField.IsNull[1]); // should generate error or not?
AField.Free;
end;
procedure TTestAField.testAFieldDeleteRecord1;
var
AField:TAField;
begin
AField := TAField.Create(nil, 'DeleteRecord1', ftoSmallint, 0, false);
try
AField.DeleteRecord(0);
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
try
AField.IsNull[1]; // should generate error or not?
except
on E:Exception do
CheckEquals('Record with index 0 not found !', E.Message);
end;
AField.Free;
end;
initialization
TestFramework.RegisterTest(TTestAField.Suite);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -