⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testafield.pas

📁 delphi通过OCI访问ORACLE
💻 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 + -