xtool/contrib/mORMot/SQLite3/Samples/35 - Practical DDD/04/serv/ServBookTest.pas

67 lines
1.3 KiB
ObjectPascal

/// unit tests for the Booking server
unit ServBookTest;
interface
uses
SysUtils,
Classes,
SynCommons,
SynTests,
mORMot,
DomConferenceTypes,
DomConferenceInterfaces,
DomConferenceServices,
InfraConferenceRepository,
ServBookMain;
type
TTestBookingApplication = class(TSynTestCase)
protected
fSettings: TBookProcessSettings;
fProcess: TBookProcess;
published
procedure RunService;
procedure ApplicationTest;
procedure ShutdownService;
end;
implementation
{ TTestBookingApplication }
procedure TTestBookingApplication.RunService;
begin
fSettings := TBookProcessSettings.Create;
fProcess := TBookProcess.Create(fSettings);
end;
procedure TTestBookingApplication.ApplicationTest;
var
a: TAttendee;
days: TSessionDays;
res: TRegisterAttendee;
begin
a := TAttendee.Create;
try
days := TSessionDay.From([0, 1, 2]);
res := fProcess.Booking.RegisterAttendee('abc', ' def', days, a);
if res = raAlreadyRegistered then // would works only first time
res := fProcess.Booking.RegisterAttendee(CardinalToHex(UnixTimeUTC),
RandomIdentifier(10), days, a);
check(res = raSuccess);
finally
a.Free;
ObjArrayClear(days);
end;
end;
procedure TTestBookingApplication.ShutdownService;
begin
FreeAndNil(fProcess);
FreeAndNil(fSettings);
end;
initialization
end.