delphimvcframework/unittests/DMVCFrameworkTests/TestControllersU.pas
daniele.teti 1936fdc225 - refactoring
- cleaning up
- added "low-level" serialization based on fields (and not properties)
- added $dmvc_classname property handling for fields serialization
- added more unittests
2015-02-16 13:25:09 +00:00

113 lines
2.2 KiB
ObjectPascal

unit TestControllersU;
interface
uses MVCFramework.Commons,
System.Classes,
Web.HTTPApp,
MVCFramework;
type
[MVCPath('/')]
TSimpleController = class(TMVCController)
private
FCalledActions: TStringList;
procedure AddCall(ActionName: string);
protected
procedure MVCControllerAfterCreate; override;
procedure MVCControllerBeforeDestroy; override;
public
[MVCPath('/')]
procedure Index(Context: TWebContext);
[MVCPath('/orders')]
[MVCProduces('application/json')]
procedure OrdersProduceJSON(Context: TWebContext);
[MVCPath('/orders')]
procedure Orders(Context: TWebContext);
[MVCHTTPMethod([httpGET])]
[MVCPath('/orders/($ordernumber)')]
procedure OrderNumber(Context: TWebContext);
[MVCHTTPMethod([httpPOST, httpPUT])]
[MVCPath('/orders/($ordernumber)')]
procedure UpdateOrderNumber(Context: TWebContext);
[MVCHTTPMethod([httpPATCH])]
[MVCPath('/orders/($ordernumber)')]
procedure PatchOrder(Context: TWebContext);
property CalledActions: TStringList read FCalledActions; // only for tests
end;
TNotSoSimpleController = class(TMVCController)
public
procedure Method1(CTX: TWebContext);
end;
implementation
{ TSimpleController }
procedure TSimpleController.AddCall(ActionName: string);
begin
FCalledActions.Add(ActionName);
end;
procedure TSimpleController.Index(Context: TWebContext);
begin
AddCall('Index');
end;
procedure TSimpleController.MVCControllerAfterCreate;
begin
inherited;
FCalledActions := TStringList.Create;
end;
procedure TSimpleController.MVCControllerBeforeDestroy;
begin
FCalledActions.Free;
inherited;
end;
procedure TSimpleController.Orders(Context: TWebContext);
begin
end;
procedure TSimpleController.OrdersProduceJSON(Context: TWebContext);
begin
end;
procedure TSimpleController.PatchOrder(Context: TWebContext);
begin
end;
procedure TSimpleController.UpdateOrderNumber(Context: TWebContext);
begin
end;
procedure TSimpleController.OrderNumber(Context: TWebContext);
begin
end;
{ TNotSoSimpleController }
procedure TNotSoSimpleController.Method1(CTX: TWebContext);
begin
end;
end.