Selaa lähdekoodia

fcl-db: tests: formatting + comments

git-svn-id: trunk@23082 -
lacak 12 vuotta sitten
vanhempi
commit
816bee9198
1 muutettua tiedostoa jossa 78 lisäystä ja 67 poistoa
  1. 78 67
      packages/fcl-db/tests/testfieldtypes.pas

+ 78 - 67
packages/fcl-db/tests/testfieldtypes.pas

@@ -50,11 +50,11 @@ type
     procedure TestGetFieldNames;
     procedure TestUpdateIndexDefs;
     procedure TestMultipleFieldPKIndexDefs;
+    procedure TestGetIndexDefs;
     procedure TestSetBlobAsMemoParam;
     procedure TestSetBlobAsBlobParam;
     procedure TestSetBlobAsStringParam;
     procedure TestNonNullableParams;
-    procedure TestGetIndexDefs;
     procedure TestDblQuoteEscComments;
     procedure TestpfInUpdateFlag; // bug 7565
     procedure TestInt;
@@ -567,12 +567,6 @@ begin
     end;
 end;
 
-procedure TTestFieldTypes.TestSetBlobAsStringParam;
-
-begin
-  TestSetBlobAsParam(1);
-end;
-
 
 procedure TTestFieldTypes.TestBlob;
 
@@ -803,6 +797,11 @@ begin
   TestXXParamQuery(ftDate,FieldtypeDefinitions[ftDate],testDateValuesCount);
 end;
 
+procedure TTestFieldTypes.TestCrossStringDateParam;
+begin
+  TestXXParamQuery(ftDate,FieldtypeDefinitions[ftDate],testDateValuesCount,True);
+end;
+
 procedure TTestFieldTypes.TestTimeParamQuery;
 begin
   TestXXParamQuery(ftTime,FieldtypeDefinitions[ftTime],testValuesCount);
@@ -939,10 +938,12 @@ begin
   TSQLDBConnector(DBConnector).Transaction.CommitRetaining;
 end;
 
+
 procedure TTestFieldTypes.TestSetBlobAsParam(asWhat: integer);
+const
+  TestValue='Test deze BLob';
 var
   ASQL          : TSQLQuery;
-
 begin
   CreateTableWithFieldType(ftBlob,FieldtypeDefinitions[ftBlob]);
   TestFieldDeclaration(ftBlob,0);
@@ -952,9 +953,9 @@ begin
     begin
     sql.Text := 'insert into FPDEV2 (FT) values (:BlobParam)';
     case asWhat of
-      0: Params.ParamByName('blobParam').AsMemo := 'Test deze BLob';
-      1: Params.ParamByName('blobParam').AsString := 'Test deze BLob';
-      2: Params.ParamByName('blobParam').AsBlob := 'Test deze BLob';
+      0: Params.ParamByName('blobParam').AsMemo := TestValue;
+      1: Params.ParamByName('blobParam').AsString := TestValue;
+      2: Params.ParamByName('blobParam').AsBlob := TestValue;
     end;
     ExecSQL;
     end;
@@ -963,11 +964,29 @@ begin
     begin
     Open;
     if not eof then
-      AssertEquals('Test deze BLob',fields[0].AsString);
+      AssertEquals(TestValue, Fields[0].AsString);
     close;
     end;
 end;
 
+procedure TTestFieldTypes.TestSetBlobAsMemoParam;
+begin
+  // Firebird/Interbase ODBC driver : if parameter of ValueType=SQL_C_CHAR is bind to BLOB column
+  // driver interprets character data as hexadecimal string and performs conversion ('FF10'=#255#16)
+  TestSetBlobAsParam(0);
+end;
+
+procedure TTestFieldTypes.TestSetBlobAsStringParam;
+begin
+  TestSetBlobAsParam(1);
+end;
+
+procedure TTestFieldTypes.TestSetBlobAsBlobParam;
+begin
+  TestSetBlobAsParam(2);
+end;
+
+
 procedure TTestFieldTypes.TestAggregates;
 begin
   TSQLDBConnector(DBConnector).Connection.ExecuteDirect('create table FPDEV2 (FIELD1 INT, FIELD2 INT)');
@@ -1032,24 +1051,6 @@ begin
     end;
 end;
 
-procedure TTestFieldTypes.SetUp;
-begin
-  InitialiseDBConnector;
-end;
-
-procedure TTestFieldTypes.TearDown;
-begin
-  if assigned(DBConnector) then
-    TSQLDBConnector(DBConnector).Transaction.Rollback;
-  FreeDBConnector;
-end;
-
-procedure TTestFieldTypes.RunTest;
-begin
-//  if (SQLConnType in TSQLConnType) then
-    inherited RunTest;
-end;
-
 procedure TTestFieldTypes.TestQueryAfterReconnect;
 var DS: TDataset;
 begin
@@ -1807,11 +1808,6 @@ begin
   end;
 end;
 
-procedure TTestFieldTypes.TestCrossStringDateParam;
-begin
-  TestXXParamQuery(ftDate,'DATE',testDateValuesCount,True);
-end;
-
 procedure TTestFieldTypes.TestGetFieldNames;
 var FieldNames : TStringList;
 begin
