mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-15 07:45:54 +01:00
This commit is contained in:
parent
c03315077e
commit
0023ebe32c
10
README.md
10
README.md
@ -1423,16 +1423,22 @@ The current beta release is named 3.2.3-radium-beta. If you want to stay on the-
|
||||
|
||||
- mid-air-collision handling now uses SHA1 instead of MD5
|
||||
|
||||
- Added `MVCFramework.Commons.MVC_HTTP_STATUS_CODES` const array containing all the HTTP status codes with its `ReasonString`
|
||||
- Added `MVCFramework.Commons.MVC_HTTP_STATUS_CODES` const array containing all the HTTP status codes with its `ReasonString`.
|
||||
|
||||
- Support for `TObject` descendants in JSONRPC APIs (not only for JSONObject and JSONArray).
|
||||
|
||||
- New global configuration variable `MVCSerializeNulls`.
|
||||
When MVCSerializeNulls = True (default) empty nullables and nil are serialized as json null.
|
||||
When MVCSerializeNulls = False empty nullables and nil are not serialized at all.
|
||||
|
||||
- Nullable types now have `Equal` support and a better "equality check" strategy.
|
||||
- Nullable types now have `Equal` method support, the new method `TryHasValue(out Value)` works like `HasValue` but returns the contained value if present. Also there is a better "equality check" strategy.
|
||||
|
||||
- Unit tests now are always executed for Win32 and Win64 bit (both client and server).
|
||||
|
||||
- Added `TMVCActiveRecord.Refresh` method
|
||||
|
||||
- Unit test suites generates one NUnit XML output file for each platform
|
||||
|
||||
- New built-in profiler (usable with Delphi 10.4+) - to profile a block of code, write the following
|
||||
|
||||
```delphi
|
||||
|
@ -258,6 +258,15 @@ object MainForm: TMainForm
|
||||
TabOrder = 24
|
||||
OnClick = btnSpeedClick
|
||||
end
|
||||
object btnRefresh: TButton
|
||||
Left = 144
|
||||
Top = 442
|
||||
Width = 121
|
||||
Height = 34
|
||||
Caption = 'Manual Refresh'
|
||||
TabOrder = 25
|
||||
OnClick = btnRefreshClick
|
||||
end
|
||||
object FDConnection1: TFDConnection
|
||||
Left = 312
|
||||
Top = 40
|
||||
|
@ -57,6 +57,7 @@ type
|
||||
btnOOP: TButton;
|
||||
btnReadOnly: TButton;
|
||||
btnSpeed: TButton;
|
||||
btnRefresh: TButton;
|
||||
procedure btnCRUDClick(Sender: TObject);
|
||||
procedure btnInheritanceClick(Sender: TObject);
|
||||
procedure btnMultiThreadingClick(Sender: TObject);
|
||||
@ -84,6 +85,7 @@ type
|
||||
procedure btnOOPClick(Sender: TObject);
|
||||
procedure btnReadOnlyClick(Sender: TObject);
|
||||
procedure btnSpeedClick(Sender: TObject);
|
||||
procedure btnRefreshClick(Sender: TObject);
|
||||
private
|
||||
procedure Log(const Value: string);
|
||||
procedure LoadCustomers;
|
||||
@ -1467,6 +1469,44 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainForm.btnRefreshClick(Sender: TObject);
|
||||
var
|
||||
lCustomer: TCustomer;
|
||||
lID: Integer;
|
||||
begin
|
||||
Log('** Refresh test');
|
||||
lCustomer := TCustomer.Create;
|
||||
try
|
||||
Log('Entity ' + TCustomer.ClassName + ' is mapped to table ' + lCustomer.TableName);
|
||||
lCustomer.CompanyName := 'Google Inc.';
|
||||
lCustomer.City := 'Montain View, CA';
|
||||
lCustomer.Note := 'Μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος οὐλομένην 😁';
|
||||
lCustomer.Insert;
|
||||
Assert('Montain View, CA' = lCustomer.City);
|
||||
Assert('Μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος οὐλομένην 😁' = lCustomer.Note);
|
||||
lCustomer.City := '';
|
||||
lCustomer.Note := '';
|
||||
Log('Refreshing the customer');
|
||||
lCustomer.Refresh;
|
||||
Assert('Montain View, CA' = lCustomer.City);
|
||||
Assert('Μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος οὐλομένην 😁' = lCustomer.Note);
|
||||
lID := lCustomer.ID;
|
||||
finally
|
||||
lCustomer.Free;
|
||||
end;
|
||||
|
||||
lCustomer := TCustomer.Create;
|
||||
try
|
||||
Log('Loading customer using Refresh');
|
||||
lCustomer.ID := lID;
|
||||
lCustomer.Refresh;
|
||||
Assert('Montain View, CA' = lCustomer.City);
|
||||
Assert('Μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος οὐλομένην 😁' = lCustomer.Note);
|
||||
finally
|
||||
lCustomer.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainForm.btnValidationClick(Sender: TObject);
|
||||
var
|
||||
lCustomer: TCustomerWithLogic;
|
||||
|
@ -220,12 +220,12 @@
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule"/>
|
||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule"/>
|
||||
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgsqlite3.dylib" Class="DependencyModule"/>
|
||||
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||
<Platform Name="OSX32">
|
||||
|
@ -195,7 +195,6 @@ type
|
||||
fDefaultRQLFilter: string;
|
||||
fMap: TFieldsMap;
|
||||
fPrimaryKey: TRTTIField;
|
||||
//fBackendDriver: string;
|
||||
fMapping: TMVCFieldsMapping;
|
||||
fPropsAttributes: TArray<TCustomAttribute>;
|
||||
fProps: TArray<TRTTIField>;
|
||||
@ -224,25 +223,7 @@ type
|
||||
procedure SetAttributes(const AttrName: string; const Value: TValue);
|
||||
function GetTableName: string;
|
||||
protected
|
||||
// fPrimaryKeyFieldName: string;
|
||||
// fPrimaryKeyOptions: TMVCActiveRecordFieldOptions;
|
||||
// fPrimaryKeySequenceName: string;
|
||||
// fPrimaryKeyFieldType: TFieldType;
|
||||
// fEntityAllowedActions: TMVCEntityActions;
|
||||
// fRTTIType: TRttiInstanceType;
|
||||
// fObjAttributes: TArray<TCustomAttribute>;
|
||||
// fTableName: string;
|
||||
// fDefaultRQLFilter: string;
|
||||
// fMap: TFieldsMap;
|
||||
// fPrimaryKey: TRTTIField;
|
||||
fBackendDriver: string;
|
||||
// fMapping: TMVCFieldsMapping;
|
||||
// fPropsAttributes: TArray<TCustomAttribute>;
|
||||
// fProps: TArray<TRTTIField>;
|
||||
|
||||
// fPartitionInfoInternal: TPartitionInfo;
|
||||
// fPartitionClause: String;
|
||||
|
||||
fTableMap: TMVCTableMap;
|
||||
function GetPartitionInfo: TPartitionInfo;
|
||||
function GetBackEnd: string;
|
||||
@ -280,6 +261,7 @@ type
|
||||
class function GetByPK(aActiveRecord: TMVCActiveRecord; const aValue: string; const aFieldType: TFieldType;
|
||||
const RaiseExceptionIfNotFound: Boolean): TMVCActiveRecord; overload;
|
||||
|
||||
|
||||
// load events
|
||||
/// <summary>
|
||||
/// Called everywhere before persist object into database
|
||||
@ -364,6 +346,10 @@ type
|
||||
/// Executes an Insert (pk is null) or an Update (pk is not null)
|
||||
/// </summary>
|
||||
procedure Store;
|
||||
/// <summary>
|
||||
/// Reload the current instance from database if the primary key is not empty.
|
||||
/// </summary>
|
||||
procedure Refresh; virtual;
|
||||
function CheckAction(const aEntityAction: TMVCEntityAction;
|
||||
const aRaiseException: Boolean = True): Boolean;
|
||||
procedure Insert;
|
||||
@ -2381,6 +2367,29 @@ begin
|
||||
// do nothing
|
||||
end;
|
||||
|
||||
procedure TMVCActiveRecord.Refresh;
|
||||
begin
|
||||
if not GetPK.IsEmpty then
|
||||
begin
|
||||
case GetPrimaryKeyFieldType of
|
||||
ftLargeInt: begin
|
||||
LoadByPK(GetPK.AsInt64);
|
||||
end;
|
||||
ftInteger: begin
|
||||
LoadByPK(GetPK.AsInteger);
|
||||
end;
|
||||
ftString: begin
|
||||
LoadByPK(GetPK.AsString);
|
||||
end;
|
||||
ftGuid: begin
|
||||
LoadByPK(GetPK.AsType<TGUID>);
|
||||
end;
|
||||
else
|
||||
raise EMVCActiveRecord.Create('Unknown primary key type');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMVCActiveRecord.RemoveChildren(const ChildObject: TObject);
|
||||
begin
|
||||
if fChildren <> nil then
|
||||
@ -2885,51 +2894,35 @@ begin
|
||||
begin
|
||||
if Value.IsType<NullableInt32>() then
|
||||
begin
|
||||
Result := Value.AsType<NullableInt32>().HasValue;
|
||||
if Result then
|
||||
Value := Value.AsType<NullableInt32>().Value;
|
||||
Result := Value.AsType<NullableInt32>().TryHasValue(Value);
|
||||
end
|
||||
else if Value.IsType<NullableInt64>() then
|
||||
begin
|
||||
Result := Value.AsType<NullableInt64>().HasValue;
|
||||
if Result then
|
||||
Value := Value.AsType<NullableInt64>().Value;
|
||||
Result := Value.AsType<NullableInt64>().TryHasValue(Value)
|
||||
end
|
||||
else if Value.IsType<NullableUInt32>() then
|
||||
begin
|
||||
Result := Value.AsType<NullableUInt32>().HasValue;
|
||||
if Result then
|
||||
Value := Value.AsType<NullableUInt32>().Value;
|
||||
Result := Value.AsType<NullableUInt32>().TryHasValue(Value)
|
||||
end
|
||||
else if Value.IsType<NullableUInt64>() then
|
||||
begin
|
||||
Result := Value.AsType<NullableUInt64>().HasValue;
|
||||
if Result then
|
||||
Value := Value.AsType<NullableUInt64>().Value;
|
||||
Result := Value.AsType<NullableUInt64>().TryHasValue(Value)
|
||||
end
|
||||
else if Value.IsType<NullableInt16>() then
|
||||
begin
|
||||
Result := Value.AsType<NullableInt16>().HasValue;
|
||||
if Result then
|
||||
Value := Value.AsType<NullableInt16>().Value;
|
||||
Result := Value.AsType<NullableInt16>().TryHasValue(Value)
|
||||
end
|
||||
else if Value.IsType<NullableUInt16>() then
|
||||
begin
|
||||
Result := Value.AsType<NullableUInt16>().HasValue;
|
||||
if Result then
|
||||
Value := Value.AsType<NullableUInt16>().Value;
|
||||
Result := Value.AsType<NullableUInt16>().TryHasValue(Value)
|
||||
end
|
||||
else if Value.IsType<NullableString>() then
|
||||
begin
|
||||
Result := Value.AsType<NullableString>().HasValue;
|
||||
if Result then
|
||||
Value := Value.AsType<NullableString>().Value;
|
||||
Result := Value.AsType<NullableString>().TryHasValue(Value)
|
||||
end
|
||||
else if Value.IsType<NullableTGUID>() then
|
||||
begin
|
||||
Result := Value.AsType<NullableTGUID>().HasValue;
|
||||
if Result then
|
||||
Value := TValue.From<TGuid>(Value.AsType<NullableTGUID>().Value);
|
||||
Result := Value.AsType<NullableTGUID>().TryHasValue(Value)
|
||||
end
|
||||
else
|
||||
raise EMVCActiveRecord.Create
|
||||
|
@ -32,7 +32,7 @@ unit MVCFramework.Nullables;
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Classes, System.TypInfo;
|
||||
System.SysUtils, System.Classes, System.TypInfo, System.RTTI;
|
||||
|
||||
type
|
||||
EMVCNullable = class(Exception)
|
||||
@ -56,7 +56,7 @@ type
|
||||
class operator Implicit(const Value: String): NullableString;
|
||||
class operator Implicit(const Value: NullableString): String;
|
||||
class operator Implicit(const Value: Pointer): NullableString;
|
||||
class operator Equal(LeftValue: NullableString; RightValue: NullableString) : Boolean;
|
||||
class operator Equal(LeftValue: NullableString; RightValue: NullableString) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableString contains a value
|
||||
///</summary>
|
||||
@ -82,6 +82,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableString): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: String): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: String read GetValue write SetValue;
|
||||
@ -104,7 +112,7 @@ type
|
||||
class operator Implicit(const Value: Currency): NullableCurrency;
|
||||
class operator Implicit(const Value: NullableCurrency): Currency;
|
||||
class operator Implicit(const Value: Pointer): NullableCurrency;
|
||||
class operator Equal(LeftValue: NullableCurrency; RightValue: NullableCurrency) : Boolean;
|
||||
class operator Equal(LeftValue: NullableCurrency; RightValue: NullableCurrency) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableCurrency contains a value
|
||||
///</summary>
|
||||
@ -130,6 +138,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableCurrency): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: Currency): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: Currency read GetValue write SetValue;
|
||||
@ -152,7 +168,7 @@ type
|
||||
class operator Implicit(const Value: Boolean): NullableBoolean;
|
||||
class operator Implicit(const Value: NullableBoolean): Boolean;
|
||||
class operator Implicit(const Value: Pointer): NullableBoolean;
|
||||
class operator Equal(LeftValue: NullableBoolean; RightValue: NullableBoolean) : Boolean;
|
||||
class operator Equal(LeftValue: NullableBoolean; RightValue: NullableBoolean) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableBoolean contains a value
|
||||
///</summary>
|
||||
@ -178,6 +194,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableBoolean): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: Boolean): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: Boolean read GetValue write SetValue;
|
||||
@ -200,7 +224,7 @@ type
|
||||
class operator Implicit(const Value: TDate): NullableTDate;
|
||||
class operator Implicit(const Value: NullableTDate): TDate;
|
||||
class operator Implicit(const Value: Pointer): NullableTDate;
|
||||
class operator Equal(LeftValue: NullableTDate; RightValue: NullableTDate) : Boolean;
|
||||
class operator Equal(LeftValue: NullableTDate; RightValue: NullableTDate) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableTDate contains a value
|
||||
///</summary>
|
||||
@ -226,6 +250,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableTDate): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TDate): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: TDate read GetValue write SetValue;
|
||||
@ -248,7 +280,7 @@ type
|
||||
class operator Implicit(const Value: TTime): NullableTTime;
|
||||
class operator Implicit(const Value: NullableTTime): TTime;
|
||||
class operator Implicit(const Value: Pointer): NullableTTime;
|
||||
class operator Equal(LeftValue: NullableTTime; RightValue: NullableTTime) : Boolean;
|
||||
class operator Equal(LeftValue: NullableTTime; RightValue: NullableTTime) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableTTime contains a value
|
||||
///</summary>
|
||||
@ -274,6 +306,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableTTime): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TTime): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: TTime read GetValue write SetValue;
|
||||
@ -296,7 +336,7 @@ type
|
||||
class operator Implicit(const Value: TDateTime): NullableTDateTime;
|
||||
class operator Implicit(const Value: NullableTDateTime): TDateTime;
|
||||
class operator Implicit(const Value: Pointer): NullableTDateTime;
|
||||
class operator Equal(LeftValue: NullableTDateTime; RightValue: NullableTDateTime) : Boolean;
|
||||
class operator Equal(LeftValue: NullableTDateTime; RightValue: NullableTDateTime) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableTDateTime contains a value
|
||||
///</summary>
|
||||
@ -322,6 +362,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableTDateTime): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TDateTime): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: TDateTime read GetValue write SetValue;
|
||||
@ -344,7 +392,7 @@ type
|
||||
class operator Implicit(const Value: Single): NullableSingle;
|
||||
class operator Implicit(const Value: NullableSingle): Single;
|
||||
class operator Implicit(const Value: Pointer): NullableSingle;
|
||||
class operator Equal(LeftValue: NullableSingle; RightValue: NullableSingle) : Boolean;
|
||||
class operator Equal(LeftValue: NullableSingle; RightValue: NullableSingle) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableSingle contains a value
|
||||
///</summary>
|
||||
@ -370,6 +418,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableSingle): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: Single): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: Single read GetValue write SetValue;
|
||||
@ -392,7 +448,7 @@ type
|
||||
class operator Implicit(const Value: Double): NullableDouble;
|
||||
class operator Implicit(const Value: NullableDouble): Double;
|
||||
class operator Implicit(const Value: Pointer): NullableDouble;
|
||||
class operator Equal(LeftValue: NullableDouble; RightValue: NullableDouble) : Boolean;
|
||||
class operator Equal(LeftValue: NullableDouble; RightValue: NullableDouble) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableDouble contains a value
|
||||
///</summary>
|
||||
@ -418,6 +474,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableDouble): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: Double): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: Double read GetValue write SetValue;
|
||||
@ -440,7 +504,7 @@ type
|
||||
class operator Implicit(const Value: Extended): NullableExtended;
|
||||
class operator Implicit(const Value: NullableExtended): Extended;
|
||||
class operator Implicit(const Value: Pointer): NullableExtended;
|
||||
class operator Equal(LeftValue: NullableExtended; RightValue: NullableExtended) : Boolean;
|
||||
class operator Equal(LeftValue: NullableExtended; RightValue: NullableExtended) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableExtended contains a value
|
||||
///</summary>
|
||||
@ -466,6 +530,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableExtended): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: Extended): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: Extended read GetValue write SetValue;
|
||||
@ -488,7 +560,7 @@ type
|
||||
class operator Implicit(const Value: Int16): NullableInt16;
|
||||
class operator Implicit(const Value: NullableInt16): Int16;
|
||||
class operator Implicit(const Value: Pointer): NullableInt16;
|
||||
class operator Equal(LeftValue: NullableInt16; RightValue: NullableInt16) : Boolean;
|
||||
class operator Equal(LeftValue: NullableInt16; RightValue: NullableInt16) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableInt16 contains a value
|
||||
///</summary>
|
||||
@ -514,6 +586,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableInt16): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: Int16): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: Int16 read GetValue write SetValue;
|
||||
@ -536,7 +616,7 @@ type
|
||||
class operator Implicit(const Value: UInt16): NullableUInt16;
|
||||
class operator Implicit(const Value: NullableUInt16): UInt16;
|
||||
class operator Implicit(const Value: Pointer): NullableUInt16;
|
||||
class operator Equal(LeftValue: NullableUInt16; RightValue: NullableUInt16) : Boolean;
|
||||
class operator Equal(LeftValue: NullableUInt16; RightValue: NullableUInt16) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableUInt16 contains a value
|
||||
///</summary>
|
||||
@ -562,6 +642,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableUInt16): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: UInt16): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: UInt16 read GetValue write SetValue;
|
||||
@ -584,7 +672,7 @@ type
|
||||
class operator Implicit(const Value: Int32): NullableInt32;
|
||||
class operator Implicit(const Value: NullableInt32): Int32;
|
||||
class operator Implicit(const Value: Pointer): NullableInt32;
|
||||
class operator Equal(LeftValue: NullableInt32; RightValue: NullableInt32) : Boolean;
|
||||
class operator Equal(LeftValue: NullableInt32; RightValue: NullableInt32) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableInt32 contains a value
|
||||
///</summary>
|
||||
@ -610,6 +698,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableInt32): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: Int32): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: Int32 read GetValue write SetValue;
|
||||
@ -632,7 +728,7 @@ type
|
||||
class operator Implicit(const Value: UInt32): NullableUInt32;
|
||||
class operator Implicit(const Value: NullableUInt32): UInt32;
|
||||
class operator Implicit(const Value: Pointer): NullableUInt32;
|
||||
class operator Equal(LeftValue: NullableUInt32; RightValue: NullableUInt32) : Boolean;
|
||||
class operator Equal(LeftValue: NullableUInt32; RightValue: NullableUInt32) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableUInt32 contains a value
|
||||
///</summary>
|
||||
@ -658,6 +754,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableUInt32): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: UInt32): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: UInt32 read GetValue write SetValue;
|
||||
@ -680,7 +784,7 @@ type
|
||||
class operator Implicit(const Value: Int64): NullableInt64;
|
||||
class operator Implicit(const Value: NullableInt64): Int64;
|
||||
class operator Implicit(const Value: Pointer): NullableInt64;
|
||||
class operator Equal(LeftValue: NullableInt64; RightValue: NullableInt64) : Boolean;
|
||||
class operator Equal(LeftValue: NullableInt64; RightValue: NullableInt64) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableInt64 contains a value
|
||||
///</summary>
|
||||
@ -706,6 +810,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableInt64): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: Int64): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: Int64 read GetValue write SetValue;
|
||||
@ -728,7 +840,7 @@ type
|
||||
class operator Implicit(const Value: UInt64): NullableUInt64;
|
||||
class operator Implicit(const Value: NullableUInt64): UInt64;
|
||||
class operator Implicit(const Value: Pointer): NullableUInt64;
|
||||
class operator Equal(LeftValue: NullableUInt64; RightValue: NullableUInt64) : Boolean;
|
||||
class operator Equal(LeftValue: NullableUInt64; RightValue: NullableUInt64) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableUInt64 contains a value
|
||||
///</summary>
|
||||
@ -754,6 +866,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableUInt64): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: UInt64): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: UInt64 read GetValue write SetValue;
|
||||
@ -776,7 +896,7 @@ type
|
||||
class operator Implicit(const Value: TGUID): NullableTGUID;
|
||||
class operator Implicit(const Value: NullableTGUID): TGUID;
|
||||
class operator Implicit(const Value: Pointer): NullableTGUID;
|
||||
class operator Equal(LeftValue: NullableTGUID; RightValue: NullableTGUID) : Boolean;
|
||||
class operator Equal(LeftValue: NullableTGUID; RightValue: NullableTGUID) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the NullableTGUID contains a value
|
||||
///</summary>
|
||||
@ -802,6 +922,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: NullableTGUID): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TGUID): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: TGUID read GetValue write SetValue;
|
||||
@ -845,6 +973,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableString.TryHasValue(out Value: String): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableString.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<String>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableString.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -935,6 +1082,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableCurrency.TryHasValue(out Value: Currency): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableCurrency.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<Currency>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableCurrency.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1025,6 +1191,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableBoolean.TryHasValue(out Value: Boolean): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableBoolean.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<Boolean>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableBoolean.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1115,6 +1300,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableTDate.TryHasValue(out Value: TDate): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableTDate.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<TDate>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableTDate.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1205,6 +1409,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableTTime.TryHasValue(out Value: TTime): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableTTime.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<TTime>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableTTime.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1295,6 +1518,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableTDateTime.TryHasValue(out Value: TDateTime): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableTDateTime.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<TDateTime>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableTDateTime.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1385,6 +1627,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableSingle.TryHasValue(out Value: Single): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableSingle.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<Single>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableSingle.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1475,6 +1736,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableDouble.TryHasValue(out Value: Double): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableDouble.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<Double>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableDouble.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1565,6 +1845,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableExtended.TryHasValue(out Value: Extended): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableExtended.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<Extended>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableExtended.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1655,6 +1954,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableInt16.TryHasValue(out Value: Int16): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableInt16.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<Int16>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableInt16.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1744,6 +2062,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableUInt16.TryHasValue(out Value: UInt16): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableUInt16.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<UInt16>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableUInt16.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1833,6 +2170,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableInt32.TryHasValue(out Value: Int32): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableInt32.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<Int32>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableInt32.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -1922,6 +2278,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableUInt32.TryHasValue(out Value: UInt32): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableUInt32.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<UInt32>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableUInt32.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -2011,6 +2386,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableInt64.TryHasValue(out Value: Int64): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableInt64.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<Int64>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableInt64.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -2100,6 +2494,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableUInt64.TryHasValue(out Value: UInt64): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableUInt64.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<UInt64>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableUInt64.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
@ -2189,6 +2602,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableTGUID.TryHasValue(out Value: TGUID): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NullableTGUID.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<TGUID>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure NullableTGUID.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
|
@ -32,7 +32,7 @@ unit MVCFramework.Nullables;
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Classes, System.TypInfo;
|
||||
System.SysUtils, System.Classes, System.TypInfo, System.RTTI;
|
||||
|
||||
type
|
||||
EMVCNullable = class(Exception)
|
||||
@ -53,7 +53,7 @@ type
|
||||
class operator Implicit(const Value: $TYPE$): Nullable$TYPE$;
|
||||
class operator Implicit(const Value: Nullable$TYPE$): $TYPE$;
|
||||
class operator Implicit(const Value: Pointer): Nullable$TYPE$;
|
||||
class operator Equal(LeftValue: Nullable$TYPE$; RightValue: Nullable$TYPE$) : Boolean;
|
||||
class operator Equal(LeftValue: Nullable$TYPE$; RightValue: Nullable$TYPE$) : Boolean;
|
||||
///<summary>
|
||||
///Returns `True` if the Nullable$TYPE$ contains a value
|
||||
///</summary>
|
||||
@ -79,6 +79,14 @@ type
|
||||
/// </summary>
|
||||
function Equals(const Value: Nullable$TYPE$): Boolean;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: $TYPE$): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns true if the nullable contains a value and returns the contained value in the out Value parameter.
|
||||
///</summary>
|
||||
function TryHasValue(out Value: TValue): Boolean; overload;
|
||||
///<summary>
|
||||
///Returns the value stored or raises exception if no value is stored
|
||||
///</summary>
|
||||
property Value: $TYPE$ read GetValue write SetValue;
|
||||
@ -103,6 +111,25 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function Nullable$TYPE$.TryHasValue(out Value: $TYPE$): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := fValue;
|
||||
end;
|
||||
end;
|
||||
|
||||
function Nullable$TYPE$.TryHasValue(out Value: TValue): Boolean;
|
||||
begin
|
||||
Result := HasValue;
|
||||
if Result then
|
||||
begin
|
||||
Value := TValue.From<$TYPE$>(fValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure Nullable$TYPE$.Clear;
|
||||
begin
|
||||
SetNull;
|
||||
|
@ -52,6 +52,8 @@ type
|
||||
[Test]
|
||||
procedure TestCRUD;
|
||||
[Test]
|
||||
procedure TestRefresh;
|
||||
[Test]
|
||||
procedure Test_ISSUE485;
|
||||
[Test]
|
||||
procedure TestDeleteIfNotFound;
|
||||
@ -1488,8 +1490,7 @@ begin
|
||||
CreateACustomer('New York 1', 'New York', 5);
|
||||
CreateACustomer('Toyko 1', 'Tokyo', 4);
|
||||
|
||||
var
|
||||
lRomeCustomer := TMVCActiveRecord.SelectOneByRQL<TRomeBasedCustomer>('contains(CompanyName,"1")');
|
||||
var lRomeCustomer := TMVCActiveRecord.SelectOneByRQL<TRomeBasedCustomer>('contains(CompanyName,"1")');
|
||||
try
|
||||
Assert.IsNotNull(lRomeCustomer);
|
||||
finally
|
||||
@ -1513,6 +1514,48 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestActiveRecordBase.TestRefresh;
|
||||
var
|
||||
lCustomer: TCustomer;
|
||||
lID: Integer;
|
||||
begin
|
||||
Assert.AreEqual(Int64(0), TMVCActiveRecord.Count<TCustomer>());
|
||||
lCustomer := TCustomer.Create;
|
||||
try
|
||||
lCustomer.CompanyName := 'bit Time Professionals';
|
||||
lCustomer.City := 'Rome, IT';
|
||||
lCustomer.Note := 'note1';
|
||||
lCustomer.CreationTime := Time;
|
||||
lCustomer.CreationDate := Date;
|
||||
lCustomer.ID := -1; { don't be fooled by the default! }
|
||||
lCustomer.Insert;
|
||||
lID := lCustomer.ID;
|
||||
Assert.AreEqual(1, lID);
|
||||
lCustomer.CompanyName.Clear;
|
||||
lCustomer.City := '';
|
||||
lCustomer.Note := '';
|
||||
lCustomer.CreationTime := 0;
|
||||
lCustomer.CreationDate := 0;
|
||||
lCustomer.Refresh;
|
||||
Assert.AreEqual('bit Time Professionals', lCustomer.CompanyName.ValueOrDefault);
|
||||
Assert.AreEqual('Rome, IT', lCustomer.City);
|
||||
Assert.AreEqual('note1', lCustomer.Note);
|
||||
finally
|
||||
lCustomer.Free;
|
||||
end;
|
||||
|
||||
lCustomer := TCustomer.Create;
|
||||
try
|
||||
lCustomer.ID := lID;
|
||||
lCustomer.Refresh;
|
||||
Assert.AreEqual('bit Time Professionals', lCustomer.CompanyName.ValueOrDefault);
|
||||
Assert.AreEqual('Rome, IT', lCustomer.City);
|
||||
Assert.AreEqual('note1', lCustomer.Note);
|
||||
finally
|
||||
lCustomer.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestActiveRecordBase.TestRQL;
|
||||
var
|
||||
lCustomers: TObjectList<TCustomer>;
|
||||
|
@ -8,9 +8,11 @@ program DMVCFrameworkTests;
|
||||
|
||||
uses
|
||||
System.SysUtils,
|
||||
System.IOUtils,
|
||||
DUnitX.TestFramework,
|
||||
{$IFDEF CONSOLE_TESTRUNNER}
|
||||
DUnitX.Loggers.Console,
|
||||
DUnitX.Loggers.XML.NUnit,
|
||||
{$ENDIF }
|
||||
{$IFDEF TESTINSIGHT}
|
||||
TestInsight.DUnitX,
|
||||
@ -83,6 +85,7 @@ var
|
||||
runner: ITestRunner;
|
||||
results: IRunResults;
|
||||
logger: ITestLogger;
|
||||
OutputNUnitFolder: String;
|
||||
begin
|
||||
try
|
||||
// Check command line options, will exit if invalid
|
||||
@ -95,9 +98,25 @@ begin
|
||||
// Log to the console window
|
||||
logger := TDUnitXConsoleLogger.Create(True);
|
||||
runner.AddLogger(logger);
|
||||
|
||||
// Generate an NUnit compatible XML File
|
||||
// nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
|
||||
// runner.AddLogger(nunitLogger);
|
||||
if TDUnitX.Options.XMLOutputFile.IsEmpty then
|
||||
begin
|
||||
OutputNUnitFolder := TPath.Combine(
|
||||
TDirectory.GetParent(TDirectory.GetParent(TDirectory.GetParent(AppPath))), 'UnitTestReports');
|
||||
TDirectory.CreateDirectory(OutputNUnitFolder);
|
||||
{$if defined(win32)}
|
||||
TDUnitX.Options.XMLOutputFile := TPath.Combine(OutputNUnitFolder,'dmvcframework_nunit_win32.xml');
|
||||
{$endif}
|
||||
{$if defined(win64)}
|
||||
TDUnitX.Options.XMLOutputFile := TPath.Combine(OutputNUnitFolder, 'dmvcframework_nunit_win64.xml');
|
||||
{$endif}
|
||||
{$if defined(linux64)}
|
||||
TDUnitX.Options.XMLOutputFile := TPath.Combine(OutputNUnitFolder, 'dmvcframework_nunit_linux64.xml');
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
runner.AddLogger(TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile));
|
||||
runner.FailsOnNoAsserts := False; // When true, Assertions must be made during tests;
|
||||
|
||||
// Run tests
|
||||
|
@ -236,7 +236,6 @@
|
||||
<DCCReference Include="StandaloneServerTestU.pas"/>
|
||||
<DCCReference Include="webmodules\StandAloneServerWebModuleTest.pas">
|
||||
<Form>TestWebModule2</Form>
|
||||
<FormType>dfm</FormType>
|
||||
<DesignClass>TWebModule</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="..\..\..\sources\MVCFramework.Commons.pas"/>
|
||||
|
1001
unittests/general/UnitTestReports/dmvcframework_nunit_win32.xml
Normal file
1001
unittests/general/UnitTestReports/dmvcframework_nunit_win32.xml
Normal file
File diff suppressed because it is too large
Load Diff
997
unittests/general/UnitTestReports/dmvcframework_nunit_win64.xml
Normal file
997
unittests/general/UnitTestReports/dmvcframework_nunit_win64.xml
Normal file
@ -0,0 +1,997 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<test-results name="C:\DEV\dmvcframework\unittests\general\Several\bin64\DMVCFrameworkTests.exe" total="451" errors="0" failures="0" ignored="0" inconclusive="0" not-run="0" skipped="0" invalid="0" date="2023-01-29" time="32.528">
|
||||
<culture-info current-culture="en" current-uiculture="en" />
|
||||
<test-suite type="Assembly" name="DMVCFrameworkTests.exe" executed="true" result="Success" success="True" time="32.528" asserts="0">
|
||||
<results>
|
||||
<test-suite type="Namespace" name="StandaloneServerTestU" executed="true" result="Success" success="True" time="32.527" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TTestServerContainer" executed="True" result="Success" success="True" time="32.527" >
|
||||
<results>
|
||||
<test-case name="TestListener" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestListenerContext" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestServerListenerAndClient" executed="True" result="Success" success="True" time="0.035" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="ObjectPoolTestU" executed="true" result="Success" success="True" time="32.485" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TTestTObjectPool" executed="True" result="Success" success="True" time="32.485" >
|
||||
<results>
|
||||
<test-case name="TestFixedSize" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestGrowing" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestFactory" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestMultiThreading" executed="True" result="Success" success="True" time="1.010" asserts="0" />
|
||||
<test-case name="TestRaiseExceptionWhenPoolIsEmpty" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestNotRaiseExceptionWhenPoolIsEmpty" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="Serializers" executed="true" result="Success" success="True" time="31.472" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TMVCTestSerializerJsonDataObjects" executed="True" result="Success" success="True" time="31.472" >
|
||||
<results>
|
||||
<test-case name="TestSerializeAllTypes" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeDateTimeProperty" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeAllNullableTypes" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestSerializeAllTypesInList" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestSerializeEntity" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestSerializeNil" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeEntityUpperCaseNames" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeEntityWithArray" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeEntityLowerCaseNames" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeEntityNameAs" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeEntityCustomSerializer" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeEntityCustomMemberSerializer" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeEntitySerializationType" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeCollection" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeDataSet" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestDataSetHelpers" executed="True" result="Success" success="True" time="0.001" asserts="0" >
|
||||
<categories>
|
||||
<category name="datasets" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeEntity" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDeserializeEntityCustomSerializer" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDeserializeEntityCustomValueTypeSerializer" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDeserializeEntityCustomMemberSerializer" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDeserializeEntitySerializationType" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDeserializeCollection" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDeserializeDataSet" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestSerializeEmptyDataSet" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDeserializeEntityWithArray" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeDeSerializeEntityWithEnums" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeDeSerializeEntityWithSet" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestStringDictionary" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeDeserializeGuid" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeDeserializeEntityWithInterface" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeDeserializeGenericEntity" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeDeserializeMultipleGenericEntity" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDoNotSerializeDoNotDeSerialize" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeListOfSomething" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestSerializeListWithNulls" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestSerializeListWithNulls2" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeOwnedProperty_WithPropertyUnassigned_JSONExists" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeOwnedProperty_WithPropertyAssigned_JSONExists" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeOwnedProperty_WithPropertyAssigned_JSONNull" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeOwnedProperty_WithPropertyAssigned_JSONNotExists" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeOwnedProperty_WithPropertyUnAssigned_JSONNull" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeOwnedProperty_WithFieldsUnassigned_JSONExists" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeOwnedField_WithFieldsAssigned_JSONNull" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeOwnedProperty_WithPropertyUnassigned_JSONExists_Polimorphic" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="serializers" />
|
||||
</categories>
|
||||
</test-case>
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TTestJWT" executed="True" result="Success" success="True" time="31.456" >
|
||||
<results>
|
||||
<test-case name="TestHMAC" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestStorage" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestCreateAndValidateToken" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestLoadToken" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestNotBefore" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestExpirationTime" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestIssuedAt" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestDefaults" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TTestRouting" executed="True" result="Success" success="True" time="31.455" >
|
||||
<results>
|
||||
<test-case name="TestWithNoParameters" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestWithNoPath" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestPathButNoParameters" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestPathWithParameters" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestWithMethodTypes" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestComplexRoutings" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="Test_ISSUE_338" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="issues" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="Test_ISSUE_513_A" executed="True" result="Success" success="True" time="0.001" asserts="0" >
|
||||
<categories>
|
||||
<category name="issues" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="Test_ISSUE_513_B" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="issues" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="Test_ISSUE_513_C" executed="True" result="Success" success="True" time="0.001" asserts="0" >
|
||||
<categories>
|
||||
<category name="issues" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="Test_ISSUE_492" executed="True" result="Success" success="True" time="0.001" asserts="0" >
|
||||
<categories>
|
||||
<category name="issues" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestProduceRoutings" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestProduceRoutingsWithExplicitCharset" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestPathPrefix" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestReservedIPs" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="LiveServerTestU" executed="true" result="Success" success="True" time="31.443" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TJSONRPCServerWithGETTest" executed="True" result="Success" success="True" time="31.443" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
<results>
|
||||
<test-case name="TestRequestWithoutParams" executed="True" result="Success" success="True" time="0.008" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestNotificationWithoutParams" executed="True" result="Success" success="True" time="0.028" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestNotificationWhichRaisesError" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestToNotFoundMethod" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithParams_I_I_ret_I" executed="True" result="Success" success="True" time="0.005" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithNamedParams_I_I_ret_I" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithParams_I_I_I_ret_O" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithNamedParams_I_I_I_ret_O" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithWrongNamedParams" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_S_I_ret_S" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_NamedParams_S_I_ret_S" executed="True" result="Success" success="True" time="0.005" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithParams_I_I_ret_A" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithParams_DT_T_ret_DT" executed="True" result="Success" success="True" time="0.016" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithObjectParameters" executed="True" result="Success" success="True" time="0.015" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooks" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksWhenMethodRaisesError" executed="True" result="Success" success="True" time="0.013" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksWhenOnAfterCallHookRaisesError" executed="True" result="Success" success="True" time="0.015" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksNotif" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksNotifWhenOnBeforeRoutingHookRaisesError" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksNotifWhenOnBeforeCallHookRaisesError" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksNotifWhenOnAfterCallHookRaisesError" executed="True" result="Success" success="True" time="0.001" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksWhenOnBeforeCallHookRaisesError" executed="True" result="Success" success="True" time="0.001" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksWhenOnBeforeRoutingHookRaisesError" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_NoParams_SingleRecordAsResult" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_NoParams_SingleComplexRecordAsResult" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_Echo_SingleRecordAsResult" executed="True" result="Success" success="True" time="0.026" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_Echo_ComplexRecord" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_Echo_ComplexRecords" executed="True" result="Success" success="True" time="0.006" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_NoParams_DynamicArrayOfRecordAsResult" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestEnum" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestInvalidEnum" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestSet" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestInvalidSet" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TTestUTC" executed="True" result="Success" success="True" time="31.230" >
|
||||
<results>
|
||||
<test-case name="TestStringToDateTime_Local" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestStringToDateTime_in_DST_period" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestStringToDateTime_in_no_DST_period" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestStringToDateTime_NewYork" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestStringToDateTime_Mumbai" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="ActiveRecordTestsU" executed="true" result="Success" success="True" time="31.229" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TTestActiveRecordPostgreSQL" executed="True" result="Success" success="True" time="31.229" >
|
||||
<results>
|
||||
<test-case name="TestCRUD" executed="True" result="Success" success="True" time="0.012" asserts="0" />
|
||||
<test-case name="TestRefresh" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="Test_ISSUE485" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestDeleteIfNotFound" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestUpdateIfNotFound" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestCRUDWithSpaces" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestCRUDWithGUID" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestCRUDWithTableChange" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestCRUDStringPK" executed="True" result="Success" success="True" time="0.008" asserts="0" />
|
||||
<test-case name="TestSelectWithExceptions" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestStore" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestLifeCycle" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestRQL" executed="True" result="Success" success="True" time="0.760" asserts="0" />
|
||||
<test-case name="TestRQLWithMVCNameAsAttribute" executed="True" result="Success" success="True" time="0.569" asserts="0" />
|
||||
<test-case name="TestRQLWithBoolean" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestRQLWithDateTime" executed="True" result="Success" success="True" time="0.563" asserts="0" />
|
||||
<test-case name="TestRQLWithGUID" executed="True" result="Success" success="True" time="0.564" asserts="0" />
|
||||
<test-case name="TestRQLLimit" executed="True" result="Success" success="True" time="0.539" asserts="0" />
|
||||
<test-case name="TestIssue424" executed="True" result="Success" success="True" time="0.580" asserts="0" />
|
||||
<test-case name="TestMultiThreading" executed="True" result="Success" success="True" time="0.546" asserts="0" />
|
||||
<test-case name="TestNullables" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestMergeWhenNewRecords" executed="True" result="Success" success="True" time="0.041" asserts="0" />
|
||||
<test-case name="TestMergeWhenNewDeletedRecords" executed="True" result="Success" success="True" time="0.062" asserts="0" />
|
||||
<test-case name="TestMergeWhenChangedRecords" executed="True" result="Success" success="True" time="0.031" asserts="0" />
|
||||
<test-case name="TestMergeWhenMixedRecords" executed="True" result="Success" success="True" time="0.038" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringSelectByRQL" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringSelectOneByRQL" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringCount" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringCountByRQL" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringDeleteByRQL" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringDelete" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringGetByPK" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestPartitioningCRUD" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectByWhere" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectByRQL" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectOneByRQL" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestPartitioningCount" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestPartitioningCountByRQL" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestPartitioningDeleteByRQL" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestPartitioningDelete" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestPartitioningGetByPK" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="JSONRPCTestsU" executed="true" result="Success" success="True" time="19.426" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TTestJSONRPC" executed="True" result="Success" success="True" time="19.426" >
|
||||
<results>
|
||||
<test-case name="TestRequestWithArrayParameters" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestRequestWithNamedParameters" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestRequestWithMixedParamaters" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestRequestWithNoParameters" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestRequestWithMalformedJSON" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestNotificationWithNoParameters" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestIssue595" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TTestCryptUtils" executed="True" result="Success" success="True" time="19.424" >
|
||||
<results>
|
||||
<test-case name="TestPBKDF2_SHA1" executed="True" result="Success" success="True" time="0.017" asserts="0" />
|
||||
<test-case name="TestPBKDF2_SHA256" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="IntfObjectPoolTestU" executed="true" result="Success" success="True" time="19.166" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TTestTIntfObjectPool" executed="True" result="Success" success="True" time="19.166" >
|
||||
<results>
|
||||
<test-case name="TestFixedSize" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestGrowing" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestFactory" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestMultiThreading" executed="True" result="Success" success="True" time="1.013" asserts="0" />
|
||||
<test-case name="TestRaiseExceptionWhenPoolIsEmpty" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestNotRaiseExceptionWhenPoolIsEmpty" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TJSONRPCServerTest" executed="True" result="Success" success="True" time="18.149" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
<results>
|
||||
<test-case name="TestRequestWithoutParams" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestNotificationWithoutParams" executed="True" result="Success" success="True" time="0.029" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestNotificationWhichRaisesError" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestToNotFoundMethod" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithParams_I_I_ret_I" executed="True" result="Success" success="True" time="0.024" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithNamedParams_I_I_ret_I" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithParams_I_I_I_ret_O" executed="True" result="Success" success="True" time="0.005" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithNamedParams_I_I_I_ret_O" executed="True" result="Success" success="True" time="0.006" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithWrongNamedParams" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_S_I_ret_S" executed="True" result="Success" success="True" time="0.006" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_NamedParams_S_I_ret_S" executed="True" result="Success" success="True" time="0.005" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithParams_I_I_ret_A" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithParams_DT_T_ret_DT" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequestWithObjectParameters" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooks" executed="True" result="Success" success="True" time="0.018" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksWhenMethodRaisesError" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksWhenOnAfterCallHookRaisesError" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksNotif" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksNotifWhenOnBeforeRoutingHookRaisesError" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksNotifWhenOnBeforeCallHookRaisesError" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksNotifWhenOnAfterCallHookRaisesError" executed="True" result="Success" success="True" time="0.027" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksWhenOnBeforeCallHookRaisesError" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestHooksWhenOnBeforeRoutingHookRaisesError" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_NoParams_SingleRecordAsResult" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_NoParams_SingleComplexRecordAsResult" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_Echo_SingleRecordAsResult" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_Echo_ComplexRecord" executed="True" result="Success" success="True" time="0.005" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_Echo_ComplexRecords" executed="True" result="Success" success="True" time="0.006" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestRequest_NoParams_DynamicArrayOfRecordAsResult" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestEnum" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestInvalidEnum" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestSet" executed="True" result="Success" success="True" time="0.040" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestInvalidSet" executed="True" result="Success" success="True" time="0.015" asserts="0" >
|
||||
<categories>
|
||||
<category name="jsonrpc" />
|
||||
</categories>
|
||||
</test-case>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="ActiveRecordControllerTestU" executed="true" result="Success" success="True" time="17.887" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TTestActiveRecordController" executed="True" result="Success" success="True" time="17.887" >
|
||||
<results>
|
||||
<test-case name="TestGetAll" executed="True" result="Success" success="True" time="0.015" asserts="0" />
|
||||
<test-case name="TestCRUD" executed="True" result="Success" success="True" time="0.031" asserts="0" />
|
||||
<test-case name="TestDelete" executed="True" result="Success" success="True" time="0.011" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="MVCFramework" executed="true" result="Success" success="True" time="17.544" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TTestRESTClient" executed="True" result="Success" success="True" time="17.544" >
|
||||
<results>
|
||||
<test-case name="TestCreateAndDestroy" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestInformation" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestHelloWorld" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestGetUser" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestPostUser" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestPostUsers" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestGetUsers" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestUploadFile" executed="True" result="Success" success="True" time="0.141" asserts="0" />
|
||||
<test-case name="TestBodyURLEncoded" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestRequestHooksProc" executed="True" result="Success" success="True" time="0.028" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TTestActiveRecordFirebird" executed="True" result="Success" success="True" time="17.339" >
|
||||
<results>
|
||||
<test-case name="TestCRUD" executed="True" result="Success" success="True" time="0.009" asserts="0" />
|
||||
<test-case name="TestRefresh" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="Test_ISSUE485" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestDeleteIfNotFound" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestUpdateIfNotFound" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestCRUDWithSpaces" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestCRUDWithGUID" executed="True" result="Success" success="True" time="0.008" asserts="0" />
|
||||
<test-case name="TestCRUDWithTableChange" executed="True" result="Success" success="True" time="0.010" asserts="0" />
|
||||
<test-case name="TestCRUDStringPK" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestSelectWithExceptions" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestStore" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestLifeCycle" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestRQL" executed="True" result="Success" success="True" time="0.786" asserts="0" />
|
||||
<test-case name="TestRQLWithMVCNameAsAttribute" executed="True" result="Success" success="True" time="0.644" asserts="0" />
|
||||
<test-case name="TestRQLWithBoolean" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestRQLWithDateTime" executed="True" result="Success" success="True" time="0.519" asserts="0" />
|
||||
<test-case name="TestRQLWithGUID" executed="True" result="Success" success="True" time="0.602" asserts="0" />
|
||||
<test-case name="TestRQLLimit" executed="True" result="Success" success="True" time="0.713" asserts="0" />
|
||||
<test-case name="TestIssue424" executed="True" result="Success" success="True" time="0.625" asserts="0" />
|
||||
<test-case name="TestMultiThreading" executed="True" result="Success" success="True" time="0.471" asserts="0" />
|
||||
<test-case name="TestNullables" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestMergeWhenNewRecords" executed="True" result="Success" success="True" time="0.094" asserts="0" />
|
||||
<test-case name="TestMergeWhenNewDeletedRecords" executed="True" result="Success" success="True" time="0.073" asserts="0" />
|
||||
<test-case name="TestMergeWhenChangedRecords" executed="True" result="Success" success="True" time="0.074" asserts="0" />
|
||||
<test-case name="TestMergeWhenMixedRecords" executed="True" result="Success" success="True" time="0.068" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringSelectByRQL" executed="True" result="Success" success="True" time="0.013" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringSelectOneByRQL" executed="True" result="Success" success="True" time="0.008" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringCount" executed="True" result="Success" success="True" time="0.010" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringCountByRQL" executed="True" result="Success" success="True" time="0.008" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringDeleteByRQL" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringDelete" executed="True" result="Success" success="True" time="0.010" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringGetByPK" executed="True" result="Success" success="True" time="0.011" asserts="0" />
|
||||
<test-case name="TestPartitioningCRUD" executed="True" result="Success" success="True" time="0.009" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectByWhere" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectByRQL" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectOneByRQL" executed="True" result="Success" success="True" time="0.010" asserts="0" />
|
||||
<test-case name="TestPartitioningCount" executed="True" result="Success" success="True" time="0.009" asserts="0" />
|
||||
<test-case name="TestPartitioningCountByRQL" executed="True" result="Success" success="True" time="0.009" asserts="0" />
|
||||
<test-case name="TestPartitioningDeleteByRQL" executed="True" result="Success" success="True" time="0.010" asserts="0" />
|
||||
<test-case name="TestPartitioningDelete" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestPartitioningGetByPK" executed="True" result="Success" success="True" time="0.011" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TServerTest" executed="True" result="Success" success="True" time="11.973" >
|
||||
<results>
|
||||
<test-case name="TestControllerWithExceptionInCreate.request url /fault" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestControllerWithExceptionInCreate.request url /fault2" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/"" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/action1"" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/action2"" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/api/v1"" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/api/v1/action1"" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/api/v1/action2"" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/api/v2"" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/api/v2/action1"" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestMultiMVCPathOnControllerAndAction.url "/api/v2/action2"" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestReqWithParams" executed="True" result="Success" success="True" time="0.020" asserts="0" />
|
||||
<test-case name="TestReqWithURLMappedParams.1" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestReqWithURLMappedParams.2" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestReqWithURLMappedParams.3" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestReqWithURLMappedParams.4" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestReqWithURLMappedParams.5" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestReqWithURLMappedParams.6" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestReqWithURLMappedParams.7" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestReqWithURLMappedParams.8" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPOSTWithParamsAndJSONBody" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPOSTWithObjectJSONBody" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestCustomerEcho" executed="True" result="Success" success="True" time="0.011" asserts="0" />
|
||||
<test-case name="TestCustomerEchoWithRootNode" executed="True" result="Success" success="True" time="0.016" asserts="0" />
|
||||
<test-case name="TestEchoWithAllVerbs" executed="True" result="Success" success="True" time="0.018" asserts="0" />
|
||||
<test-case name="TestCustomerEchoBodyFor" executed="True" result="Success" success="True" time="0.012" asserts="0" />
|
||||
<test-case name="TestPOSTWithoutContentType" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestXHTTPMethodOverride_POST_as_PUT" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPUTWithParamsAndJSONBody" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestCookies" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestSessionWithLogin" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestSession" executed="True" result="Success" success="True" time="0.009" asserts="0" />
|
||||
<test-case name="TestInvalidateSession" executed="True" result="Success" success="True" time="0.040" asserts="0" />
|
||||
<test-case name="TestAsynchRequestPOST" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestAsynchRequestPUT" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestAsynchRequestGET" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestAsynchRequestDELETE" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestEncodingRenderJSONValue" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestRenderWrappedList" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestObjectDictIgnoredFields" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestObjectDictIgnoredFieldsWithDataSets" executed="True" result="Success" success="True" time="0.021" asserts="0" />
|
||||
<test-case name="TestRenderActionInCollections" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestRenderWrappedListWithCompression" executed="True" result="Success" success="True" time="0.029" asserts="0" />
|
||||
<test-case name="TestRenderStreamAndFreeWithOwnerFalse" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestRenderStreamAndFreeWithOwnerTrue" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestObjectDict" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestGetImagePng" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestProducesConsumes01" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestProducesConsumes02" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestProducesConsumes03" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestProducesConsumesWithWrongAcceptHeader" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestExceptionInMVCAfterCreate" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestExceptionInMVCBeforeDestroy" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestActionFiltersOnBeforeAction" executed="True" result="Success" success="True" time="0.008" asserts="0" />
|
||||
<test-case name="TestMiddlewareSpeedMiddleware" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestMiddlewareHandler" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPostAListOfObjects" executed="True" result="Success" success="True" time="0.164" asserts="0" />
|
||||
<test-case name="TestBasicAuth01" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestEntityWithArrays" executed="True" result="Success" success="True" time="0.023" asserts="0" />
|
||||
<test-case name="TestEntityWithEmptyArrays" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestEntityWithGUIDs" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestEntityWithGUIDsEcho" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestBasicAuth02" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestBasicAuth03" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestBasicAuth04" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestBasicAuth05" executed="True" result="Success" success="True" time="0.012" asserts="0" />
|
||||
<test-case name="TestCustomAuthRequestWithoutLogin" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestCustomAuthRequestsWithValidLogin" executed="True" result="Success" success="True" time="0.030" asserts="0" />
|
||||
<test-case name="TestCustomAuthRequestsWithValidLogin_HTML" executed="True" result="Success" success="True" time="0.010" asserts="0" />
|
||||
<test-case name="TestCustomAuthWrongRequestBodies" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestCustomAuthLoginLogout" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestTypedString1" executed="True" result="Success" success="True" time="0.020" asserts="0" />
|
||||
<test-case name="TestTypedInteger1" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestTypedInt641" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestTypedSingle1" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestTypedDouble1" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestTypedExtended1" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestTypedAll" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestTypedDateTimeTypes" executed="True" result="Success" success="True" time="0.046" asserts="0" >
|
||||
<categories>
|
||||
<category name="datetime" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestTypedDateTimeTypes_UTC" executed="True" result="Success" success="True" time="0.006" asserts="0" >
|
||||
<categories>
|
||||
<category name="datetime" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestTypedBooleans" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestTypedTGuid1" executed="True" result="Success" success="True" time="0.006" asserts="0" />
|
||||
<test-case name="TestStringDictionary" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestWrongJSONBody" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestTypedIntegerWrongParam1" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestEMVCException1" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="renders" />
|
||||
<category name="exceptions" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestEMVCException2" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="renders" />
|
||||
<category name="exceptions" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestEMVCException3" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="renders" />
|
||||
<category name="exceptions" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestEMVCException4" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="renders" />
|
||||
<category name="exceptions" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDeserializeNullablesWithValue" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestDeserializeNullablesWithNulls" executed="True" result="Success" success="True" time="0.017" asserts="0" />
|
||||
<test-case name="TestSerializeAndDeserializeNullables" executed="True" result="Success" success="True" time="0.005" asserts="0" />
|
||||
<test-case name="TestSerializeAndDeserializeNullables_ISSUE_362" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSerializeAndDeserializeNullables_Passing_Integers_InsteadOf_Floats" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestResponseCreated" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestResponseNoContent" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestResponseAccepted" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestDirectoryTraversal1" executed="True" result="Success" success="True" time="0.114" asserts="0" >
|
||||
<categories>
|
||||
<category name="staticfiles" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDirectoryTraversal2" executed="True" result="Success" success="True" time="0.141" asserts="0" >
|
||||
<categories>
|
||||
<category name="staticfiles" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestDirectoryRedirect" executed="True" result="Success" success="True" time="0.004" asserts="0" >
|
||||
<categories>
|
||||
<category name="staticfiles" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestFileWithFolderName" executed="True" result="Success" success="True" time="0.013" asserts="0" >
|
||||
<categories>
|
||||
<category name="staticfiles" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestSPASupport" executed="True" result="Success" success="True" time="0.114" asserts="0" >
|
||||
<categories>
|
||||
<category name="staticfiles" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestGetInject10" executed="True" result="Success" success="True" time="0.002" asserts="0" >
|
||||
<categories>
|
||||
<category name="Injected" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestGetInject20" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="Injected" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestPostInject30" executed="True" result="Success" success="True" time="0.026" asserts="0" >
|
||||
<categories>
|
||||
<category name="Injected" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestPostInject40" executed="True" result="Success" success="True" time="0.029" asserts="0" >
|
||||
<categories>
|
||||
<category name="Injected" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestPostInject50" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="Injected" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestViewDataViewDataSet" executed="True" result="Success" success="True" time="0.007" asserts="0" />
|
||||
<test-case name="TestIssue406" executed="True" result="Success" success="True" time="0.003" asserts="0" >
|
||||
<categories>
|
||||
<category name="renders" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestIssue542" executed="True" result="Success" success="True" time="0.011" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TTestActiveRecordSQLite" executed="True" result="Success" success="True" time="10.724" >
|
||||
<results>
|
||||
<test-case name="TestCRUD" executed="True" result="Success" success="True" time="0.004" asserts="0" />
|
||||
<test-case name="TestRefresh" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="Test_ISSUE485" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestDeleteIfNotFound" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestUpdateIfNotFound" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestCRUDWithSpaces" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestCRUDWithGUID" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestCRUDWithTableChange" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestCRUDStringPK" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestSelectWithExceptions" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestStore" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestLifeCycle" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestRQL" executed="True" result="Success" success="True" time="0.486" asserts="0" />
|
||||
<test-case name="TestRQLWithMVCNameAsAttribute" executed="True" result="Success" success="True" time="0.458" asserts="0" />
|
||||
<test-case name="TestRQLWithBoolean" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestRQLWithDateTime" executed="True" result="Success" success="True" time="0.577" asserts="0" />
|
||||
<test-case name="TestRQLWithGUID" executed="True" result="Success" success="True" time="0.507" asserts="0" />
|
||||
<test-case name="TestRQLLimit" executed="True" result="Success" success="True" time="0.608" asserts="0" />
|
||||
<test-case name="TestIssue424" executed="True" result="Success" success="True" time="0.461" asserts="0" />
|
||||
<test-case name="TestMultiThreading" executed="True" result="Success" success="True" time="0.570" asserts="0" />
|
||||
<test-case name="TestNullables" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestMergeWhenNewRecords" executed="True" result="Success" success="True" time="0.015" asserts="0" />
|
||||
<test-case name="TestMergeWhenNewDeletedRecords" executed="True" result="Success" success="True" time="0.055" asserts="0" />
|
||||
<test-case name="TestMergeWhenChangedRecords" executed="True" result="Success" success="True" time="0.013" asserts="0" />
|
||||
<test-case name="TestMergeWhenMixedRecords" executed="True" result="Success" success="True" time="0.033" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringSelectByRQL" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringSelectOneByRQL" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringCount" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringCountByRQL" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringDeleteByRQL" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringDelete" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestDefaultFilteringGetByPK" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestPartitioningCRUD" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectByWhere" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectByRQL" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestPartitioningSelectOneByRQL" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestPartitioningCount" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPartitioningCountByRQL" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestPartitioningDeleteByRQL" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPartitioningDelete" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPartitioningGetByPK" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TTestLRUCache" executed="True" result="Success" success="True" time="6.797" >
|
||||
<results>
|
||||
<test-case name="TestPutGet" executed="True" result="Success" success="True" time="0.000" asserts="0" >
|
||||
<categories>
|
||||
<category name="lru" />
|
||||
</categories>
|
||||
</test-case>
|
||||
<test-case name="TestPutGet_Check_No_AV" executed="True" result="Success" success="True" time="6.767" asserts="0" >
|
||||
<categories>
|
||||
<category name="lru" />
|
||||
</categories>
|
||||
</test-case>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Namespace" name="RESTAdapterTestsU" executed="true" result="Success" success="True" time="0.029" asserts="0" >
|
||||
<results>
|
||||
<test-suite type="Fixture" name="TTestRESTAdapter" executed="True" result="Success" success="True" time="0.029" >
|
||||
<results>
|
||||
<test-case name="TestGetPeople" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestGetPeopleAsynch" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestGetTonyStark" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestGetTonyStarkAsynch" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestPostPerson" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestGetPersonByID" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestHeadersApplicationJSON" executed="True" result="Success" success="True" time="0.001" asserts="0" />
|
||||
<test-case name="TestHeadersTextPlain" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
<test-case name="TestApplicationJSONWithHeaderTextPlain" executed="True" result="Success" success="True" time="0.003" asserts="0" />
|
||||
<test-case name="TestGetPersonInJSONArray" executed="True" result="Success" success="True" time="0.002" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
<test-suite type="Fixture" name="TTestNameCase" executed="True" result="Success" success="True" time="0.005" >
|
||||
<results>
|
||||
<test-case name="TestNameCase" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.LowerCase" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.LowerCaseWithUnderline" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.UpperCase" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.UpperCaseWithUnderline" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.PascalCase" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.CamelCase" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.UPPERLower1" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.UPPERLower2" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.UPPERLower3" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.UPPERLower4" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.UPPERLowerWithNumber1" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.UPPERLowerWithNumber2" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithSpaces1" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithSpaces2" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithSpaces3" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithDots1" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithDots2" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithDots3" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithUnderlines" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.MultipleUnderlines" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumber1" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumber02" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumberInTheMiddle1" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumberInTheMiddle2" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumberInTheMiddle3" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumberInTheMiddle4" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumberInTheMiddle5" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumberInTheMiddle6" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumberInTheMiddle7" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
<test-case name="TestSnakeCase.WithNumberInTheMiddle8" executed="True" result="Success" success="True" time="0.000" asserts="0" />
|
||||
</results>
|
||||
</test-suite>
|
||||
</results>
|
||||
</test-suite>
|
||||
</test-results>
|
Loading…
Reference in New Issue
Block a user