/
TestUsingFireDAC.pas
65 lines (49 loc) · 1.52 KB
/
TestUsingFireDAC.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
unit TestUsingFireDAC;
interface
uses
DUnitX.TestFramework, System.IOUtils;
type
[TestFixture]
TestTUsingFireDAC = class
public
[Test]
procedure WhenCreateDbCreateTableInsertRow_ThenRowExists;
end;
implementation
uses
FireDAC.Comp.Client, FireDAC.Phys.SQLiteDef,
System.Classes, Spring.Collections, Exercise, System.DateUtils, SysUtils,
SqliteDatabaseConfiguration;
procedure TestTUsingFireDAC.
WhenCreateDbCreateTableInsertRow_ThenRowExists;
var
Connection: TFDConnection;
Rows: IList<TDateTime>;
Params: TFDPhysSQLiteConnectionDefParams;
Query: TFDQuery;
Value: TDateTime;
begin
DeleteFile(TSqliteDatabaseConfiguration.DatabaseFileName);
Connection := TFDConnection.Create(nil);
Connection.ConnectionDefName := TSqliteDatabaseConfiguration.ConnectionDefinitionName;
Connection.Connected := True;
Connection.ExecSQL('CREATE TABLE IF NOT EXISTS exercises (id INTEGER PRIMARY KEY AUTOINCREMENT, start DATETIME)');
Connection.ExecSQL('INSERT INTO exercises VALUES (NULL, ''2021-10-08T07:00:00.000Z'')');
Query := TFDQuery.Create(nil);
Query.Connection := Connection;
Query.SQL.Text := 'SELECT start FROM exercises';
Query.Open;
Rows := TCollections.CreateList<TDateTime>;
while not Query.Eof do
begin
Value := Query.FieldByName('start').AsDateTime;
Rows.Add(Value);
Query.Next;
end;
Query.Free;
Connection.Free;
Assert.AreEqual(1, Rows.Count, 'unexpected number of entries in DB.');
end;
initialization
TDUnitX.RegisterTestFixture(TestTUsingFireDAC);
end.