@@ -2066,6 +2062,11 @@ end;
 procedure TTestFieldTypes.TestUpdateIndexDefs;
 var ds : TSQLQuery;
 begin
+  // Firebird/Interbase ODBC driver returns for :
+  //   SQLPrimaryKeys (PK_NAME): RDB$RELATION_CONSTRAINTS(RDB$CONSTRAINT_NAME)
+  //   SQLStatistics (INDEX_NAME): RDB$INDICES(RDB$INDEX_NAME)
+  // these two names can differ (when PRIMARY KEY is created without giving constraint name),
+  // therefore two indexes may be created instead of one (see TODBCConnection.UpdateIndexDefs)
   ds := DBConnector.GetNDataset(1) as TSQLQuery;
   ds.Prepare;
   ds.ServerIndexDefs.Update;
@@ -2099,17 +2100,33 @@ begin
   Asserttrue(ds.ServerIndexDefs[0].Options=[ixPrimary,ixUnique]);
 end;
 
+procedure TTestFieldTypes.TestGetIndexDefs;
 
-procedure TTestFieldTypes.TestSetBlobAsMemoParam;
-begin
-  TestSetBlobAsParam(0);
-end;
+var ds : TSQLQuery;
+    inddefs : TIndexDefs;
 
-procedure TTestFieldTypes.TestSetBlobAsBlobParam;
 begin
-  TestSetBlobAsParam(2);
+  ds := DBConnector.GetNDataset(1) as TSQLQuery;
+  ds.Open;
+  AssertEquals('ServerIndexDefs.Count', 1, ds.ServerIndexDefs.Count);
+  inddefs := HackedDataset(ds).GetIndexDefs(ds.ServerIndexDefs,[ixPrimary]);
+  AssertEquals('ixPrimary', 1, inddefs.count);
+  AssertTrue(CompareText('ID',inddefs[0].Fields)=0);
+  AssertTrue(inddefs[0].Options=[ixPrimary,ixUnique]);
+  inddefs.Free;
+
+  inddefs := HackedDataset(ds).GetIndexDefs(ds.ServerIndexDefs,[ixPrimary,ixUnique]);
+  AssertEquals('ixPrimary,ixUnique', 1, inddefs.count);
+  AssertTrue(CompareText('ID',inddefs[0].Fields)=0);
+  AssertTrue(inddefs[0].Options=[ixPrimary,ixUnique]);
+  inddefs.Free;
+
+  inddefs := HackedDataset(ds).GetIndexDefs(ds.ServerIndexDefs,[ixDescending]);
+  AssertEquals('ixDescending', 0, inddefs.count);
+  inddefs.Free;
 end;
 
+
 procedure TTestFieldTypes.TestTemporaryTable;
 begin
   // Tests rev.6481: "Do not use a new connection for every statement that is executed";
@@ -2147,32 +2164,6 @@ begin
     end;
 end;
 
-procedure TTestFieldTypes.TestGetIndexDefs;
-
-var ds : TSQLQuery;
-    inddefs : TIndexDefs;
-
-begin
-  ds := DBConnector.GetNDataset(1) as TSQLQuery;
-  ds.Open;
-  AssertEquals('ServerIndexDefs.Count', 1, ds.ServerIndexDefs.Count);
-  inddefs := HackedDataset(ds).GetIndexDefs(ds.ServerIndexDefs,[ixPrimary]);
-  AssertEquals('ixPrimary', 1, inddefs.count);
-  AssertTrue(CompareText('ID',inddefs[0].Fields)=0);
-  AssertTrue(inddefs[0].Options=[ixPrimary,ixUnique]);
-  inddefs.Free;
-
-  inddefs := HackedDataset(ds).GetIndexDefs(ds.ServerIndexDefs,[ixPrimary,ixUnique]);
-  AssertEquals('ixPrimary,ixUnique', 1, inddefs.count);
-  AssertTrue(CompareText('ID',inddefs[0].Fields)=0);
-  AssertTrue(inddefs[0].Options=[ixPrimary,ixUnique]);
-  inddefs.Free;
-
-  inddefs := HackedDataset(ds).GetIndexDefs(ds.ServerIndexDefs,[ixDescending]);
-  AssertEquals('ixDescending', 0, inddefs.count);
-  inddefs.Free;
-end;
-
 procedure TTestFieldTypes.TestDblQuoteEscComments;
 begin
   with TSQLDBConnector(DBConnector).Query do
@@ -2259,6 +2250,26 @@ begin
     end;
 end;
 
+
+procedure TTestFieldTypes.SetUp;
+begin
+  InitialiseDBConnector;
+end;
+
+procedure TTestFieldTypes.TearDown;
+begin
+  if assigned(DBConnector) then
+    TSQLDBConnector(DBConnector).Transaction.Rollback;
+  FreeDBConnector;
+end;
+
+procedure TTestFieldTypes.RunTest;
+begin
+//  if (SQLConnType in TSQLConnType) then
+    inherited RunTest;
+end;
+
+
 initialization
   if uppercase(dbconnectorname)='SQL' then RegisterTest(TTestFieldTypes);
 end.