84 lines
1.5 KiB
ObjectPascal
84 lines
1.5 KiB
ObjectPascal
/// Conference Domain unit tests
|
|
unit DomConferenceTest;
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils,
|
|
Classes,
|
|
SynCommons,
|
|
SynTests,
|
|
mORMot,
|
|
DomConferenceTypes,
|
|
DomConferenceInterfaces,
|
|
DomConferenceServices,
|
|
DomConferenceDepend;
|
|
|
|
type
|
|
TTestConference = class(TSynTestCase)
|
|
protected
|
|
published
|
|
procedure DomainTypes;
|
|
procedure DomainBooking;
|
|
end;
|
|
|
|
|
|
implementation
|
|
|
|
{ TTestConference }
|
|
|
|
procedure TTestConference.DomainTypes;
|
|
var
|
|
a: TAttendee;
|
|
begin
|
|
a := TAttendee.Create;
|
|
try
|
|
a.FirstName := ' abc';
|
|
a.Name := 'def ';
|
|
a.CleanupName;
|
|
Check(a.FirstName = 'abc');
|
|
Check(a.Name = 'def');
|
|
finally
|
|
a.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestConference.DomainBooking;
|
|
var
|
|
book: IConferenceBooking;
|
|
a: TAttendee;
|
|
days: TSessionDays;
|
|
res: TRegisterAttendee;
|
|
repo: IBookingRepository;
|
|
begin
|
|
TInterfaceStub.Create(IBookingRepository, repo);
|
|
book := TConferenceBooking.Create(repo);
|
|
a := TAttendee.Create;
|
|
try
|
|
res := book.RegisterAttendee('', '', nil, a);
|
|
check(res = raMissingField);
|
|
finally
|
|
a.Free;
|
|
end;
|
|
a := TAttendee.Create;
|
|
try
|
|
res := book.RegisterAttendee('abc', ' def', nil, a);
|
|
check(res = raMissingField);
|
|
finally
|
|
a.Free;
|
|
end;
|
|
a := TAttendee.Create;
|
|
try
|
|
days := TSessionDay.From([0, 1, 2]);
|
|
res := book.RegisterAttendee('abc', ' def', days, a);
|
|
check(res = raSuccess);
|
|
check(a.Name = 'abc');
|
|
check(a.FirstName = 'def');
|
|
finally
|
|
a.Free;
|
|
ObjArrayClear(days);
|
|
end;
|
|
end;
|
|
|
|
initialization
|
|
end. |