mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-16 08:15:53 +01:00
1936fdc225
- cleaning up - added "low-level" serialization based on fields (and not properties) - added $dmvc_classname property handling for fields serialization - added more unittests
113 lines
2.2 KiB
ObjectPascal
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.
|