mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-15 07:45:54 +01:00
Delphi12 compatibility
This commit is contained in:
parent
5d341655f9
commit
e1aa50dd86
@ -92,7 +92,7 @@ var
|
||||
vSchemaKind: TSchemaKind;
|
||||
vClass: TPersistentClass;
|
||||
begin
|
||||
Result := nil;
|
||||
//Result := nil; //dt
|
||||
vSchemaKind := GetSchemaKind<T>;
|
||||
if (vSchemaKind = skUnknown) then
|
||||
raise ETypeNotSupportedByAField.Create(c_ErrorTypeNotSupportedByAField);
|
||||
@ -129,7 +129,7 @@ end;
|
||||
function TJsonSchema.GetSchemaKind<T>: TSchemaKind;
|
||||
var
|
||||
vTypeInfo: PTypeInfo;
|
||||
vClass: TPersistentClass;
|
||||
//vClass: TPersistentClass; //dt
|
||||
begin
|
||||
Result := skUnknown;
|
||||
vTypeInfo := System.TypeInfo(T);
|
||||
|
@ -2,7 +2,7 @@
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{5B9408E7-46AC-4431-9716-C9EB9F8589B1}</ProjectGuid>
|
||||
<MainSource>SwagDoc.dpk</MainSource>
|
||||
<ProjectVersion>19.5</ProjectVersion>
|
||||
<ProjectVersion>20.1</ProjectVersion>
|
||||
<FrameworkType>None</FrameworkType>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
@ -13,16 +13,6 @@
|
||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
|
||||
<Base_Android>true</Base_Android>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Android64' and '$(Base)'=='true') or '$(Base_Android64)'!=''">
|
||||
<Base_Android64>true</Base_Android64>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||
<Base_Win32>true</Base_Win32>
|
||||
<CfgParent>Base</CfgParent>
|
||||
@ -64,19 +54,6 @@
|
||||
<RuntimeOnlyPackage>true</RuntimeOnlyPackage>
|
||||
<DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Android)'!=''">
|
||||
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars>
|
||||
<Android_LauncherIcon192>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png</Android_LauncherIcon192>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Android64)'!=''">
|
||||
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=</VerInfo_Keys>
|
||||
<BT_BuildType>Debug</BT_BuildType>
|
||||
<VerInfo_IncludeVerInfo>false</VerInfo_IncludeVerInfo>
|
||||
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars>
|
||||
<Android_LauncherIcon192>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png</Android_LauncherIcon192>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||
<BT_BuildType>Debug</BT_BuildType>
|
||||
@ -272,6 +249,16 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashImageDefV21">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashStyles">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values</RemoteDir>
|
||||
@ -292,6 +279,66 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashStylesV31">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\values-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconBackground">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconForeground">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconMonochrome">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconV33">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v33</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v33</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_Colors">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values</RemoteDir>
|
||||
@ -302,6 +349,16 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_ColorsDark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values-night-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\values-night-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_DefaultAppIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
@ -472,6 +529,56 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedNotificationIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v24</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v24</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplash">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashDark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashV31">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashV31Dark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DebugSymbols">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
@ -912,9 +1019,6 @@
|
||||
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||
</Deployment>
|
||||
<Platforms>
|
||||
<Platform value="Android">False</Platform>
|
||||
<Platform value="Android64">False</Platform>
|
||||
<Platform value="Linux64">False</Platform>
|
||||
<Platform value="Win32">True</Platform>
|
||||
<Platform value="Win64">False</Platform>
|
||||
</Platforms>
|
||||
|
@ -3025,10 +3025,6 @@ end;
|
||||
|
||||
class function TMVCActiveRecordHelper.Select<T>(const SQL: string; const Params: array of Variant;
|
||||
const ParamTypes: array of TFieldType; const Options: TMVCActiveRecordLoadOptions): TObjectList<T>;
|
||||
var
|
||||
lDataSet: TDataSet;
|
||||
lAR: TMVCActiveRecord;
|
||||
lHandled: Boolean;
|
||||
begin
|
||||
Result := TObjectList<T>.Create(True);
|
||||
try
|
||||
@ -3049,12 +3045,8 @@ class function TMVCActiveRecordHelper.SelectOne<T>(const SQL: string; const Para
|
||||
const ParamTypes: array of TFieldType; const Options: TMVCActiveRecordLoadOptions;
|
||||
const RaiseExceptionIfNotFound: Boolean): T;
|
||||
var
|
||||
lDataSet: TDataSet;
|
||||
lAR: TMVCActiveRecord;
|
||||
lHandled: Boolean;
|
||||
lList: TObjectList<T>;
|
||||
begin
|
||||
Result := nil;
|
||||
lList := Select<T>(SQL, Params, ParamTypes, Options);
|
||||
try
|
||||
if (lList.Count = 0) then
|
||||
@ -3606,8 +3598,6 @@ class function TMVCActiveRecordHelper.Merge<T>(CurrentList, NewList: TObjectList
|
||||
var
|
||||
I: Integer;
|
||||
lFoundAtIndex: Integer;
|
||||
lCurrPKValue: Integer;
|
||||
lPKValue: TValue;
|
||||
lUnitOfWork: IMVCUnitOfWork<T>;
|
||||
lPKType: TFieldType;
|
||||
lNeedsToBeUpdated: Boolean;
|
||||
|
@ -220,12 +220,10 @@ end;
|
||||
|
||||
procedure TIntfCleanupThread<IInterface>.Execute;
|
||||
var
|
||||
lTargetSize: Integer;
|
||||
lAvgSize: TPoolSizeSamples;
|
||||
lArrIndex: Integer;
|
||||
lSampleTick: Integer;
|
||||
begin
|
||||
lArrIndex := 0;
|
||||
lSampleTick := 0;
|
||||
while not Terminated do
|
||||
begin
|
||||
|
@ -29,6 +29,8 @@ unit MVCFramework.JSONRPC;
|
||||
https://www.jsonrpc.org/historical/json-rpc-over-http.html
|
||||
}
|
||||
|
||||
{$I dmvcframework.inc}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
@ -2907,6 +2909,9 @@ begin
|
||||
else
|
||||
begin
|
||||
RaiseSerializationError('Parameter doesn''t support IJSONRPCResponse');
|
||||
{$IF Defined(DELPHI12ORBETTER)}
|
||||
Result := Default(T);
|
||||
{$ENDIF}
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -123,7 +123,6 @@ end;
|
||||
|
||||
procedure TMVCLRUCache<T>.RemoveIf(const Action: TMVCLRUCacheAction);
|
||||
var
|
||||
I: Integer;
|
||||
lIndex: Integer;
|
||||
lCacheSize: Integer;
|
||||
begin
|
||||
|
@ -103,8 +103,6 @@ implementation
|
||||
{ TObjectPool<T> }
|
||||
|
||||
constructor TObjectPool<T>.Create(MaxSize: Integer; ShrinkTriggerSize, ShrinkTargetSize: Integer; const Factory: TFunc<T>);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
inherited Create;
|
||||
fOnResetState := nil;
|
||||
@ -222,12 +220,10 @@ end;
|
||||
|
||||
procedure TCleanupThread<T>.Execute;
|
||||
var
|
||||
lTargetSize: Integer;
|
||||
lAvgSize: TPoolSizeSamples;
|
||||
lArrIndex: Integer;
|
||||
lSampleTick: Integer;
|
||||
begin
|
||||
lArrIndex := 0;
|
||||
lSampleTick := 0;
|
||||
while not Terminated do
|
||||
begin
|
||||
|
@ -671,7 +671,11 @@ function TMVCRESTClient.AddBodyFieldFormData(const aName: string; aStreamValue:
|
||||
const aContentType: string): IMVCRESTClient;
|
||||
begin
|
||||
Result := Self;
|
||||
{$IF Defined(DELPHI12ORBETTER)}
|
||||
GetBodyFormData.AddStream(aName, aStreamValue, False, '', aContentType);
|
||||
{$ELSE}
|
||||
GetBodyFormData.AddStream(aName, aStreamValue, '', aContentType);
|
||||
{$ENDIF}
|
||||
SetContentType(TMVCMediaType.MULTIPART_FORM_DATA);
|
||||
end;
|
||||
{$ENDIF}
|
||||
@ -706,7 +710,11 @@ end;
|
||||
function TMVCRESTClient.AddFile(const aName: string; aFileStreamValue: TStream; const aFileName, aContentType: string): IMVCRESTClient;
|
||||
begin
|
||||
Result := Self;
|
||||
{$IF Defined(DELPHI12ORBETTER)}
|
||||
GetBodyFormData.AddStream(aName, aFileStreamValue, False, aFileName, aContentType);
|
||||
{$ELSE}
|
||||
GetBodyFormData.AddStream(aName, aFileStreamValue, aFileName, aContentType);
|
||||
{$ENDIF}
|
||||
SetContentType(TMVCMediaType.MULTIPART_FORM_DATA);
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
@ -539,7 +539,6 @@ var
|
||||
V: TValue;
|
||||
Found: Boolean;
|
||||
begin
|
||||
Found := False;
|
||||
for elem in AList do
|
||||
begin
|
||||
V := GetProperty(elem, APropertyName);
|
||||
|
@ -3858,8 +3858,6 @@ end;
|
||||
|
||||
function TMVCJsonDataObjectsSerializer.JSONObjectToRecord<T>(const JSONObject: TJsonObject): T;
|
||||
var
|
||||
lTypeSize: Integer;
|
||||
lTypeInfo: PTypeInfo;
|
||||
AIgnoredAttributes: TMVCIgnoredList;
|
||||
lKeyName: string;
|
||||
lAttributeValue: TValue;
|
||||
@ -3876,7 +3874,6 @@ begin
|
||||
raise EMVCDeserializationException.Create('Extected record, got ' + lRTTIType.QualifiedName);
|
||||
end;
|
||||
|
||||
lTypeInfo := lRTTIType.Handle;
|
||||
lBuffer := @Result;
|
||||
lField := nil;
|
||||
AIgnoredAttributes := [];
|
||||
|
@ -1470,7 +1470,6 @@ var
|
||||
Obj: TObject;
|
||||
lSerializer: IMVCSerializer;
|
||||
begin
|
||||
Result := nil;
|
||||
if FSerializers.TryGetValue(ContentMediaType, lSerializer) then
|
||||
begin
|
||||
Obj := TMVCSerializerHelper.CreateObject(TClass(T).QualifiedClassName);
|
||||
@ -1495,7 +1494,6 @@ var
|
||||
List: TObjectList<T>;
|
||||
lSerializer: IMVCSerializer;
|
||||
begin
|
||||
Result := nil;
|
||||
if FSerializers.TryGetValue(ContentMediaType, lSerializer) then
|
||||
begin
|
||||
List := TObjectList<T>.Create(True);
|
||||
@ -3020,8 +3018,8 @@ begin
|
||||
lFromQueryStringAttribute) then
|
||||
begin
|
||||
Inc(lAttributeInjectedParamCount, 1);
|
||||
lInjectedParamValue := AContext.Request.QueryStringParam
|
||||
(lFromQueryStringAttribute.ParamName);
|
||||
lInjectedParamValue := URLDecode(AContext.Request.QueryStringParam
|
||||
(lFromQueryStringAttribute.ParamName));
|
||||
HandleDefaultValueForInjectedParameter(lInjectedParamValue, lFromQueryStringAttribute);
|
||||
AActualParams[I] := GetActualParam(AActionFormalParams[I], lInjectedParamValue);
|
||||
end
|
||||
|
@ -75,6 +75,9 @@ DelphiMVCFramework is compatible with Delphi version XE7 or better
|
||||
{$DEFINE ALEXANDRIAORBETTER}
|
||||
{$ENDIF}
|
||||
|
||||
{$IF CompilerVersion >= 36} // 12
|
||||
{$DEFINE DELPHI12ORBETTER}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF MOBILE}
|
||||
{$LEGACYIFEND OFF}
|
||||
|
3
tasks.py
3
tasks.py
@ -12,7 +12,7 @@ from pathlib import Path
|
||||
|
||||
init()
|
||||
|
||||
DEFAULT_DELPHI_VERSION = "11.3"
|
||||
DEFAULT_DELPHI_VERSION = "12"
|
||||
|
||||
g_releases_path = "releases"
|
||||
g_output = "bin"
|
||||
@ -54,6 +54,7 @@ def build_delphi_project(
|
||||
"11.1": {"path": "22.0", "desc": "Delphi 11.1 Alexandria"},
|
||||
"11.2": {"path": "22.0", "desc": "Delphi 11.2 Alexandria"},
|
||||
"11.3": {"path": "22.0", "desc": "Delphi 11.3 Alexandria"},
|
||||
"12": {"path": "23.0", "desc": "Delphi 12"},
|
||||
}
|
||||
|
||||
assert delphi_version in delphi_versions, (
|
||||
|
@ -212,7 +212,7 @@ begin
|
||||
Assert.IsTrue(lJSON.Contains('data') and (lJSON.Types['data'] = TJsonDataType.jdtArray), 'incorrect "data" property in JSON');
|
||||
var lCustomers := TJSONUtils.JSONArrayToListOf<TCustomer>(lJSON.A['data']);
|
||||
try
|
||||
Assert.AreEqual(20, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(20, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
@ -250,7 +250,7 @@ begin
|
||||
lCustomer.ID := -1; { don't be fooled by the default! }
|
||||
lCustomer.Insert;
|
||||
lID := lCustomer.ID;
|
||||
Assert.AreEqual(1, lID);
|
||||
Assert.AreEqual<Integer>(1, lID);
|
||||
finally
|
||||
lCustomer.Free;
|
||||
end;
|
||||
@ -274,11 +274,11 @@ begin
|
||||
lCustomer := TMVCActiveRecord.GetByPK<TCustomer>(lID);
|
||||
try
|
||||
Assert.AreEqual('1234', lCustomer.Code.Value);
|
||||
Assert.AreEqual(3, lCustomer.Rating.Value);
|
||||
Assert.AreEqual<Integer>(3, lCustomer.Rating.Value);
|
||||
Assert.AreEqual('note1noteupdated', lCustomer.Note);
|
||||
Assert.AreEqual('bit Time Professionals', lCustomer.CompanyName.Value);
|
||||
Assert.AreEqual('Rome, IT', lCustomer.City);
|
||||
Assert.AreEqual(1, lCustomer.ID.Value);
|
||||
Assert.AreEqual<Integer>(1, lCustomer.ID.Value);
|
||||
Assert.IsFalse(lCustomer.CreationTime.HasValue);
|
||||
Assert.IsFalse(lCustomer.CreationDate.HasValue);
|
||||
finally
|
||||
@ -329,7 +329,7 @@ begin
|
||||
lCustomer := TMVCActiveRecord.GetByPK<TCustomerWithCode>('1000');
|
||||
try
|
||||
Assert.AreEqual('1000', lCustomer.Code);
|
||||
Assert.AreEqual(3, lCustomer.Rating.Value);
|
||||
Assert.AreEqual<Integer>(3, lCustomer.Rating.Value);
|
||||
Assert.AreEqual('note1noteupdated', lCustomer.Note);
|
||||
Assert.AreEqual('bit Time Professionals', lCustomer.CompanyName.Value);
|
||||
Assert.AreEqual('Rome, IT', lCustomer.City);
|
||||
@ -387,7 +387,7 @@ begin
|
||||
lCustomer := TMVCActiveRecord.GetByPK<TCustomerWithGUID>(lGUID);
|
||||
try
|
||||
Assert.AreEqual('1234', lCustomer.Code.Value);
|
||||
Assert.AreEqual(3, lCustomer.Rating.Value);
|
||||
Assert.AreEqual<Integer>(3, lCustomer.Rating.Value);
|
||||
Assert.AreEqual('note1noteupdated', lCustomer.Note);
|
||||
Assert.AreEqual('bit Time Professionals', lCustomer.CompanyName.Value);
|
||||
Assert.AreEqual('Rome, IT', lCustomer.City);
|
||||
@ -426,7 +426,7 @@ begin
|
||||
lCustomer.ID := -1; { don't be fooled by the default! }
|
||||
lCustomer.Insert;
|
||||
lID := lCustomer.ID;
|
||||
Assert.AreEqual(1, lID);
|
||||
Assert.AreEqual<Integer>(1, lID);
|
||||
finally
|
||||
lCustomer.Free;
|
||||
end;
|
||||
@ -450,11 +450,11 @@ begin
|
||||
lCustomer := TMVCActiveRecord.GetByPK<TCustomerWithSpaces>(lID);
|
||||
try
|
||||
Assert.AreEqual('1234', lCustomer.Code.Value);
|
||||
Assert.AreEqual(3, lCustomer.Rating.Value);
|
||||
Assert.AreEqual<Integer>(3, lCustomer.Rating.Value);
|
||||
Assert.AreEqual('note1noteupdated', lCustomer.Note);
|
||||
Assert.AreEqual('bit Time Professionals', lCustomer.CompanyName.Value);
|
||||
Assert.AreEqual('Rome, IT', lCustomer.City);
|
||||
Assert.AreEqual(1, lCustomer.ID);
|
||||
Assert.AreEqual<Integer>(1, lCustomer.ID);
|
||||
Assert.IsFalse(lCustomer.CreationTime.HasValue);
|
||||
Assert.IsFalse(lCustomer.CreationDate.HasValue);
|
||||
finally
|
||||
@ -595,7 +595,7 @@ begin
|
||||
|
||||
var lGoodCustomers := TMVCActiveRecord.SelectRQL<TGoodCustomer>('', 10);
|
||||
try
|
||||
Assert.AreEqual(2, lGoodCustomers.Count);
|
||||
Assert.AreEqual<Integer>(2, lGoodCustomers.Count);
|
||||
finally
|
||||
lGoodCustomers.Free;
|
||||
end;
|
||||
@ -617,7 +617,7 @@ begin
|
||||
|
||||
lGoodCustomers := TMVCActiveRecord.SelectRQL<TGoodCustomer>('lt(Rating,4);sort(+CompanyName)', 10);
|
||||
try
|
||||
Assert.AreEqual(0, lGoodCustomers.Count);
|
||||
Assert.AreEqual<Integer>(0, lGoodCustomers.Count);
|
||||
finally
|
||||
lGoodCustomers.Free;
|
||||
end;
|
||||
@ -712,28 +712,28 @@ begin
|
||||
LoadData;
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, MAXINT);
|
||||
try
|
||||
Assert.AreEqual(240, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(240, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, 20);
|
||||
try
|
||||
Assert.AreEqual(20, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(20, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, 1);
|
||||
try
|
||||
Assert.AreEqual(1, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(1, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, -1);
|
||||
try
|
||||
Assert.AreEqual(240, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(240, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
@ -836,20 +836,20 @@ begin
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
Assert.AreEqual(0, lInserted);
|
||||
Assert.AreEqual(30, lUpdated);
|
||||
Assert.AreEqual(0, lDeleted);
|
||||
Assert.AreEqual<Integer>(0, lInserted);
|
||||
Assert.AreEqual<Integer>(30, lUpdated);
|
||||
Assert.AreEqual<Integer>(0, lDeleted);
|
||||
|
||||
lCustomers := TMVCActiveRecord.All<TCustomer>;
|
||||
try
|
||||
Assert.AreEqual(30, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(30, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>('eq(rating,10)', 1000);
|
||||
try
|
||||
Assert.AreEqual(30, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(30, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
@ -944,34 +944,34 @@ begin
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
Assert.AreEqual(2, lInserted);
|
||||
Assert.AreEqual(4, lUpdated);
|
||||
Assert.AreEqual(26, lDeleted);
|
||||
Assert.AreEqual<Integer>(2, lInserted);
|
||||
Assert.AreEqual<Integer>(4, lUpdated);
|
||||
Assert.AreEqual<Integer>(26, lDeleted);
|
||||
|
||||
lCustomers := TMVCActiveRecord.All<TCustomer>;
|
||||
try
|
||||
Assert.AreEqual(6, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(6, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>('eq(rating,3)', 1000);
|
||||
try
|
||||
Assert.AreEqual(2, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(2, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>('eq(rating,2)', 1000);
|
||||
try
|
||||
Assert.AreEqual(2, lCustomers.Count, 'Customers not updated correctly');
|
||||
Assert.AreEqual<Integer>(2, lCustomers.Count, 'Customers not updated correctly');
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>('eq(rating,1)', 1000);
|
||||
try
|
||||
Assert.AreEqual(2, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(2, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
@ -1023,13 +1023,13 @@ begin
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
Assert.AreEqual(0, lInserted);
|
||||
Assert.AreEqual(0, lUpdated);
|
||||
Assert.AreEqual(30, lDeleted);
|
||||
Assert.AreEqual<Integer>(0, lInserted);
|
||||
Assert.AreEqual<Integer>(0, lUpdated);
|
||||
Assert.AreEqual<Integer>(30, lDeleted);
|
||||
|
||||
lCustomers := TMVCActiveRecord.All<TCustomer>;
|
||||
try
|
||||
Assert.AreEqual(lTotCustomers, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(lTotCustomers, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
@ -1103,27 +1103,27 @@ begin
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
Assert.AreEqual(2, lInserted);
|
||||
Assert.AreEqual(30, lUpdated);
|
||||
Assert.AreEqual(0, lDeleted);
|
||||
Assert.AreEqual<Integer>(2, lInserted);
|
||||
Assert.AreEqual<Integer>(30, lUpdated);
|
||||
Assert.AreEqual<Integer>(0, lDeleted);
|
||||
|
||||
lCustomers := TMVCActiveRecord.All<TCustomer>;
|
||||
try
|
||||
Assert.AreEqual(lTotCustomers, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(lTotCustomers, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>('eq(rating,1)', 1000);
|
||||
try
|
||||
Assert.AreEqual(lTotCustomers - 2, lCustomers.Count, 'Some customer changed when should not change');
|
||||
Assert.AreEqual<Integer>(lTotCustomers - 2, lCustomers.Count, 'Some customer changed when should not change');
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>('eq(rating,3)', 1000);
|
||||
try
|
||||
Assert.AreEqual(2, lCustomers.Count, 'Some customer changed when should not change');
|
||||
Assert.AreEqual<Integer>(2, lCustomers.Count, 'Some customer changed when should not change');
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
@ -1143,7 +1143,7 @@ begin
|
||||
LoadData;
|
||||
lCustomers := TMVCActiveRecord.SelectRQLByNamedQuery<TCustomer>('CityRomeOrLondon', [], MAXINT);
|
||||
try
|
||||
Assert.AreEqual(240, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(240, lCustomers.Count);
|
||||
for var lCustomer in lCustomers do
|
||||
begin
|
||||
Assert.IsMatch('^(Rome|London)$', lCustomer.City);
|
||||
@ -1176,7 +1176,7 @@ begin
|
||||
LoadData;
|
||||
var lCustomers := TMVCActiveRecord.SelectByNamedQuery<TCustomer>('ByTwoCities', ['Rome', 'London'], [ftString, ftString]);
|
||||
try
|
||||
Assert.AreEqual(240, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(240, lCustomers.Count);
|
||||
for var lCustomer in lCustomers do
|
||||
begin
|
||||
Assert.IsMatch('^(Rome|London)$', lCustomer.City);
|
||||
@ -1190,7 +1190,7 @@ procedure TTestActiveRecordBase.TestNamedQuerySQLByBackEnd;
|
||||
begin
|
||||
var lList := TMVCActiveRecord.SelectByNamedQuery<TDummyEntity>('get_backend_name', [],[]);
|
||||
try
|
||||
Assert.AreEqual(1, lList.Count);
|
||||
Assert.AreEqual<Integer>(1, lList.Count);
|
||||
Assert.AreEqual(lList.First.GetBackEnd, lList.First.BackEndName);
|
||||
finally
|
||||
lList.Free;
|
||||
@ -1344,7 +1344,7 @@ begin
|
||||
Assert.AreEqual('1234', lRMCustomer.Code.Value);
|
||||
Assert.AreEqual('note1noteupdated', lRMCustomer.Note);
|
||||
Assert.AreEqual('bit Time Professionals', lRMCustomer.CompanyName.Value);
|
||||
Assert.AreEqual(1, lRMCustomer.ID.Value);
|
||||
Assert.AreEqual<Integer>(1, lRMCustomer.ID.Value);
|
||||
finally
|
||||
lRMCustomer.Free;
|
||||
end;
|
||||
@ -1458,7 +1458,7 @@ begin
|
||||
var
|
||||
lRomeCustomers := TMVCActiveRecord.SelectRQL<TRomeBasedCustomer>('', 10);
|
||||
try
|
||||
Assert.AreEqual(2, lRomeCustomers.Count);
|
||||
Assert.AreEqual<Integer>(2, lRomeCustomers.Count);
|
||||
finally
|
||||
lRomeCustomers.Free;
|
||||
end;
|
||||
@ -1473,7 +1473,7 @@ begin
|
||||
|
||||
lRomeCustomers := TMVCActiveRecord.SelectRQL<TRomeBasedCustomer>('eq(Rating,5);sort(+CompanyName)', 10);
|
||||
try
|
||||
Assert.AreEqual(1, lRomeCustomers.Count);
|
||||
Assert.AreEqual<Integer>(1, lRomeCustomers.Count);
|
||||
Assert.AreEqual('Rome Company 1', lRomeCustomers[0].CompanyName.Value);
|
||||
finally
|
||||
lRomeCustomers.Free;
|
||||
@ -1481,7 +1481,7 @@ begin
|
||||
|
||||
lRomeCustomers := TMVCActiveRecord.SelectRQL<TRomeBasedCustomer>('lt(Rating,2);sort(+CompanyName)', 10);
|
||||
try
|
||||
Assert.AreEqual(0, lRomeCustomers.Count);
|
||||
Assert.AreEqual<Integer>(0, lRomeCustomers.Count);
|
||||
finally
|
||||
lRomeCustomers.Free;
|
||||
end;
|
||||
@ -1495,14 +1495,14 @@ begin
|
||||
var
|
||||
lRomeBasedCustomers := TMVCActiveRecord.Where<TRomeBasedCustomer>('city = ?', ['New York'], [ftString]);
|
||||
try
|
||||
Assert.AreEqual(0, lRomeBasedCustomers.Count);
|
||||
Assert.AreEqual<Integer>(0, lRomeBasedCustomers.Count);
|
||||
finally
|
||||
lRomeBasedCustomers.Free;
|
||||
end;
|
||||
|
||||
lRomeBasedCustomers := TMVCActiveRecord.Where<TRomeBasedCustomer>('description = ?', ['Daniele'], [ftString]);
|
||||
try
|
||||
Assert.AreEqual(1, lRomeBasedCustomers.Count);
|
||||
Assert.AreEqual<Integer>(1, lRomeBasedCustomers.Count);
|
||||
finally
|
||||
lRomeBasedCustomers.Free;
|
||||
end;
|
||||
@ -1557,7 +1557,7 @@ begin
|
||||
lCustomer.ID := -1; { don't be fooled by the default! }
|
||||
lCustomer.Insert;
|
||||
lID := lCustomer.ID;
|
||||
Assert.AreEqual(1, lID);
|
||||
Assert.AreEqual<Integer>(1, lID);
|
||||
lCustomer.CompanyName.Clear;
|
||||
lCustomer.City := '';
|
||||
lCustomer.Note := '';
|
||||
@ -1593,7 +1593,7 @@ begin
|
||||
LoadData;
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, MAXINT);
|
||||
try
|
||||
Assert.AreEqual(240, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(240, lCustomers.Count);
|
||||
for var lCustomer in lCustomers do
|
||||
begin
|
||||
Assert.IsMatch('^(Rome|London)$', lCustomer.City);
|
||||
@ -1640,7 +1640,7 @@ begin
|
||||
// LoadData;
|
||||
// lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, MAXINT);
|
||||
// try
|
||||
// Assert.AreEqual(240, lCustomers.Count);
|
||||
// Assert.AreEqual<Integer>(240, lCustomers.Count);
|
||||
// for var lCustomer in lCustomers do
|
||||
// begin
|
||||
// Assert.IsMatch('^(Rome|London)$', lCustomer.City);
|
||||
@ -1662,7 +1662,7 @@ begin
|
||||
LoadData;
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, MAXINT);
|
||||
try
|
||||
Assert.AreEqual(240, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(240, lCustomers.Count);
|
||||
for var lCustomer in lCustomers do
|
||||
begin
|
||||
Assert.IsMatch('^(Rome|London)$', lCustomer.City);
|
||||
@ -1673,14 +1673,14 @@ begin
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, 10);
|
||||
try
|
||||
Assert.AreEqual(10, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(10, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, 0);
|
||||
try
|
||||
Assert.AreEqual(0, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(0, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
@ -1701,7 +1701,7 @@ begin
|
||||
LoadData;
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, MAXINT);
|
||||
try
|
||||
Assert.AreEqual(140, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(140, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
@ -1731,7 +1731,7 @@ begin
|
||||
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomerWithGUID>(RQL1, MAXINT);
|
||||
try
|
||||
Assert.AreEqual(1, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(1, lCustomers.Count);
|
||||
finally
|
||||
lCustomers.Free;
|
||||
end;
|
||||
@ -1750,7 +1750,7 @@ begin
|
||||
LoadData;
|
||||
lCustomers := TMVCActiveRecord.SelectRQL<TCustomer>(RQL1, MAXINT);
|
||||
try
|
||||
Assert.AreEqual(240, lCustomers.Count);
|
||||
Assert.AreEqual<Integer>(240, lCustomers.Count);
|
||||
for var lCustomer in lCustomers do
|
||||
begin
|
||||
Assert.IsMatch('^(Rome|London)$', lCustomer.City);
|
||||
@ -1829,7 +1829,7 @@ begin
|
||||
lCustomer.Note := 'note1';
|
||||
lCustomer.Store; { pk is not set, so it should do an insert }
|
||||
lID := lCustomer.ID;
|
||||
Assert.AreEqual(1, lID, 'ID should be 1 but it is ' + lID.ToString);
|
||||
Assert.AreEqual<Integer>(1, lID, 'ID should be 1 but it is ' + lID.ToString);
|
||||
finally
|
||||
lCustomer.Free;
|
||||
end;
|
||||
@ -1923,7 +1923,7 @@ begin
|
||||
lCustomer.ID := -1; { don't be fooled by the default! }
|
||||
lCustomer.Insert;
|
||||
lID := lCustomer.ID;
|
||||
Assert.AreEqual(1, lID);
|
||||
Assert.AreEqual<Integer>(1, lID);
|
||||
finally
|
||||
lCustomer.Free;
|
||||
end;
|
||||
|
@ -1,11 +1,11 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{0582DE6A-D716-46D3-8CBD-84AD73A4B536}</ProjectGuid>
|
||||
<ProjectVersion>19.5</ProjectVersion>
|
||||
<ProjectVersion>20.1</ProjectVersion>
|
||||
<FrameworkType>VCL</FrameworkType>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">TESTINSIGHT</Config>
|
||||
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||
<TargetedPlatforms>3</TargetedPlatforms>
|
||||
<AppType>Console</AppType>
|
||||
<MainSource>DMVCFrameworkTests.dpr</MainSource>
|
||||
@ -47,6 +47,13 @@
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_4)'=='true') or '$(Cfg_4_Win64)'!=''">
|
||||
<Cfg_4_Win64>true</Cfg_4_Win64>
|
||||
<CfgParent>Cfg_4</CfgParent>
|
||||
<Cfg_4>true</Cfg_4>
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='CI' or '$(Cfg_5)'!=''">
|
||||
<Cfg_5>true</Cfg_5>
|
||||
<CfgParent>Cfg_4</CfgParent>
|
||||
@ -122,7 +129,7 @@
|
||||
<DCC_S>false</DCC_S>
|
||||
<DCC_F>false</DCC_F>
|
||||
<DCC_K>false</DCC_K>
|
||||
<DCC_Define>DEBUG;TESTINSIGHT;$(DCC_Define)</DCC_Define>
|
||||
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||
<DCC_ShowGeneralMessages>true</DCC_ShowGeneralMessages>
|
||||
@ -160,6 +167,10 @@
|
||||
<PropertyGroup Condition="'$(Cfg_4_Win32)'!=''">
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_4_Win64)'!=''">
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_5)'!=''">
|
||||
<DCC_Define>CI;$(DCC_Define)</DCC_Define>
|
||||
</PropertyGroup>
|
||||
@ -176,6 +187,9 @@
|
||||
<PropertyGroup Condition="'$(Cfg_6_Win32)'!=''">
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||
<DCC_Define>TESTINSIGHT;$(DCC_Define)</DCC_Define>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
<Debugger_RunParams>--include:lru</Debugger_RunParams>
|
||||
@ -263,10 +277,6 @@
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="TESTINSIGHT">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Cfg_1</CfgParent>
|
||||
@ -275,14 +285,18 @@
|
||||
<Key>Cfg_4</Key>
|
||||
<CfgParent>Cfg_1</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="CI">
|
||||
<Key>Cfg_5</Key>
|
||||
<CfgParent>Cfg_4</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="LINUX">
|
||||
<Key>Cfg_6</Key>
|
||||
<CfgParent>Cfg_4</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="CI">
|
||||
<Key>Cfg_5</Key>
|
||||
<CfgParent>Cfg_4</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<ProjectExtensions>
|
||||
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||
@ -343,10 +357,8 @@
|
||||
<Source Name="MainSource">DMVCFrameworkTests.dpr</Source>
|
||||
</Source>
|
||||
<Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\bcboffice2k280.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\bcbofficexp280.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k280.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp280.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<Deployment Version="4">
|
||||
@ -470,6 +482,16 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashImageDefV21">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashStyles">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values</RemoteDir>
|
||||
@ -490,6 +512,66 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashStylesV31">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\values-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconBackground">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconForeground">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconMonochrome">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconV33">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v33</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v33</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_Colors">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values</RemoteDir>
|
||||
@ -500,6 +582,16 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_ColorsDark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values-night-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\values-night-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_DefaultAppIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
@ -670,6 +762,56 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedNotificationIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v24</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v24</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplash">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashDark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashV31">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashV31Dark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DebugSymbols">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
|
@ -421,16 +421,16 @@ begin
|
||||
Params.Clear;
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/issue338/projectid/pictures/imageuuid', httpGET, 'text/plain', 'text/plain',
|
||||
FControllers, 'text/plain', TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual('GetImage', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(2, Params.Count);
|
||||
Assert.areEqual('projectid', Params['projectid']);
|
||||
Assert.areEqual('imageuuid', Params['imageuuid']);
|
||||
Assert.AreEqual('GetImage', FRouter.MethodToCall.Name);
|
||||
Assert.AreEqual<Integer>(2, Params.Count);
|
||||
Assert.AreEqual('projectid', Params['projectid']);
|
||||
Assert.AreEqual('imageuuid', Params['imageuuid']);
|
||||
|
||||
Params.Clear;
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/issue338/projectid', httpGET, 'text/plain', 'text/plain', FControllers,
|
||||
'text/plain', TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual('GetProject', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(1, Params.Count);
|
||||
Assert.areEqual<Integer>(1, Params.Count);
|
||||
Assert.areEqual('projectid', Params['projectid']);
|
||||
finally
|
||||
Params.Free;
|
||||
@ -450,7 +450,7 @@ begin
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/issue492/delphi$mvc$framework', httpGET, 'text/plain', 'text/plain',
|
||||
FControllers, 'text/plain', TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual('GetIssue492', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(1, Params.Count);
|
||||
Assert.areEqual<Integer>(1, Params.Count);
|
||||
Assert.areEqual('delphi$mvc$framework', Params['stringvalue']);
|
||||
finally
|
||||
Params.Free;
|
||||
@ -470,7 +470,7 @@ begin
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/patient/$match', httpGET, 'text/plain', 'text/plain',
|
||||
FControllers, 'text/plain', TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual('GetOrderIssue513', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(0, Params.Count);
|
||||
Assert.areEqual<Integer>(0, Params.Count);
|
||||
finally
|
||||
Params.Free;
|
||||
end;
|
||||
@ -489,7 +489,7 @@ begin
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/patient/$match/daniele/teti', httpGET, 'text/plain', 'text/plain', FControllers,
|
||||
'text/plain', TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual('GetOrderIssue513WithPars', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(2, Params.Count);
|
||||
Assert.areEqual<Integer>(2, Params.Count);
|
||||
Assert.areEqual('daniele', Params['par1']);
|
||||
Assert.areEqual('teti', Params['par2']);
|
||||
finally
|
||||
@ -510,7 +510,7 @@ begin
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/patient/$match/da$niele/te$ti', httpGET, 'text/plain', 'text/plain', FControllers,
|
||||
'text/plain', TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual('GetOrderIssue513WithPars', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(2, Params.Count);
|
||||
Assert.areEqual<Integer>(2, Params.Count);
|
||||
Assert.areEqual('da$niele', Params['par1']);
|
||||
Assert.areEqual('te$ti', Params['par2']);
|
||||
finally
|
||||
@ -1075,7 +1075,7 @@ begin
|
||||
try
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/orders', httpGET, 'text/plain', 'text/plain', FControllers, 'text/plain',
|
||||
TMVCConstants.DEFAULT_CONTENT_CHARSET, '', Params, ResponseContentType, ResponseContentCharset));
|
||||
Assert.areEqual(0, Params.Count);
|
||||
Assert.areEqual<Integer>(0, Params.Count);
|
||||
Assert.areEqual('TSimpleController', FRouter.ControllerClazz.ClassName);
|
||||
Assert.areEqual('Orders', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(TMVCConstants.DEFAULT_CONTENT_CHARSET, ResponseContentCharset);
|
||||
@ -1112,7 +1112,7 @@ begin
|
||||
Assert.isTrue(lRouter.ExecuteRouting('/api/orders', httpGET, 'text/plain', 'text/plain', FControllers,
|
||||
'text/plain', TMVCConstants.DEFAULT_CONTENT_CHARSET, '/api', lParams, ResponseContentType,
|
||||
ResponseContentEncoding));
|
||||
Assert.areEqual(0, lParams.Count);
|
||||
Assert.areEqual<Integer>(0, lParams.Count);
|
||||
Assert.areEqual('TSimpleController', lRouter.ControllerClazz.ClassName);
|
||||
Assert.areEqual('Orders', lRouter.MethodToCall.Name);
|
||||
Assert.areEqual(TMVCConstants.DEFAULT_CONTENT_CHARSET, ResponseContentEncoding);
|
||||
@ -1138,7 +1138,7 @@ begin
|
||||
try
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/orders/789', httpGET, 'text/plain', 'text/plain', FControllers, 'text/plain',
|
||||
TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual(1, Params.Count);
|
||||
Assert.areEqual<Integer>(1, Params.Count);
|
||||
Assert.areEqual('789', Params['ordernumber']);
|
||||
Assert.areEqual('TSimpleController', FRouter.ControllerClazz.ClassName);
|
||||
Assert.areEqual('OrderNumber', FRouter.MethodToCall.Name);
|
||||
@ -1150,7 +1150,7 @@ begin
|
||||
try
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/orders/àèéìòù .-_\', httpGET, 'text/plain', 'text/plain', FControllers,
|
||||
'text/plain', TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual(1, Params.Count);
|
||||
Assert.areEqual<Integer>(1, Params.Count);
|
||||
Assert.areEqual('àèéìòù .-_\', Params['ordernumber']);
|
||||
Assert.areEqual('TSimpleController', FRouter.ControllerClazz.ClassName);
|
||||
Assert.areEqual('OrderNumber', FRouter.MethodToCall.Name);
|
||||
@ -1172,7 +1172,7 @@ begin
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/orders', httpGET, '', 'application/json', FControllers,
|
||||
TMVCConstants.DEFAULT_CONTENT_TYPE, TMVCConstants.DEFAULT_CONTENT_CHARSET, '', Params, ResponseContentType,
|
||||
ResponseContentCharset));
|
||||
Assert.areEqual(0, Params.Count);
|
||||
Assert.areEqual<Integer>(0, Params.Count);
|
||||
Assert.areEqual('TSimpleController', FRouter.ControllerClazz.ClassName);
|
||||
Assert.areEqual('OrdersProduceJSON', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(TMVCConstants.DEFAULT_CONTENT_CHARSET, ResponseContentCharset);
|
||||
@ -1193,7 +1193,7 @@ begin
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/orders', httpGET, '', 'application/json; charset=UTF-8', FControllers,
|
||||
TMVCConstants.DEFAULT_CONTENT_TYPE, TMVCConstants.DEFAULT_CONTENT_CHARSET, '', Params, ResponseContentType,
|
||||
ResponseContentCharset));
|
||||
Assert.areEqual(0, Params.Count);
|
||||
Assert.areEqual<Integer>(0, Params.Count);
|
||||
Assert.areEqual('TSimpleController', FRouter.ControllerClazz.ClassName);
|
||||
Assert.areEqual('OrdersProduceJSON', FRouter.MethodToCall.Name);
|
||||
Assert.areEqual(TMVCConstants.DEFAULT_CONTENT_CHARSET, ResponseContentCharset);
|
||||
@ -1465,7 +1465,7 @@ begin
|
||||
try
|
||||
Assert.isTrue(FRouter.ExecuteRouting('/', httpGET, 'text/plain', 'text/plain', FControllers, 'text/plain',
|
||||
TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual(0, Params.Count);
|
||||
Assert.areEqual<Integer>(0, Params.Count);
|
||||
Assert.areEqual('TSimpleController', FRouter.ControllerClazz.ClassName);
|
||||
Assert.areEqual('Index', FRouter.MethodToCall.Name);
|
||||
finally
|
||||
@ -1483,7 +1483,7 @@ begin
|
||||
try
|
||||
Assert.isTrue(FRouter.ExecuteRouting('', httpGET, 'text/plain', 'text/plain', FControllers, 'text/plain',
|
||||
TMVCMediaType.TEXT_PLAIN, '', Params, ResponseContentType, ResponseContentEncoding));
|
||||
Assert.areEqual(0, Params.Count);
|
||||
Assert.areEqual<Integer>(0, Params.Count);
|
||||
Assert.areEqual('TSimpleController', FRouter.ControllerClazz.ClassName);
|
||||
Assert.areEqual('Index', FRouter.MethodToCall.Name);
|
||||
finally
|
||||
@ -1752,14 +1752,14 @@ begin
|
||||
Assert.isFalse(lMultiMap.Contains('key1'));
|
||||
lMultiMap.Add('key1', TMyIntfObject.Create(1, 'value1'));
|
||||
Assert.isTrue(lMultiMap.Contains('key1'));
|
||||
Assert.areEqual(1, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual<Integer>(1, lMultiMap.GetItems('key1').Count);
|
||||
lMultiMap.Add('key1', TMyIntfObject.Create(2, 'value2'));
|
||||
Assert.areEqual(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual<Integer>(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual('value1', lMultiMap.GetItems('key1')[0].GetDescription);
|
||||
Assert.areEqual('value2', lMultiMap.GetItems('key1')[1].GetDescription);
|
||||
lMultiMap.Add('key2', TMyIntfObject.Create(1, 'value3'));
|
||||
Assert.areEqual(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual(1, lMultiMap.GetItems('key2').Count);
|
||||
Assert.areEqual<Integer>(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual<Integer>(1, lMultiMap.GetItems('key2').Count);
|
||||
end;
|
||||
|
||||
procedure TTestMultiMap.TestInterfaceMultiMapRemove;
|
||||
@ -1770,7 +1770,7 @@ begin
|
||||
lMultiMap.Remove('not valid');
|
||||
lMultiMap.Add('key1', TMyIntfObject.Create(1, 'value1'));
|
||||
lMultiMap.Add('key1', TMyIntfObject.Create(2, 'value2'));
|
||||
Assert.areEqual(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual<Integer>(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.isTrue(lMultiMap.Contains('key1'));
|
||||
lMultiMap.Remove('key1');
|
||||
Assert.isFalse(lMultiMap.Contains('key1'));
|
||||
@ -1786,14 +1786,14 @@ begin
|
||||
Assert.isFalse(lMultiMap.Contains('key1'));
|
||||
lMultiMap.Add('key1', TMyClass.Create(1, 'value1'));
|
||||
Assert.isTrue(lMultiMap.Contains('key1'));
|
||||
Assert.areEqual(1, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual<Integer>(1, lMultiMap.GetItems('key1').Count);
|
||||
lMultiMap.Add('key1', TMyClass.Create(2, 'value2'));
|
||||
Assert.areEqual(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual<Integer>(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual('value1', lMultiMap.GetItems('key1')[0].Description);
|
||||
Assert.areEqual('value2', lMultiMap.GetItems('key1')[1].Description);
|
||||
lMultiMap.Add('key2', TMyClass.Create(1, 'value3'));
|
||||
Assert.areEqual(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual(1, lMultiMap.GetItems('key2').Count);
|
||||
Assert.areEqual<Integer>(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual<Integer>(1, lMultiMap.GetItems('key2').Count);
|
||||
end;
|
||||
|
||||
procedure TTestMultiMap.TestObjectMultiMapRemove;
|
||||
@ -1804,7 +1804,7 @@ begin
|
||||
lMultiMap.Remove('not valid');
|
||||
lMultiMap.Add('key1', TMyClass.Create(1, 'value1'));
|
||||
lMultiMap.Add('key1', TMyClass.Create(2, 'value2'));
|
||||
Assert.areEqual(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.areEqual<Integer>(2, lMultiMap.GetItems('key1').Count);
|
||||
Assert.isTrue(lMultiMap.Contains('key1'));
|
||||
lMultiMap.Remove('key1');
|
||||
Assert.isFalse(lMultiMap.Contains('key1'));
|
||||
|
@ -736,7 +736,7 @@ var
|
||||
begin
|
||||
res := RESTClient.Get('/lotofcookies');
|
||||
Assert.areEqual<Integer>(HTTP_STATUS.OK, res.StatusCode);
|
||||
Assert.areEqual(4, res.Cookies.Count, 'Wrong number of cookies');
|
||||
Assert.areEqual<Integer>(4, res.Cookies.Count, 'Wrong number of cookies');
|
||||
for I := 0 to 3 do
|
||||
begin
|
||||
Assert.areEqual('usersettings' + IntToStr(I + 1), res.Cookies[I].Name);
|
||||
|
@ -167,7 +167,8 @@ var
|
||||
lOutput: string;
|
||||
begin
|
||||
lParams := ' -D ' + fPGDataDir +
|
||||
' -E UTF8 --lc-collate=en_US.UTF8 --lc-ctype=en_US.UTF8 --locale=en_US';
|
||||
' --encoding=UTF8 --lc-collate=en-US --lc-ctype=en-US --locale=en-US';
|
||||
// ' --encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8 --locale=en_US';
|
||||
if SysExecute(fInitDBExecutable + lParams, lOutput) <> 0 then
|
||||
begin
|
||||
raise Exception.Create(lOutput);
|
||||
|
@ -1433,10 +1433,10 @@ begin
|
||||
|
||||
fSerializer.DeserializeObject(lData, lList2);
|
||||
|
||||
Assert.areEqual(2, lList2.ListOfString.Count);
|
||||
Assert.areEqual(2, lList2.ListOfInteger.Count);
|
||||
Assert.areEqual(2, lList2.ListOfBoolean.Count);
|
||||
Assert.areEqual(2, lList2.ListOfDouble.Count);
|
||||
Assert.areEqual<Integer>(2, lList2.ListOfString.Count);
|
||||
Assert.areEqual<Integer>(2, lList2.ListOfInteger.Count);
|
||||
Assert.areEqual<Integer>(2, lList2.ListOfBoolean.Count);
|
||||
Assert.areEqual<Integer>(2, lList2.ListOfDouble.Count);
|
||||
|
||||
Assert.areEqual(lList.ListOfString[0], lList2.ListOfString[0]);
|
||||
Assert.areEqual(lList.ListOfString[1], lList2.ListOfString[1]);
|
||||
@ -1640,7 +1640,7 @@ begin
|
||||
|
||||
Assert.areEqual(Integer(1), LGenericEntity.Code);
|
||||
Assert.areEqual('General Description', LGenericEntity.Description);
|
||||
Assert.areEqual(Integer(5), LGenericEntity.Items.Count);
|
||||
Assert.areEqual<Integer>(5, LGenericEntity.Items.Count);
|
||||
Assert.areEqual('Description 01', LGenericEntity.Items[0].Description);
|
||||
Assert.areEqual('Description 02', LGenericEntity.Items[1].Description);
|
||||
Assert.areEqual('Description 03', LGenericEntity.Items[2].Description);
|
||||
@ -1687,21 +1687,21 @@ begin
|
||||
|
||||
Assert.areEqual(Integer(1), LNestedGenericEntity.Code);
|
||||
Assert.areEqual('General Description', LNestedGenericEntity.Description);
|
||||
Assert.areEqual(Integer(3), LNestedGenericEntity.Items.Count);
|
||||
Assert.areEqual<Integer>(Integer(3), LNestedGenericEntity.Items.Count);
|
||||
|
||||
Assert.areEqual(Integer(10), LNestedGenericEntity.Items[0].Code);
|
||||
Assert.areEqual<Integer>(Integer(10), LNestedGenericEntity.Items[0].Code);
|
||||
Assert.areEqual('Item_01', LNestedGenericEntity.Items[0].Description);
|
||||
Assert.areEqual(Integer(1), LNestedGenericEntity.Items[0].Items.Count);
|
||||
Assert.areEqual<Integer>(Integer(1), LNestedGenericEntity.Items[0].Items.Count);
|
||||
Assert.areEqual('Description 01', LNestedGenericEntity.Items[0].Items[0].Description);
|
||||
|
||||
Assert.areEqual(Integer(11), LNestedGenericEntity.Items[1].Code);
|
||||
Assert.areEqual<Integer>(Integer(11), LNestedGenericEntity.Items[1].Code);
|
||||
Assert.areEqual('Item_02', LNestedGenericEntity.Items[1].Description);
|
||||
Assert.areEqual(Integer(1), LNestedGenericEntity.Items[1].Items.Count);
|
||||
Assert.areEqual<Integer>(Integer(1), LNestedGenericEntity.Items[1].Items.Count);
|
||||
Assert.areEqual('Description 02', LNestedGenericEntity.Items[1].Items[0].Description);
|
||||
|
||||
Assert.areEqual(Integer(12), LNestedGenericEntity.Items[2].Code);
|
||||
Assert.areEqual<Integer>(Integer(12), LNestedGenericEntity.Items[2].Code);
|
||||
Assert.areEqual('Item_03', LNestedGenericEntity.Items[2].Description);
|
||||
Assert.areEqual(Integer(1), LNestedGenericEntity.Items[2].Items.Count);
|
||||
Assert.areEqual<Integer>(Integer(1), LNestedGenericEntity.Items[2].Items.Count);
|
||||
Assert.areEqual('Description 03', LNestedGenericEntity.Items[2].Items[0].Description);
|
||||
|
||||
finally
|
||||
@ -1795,14 +1795,14 @@ begin
|
||||
Assert.areEqual(Integer(1), LGenericEntity.Code);
|
||||
Assert.areEqual('General Description', LGenericEntity.Description);
|
||||
|
||||
Assert.areEqual(Integer(5), LGenericEntity.Items.Count);
|
||||
Assert.areEqual<Integer>(Integer(5), LGenericEntity.Items.Count);
|
||||
Assert.areEqual('Description 01', LGenericEntity.Items[0].Description);
|
||||
Assert.areEqual('Description 02', LGenericEntity.Items[1].Description);
|
||||
Assert.areEqual('Description 03', LGenericEntity.Items[2].Description);
|
||||
Assert.areEqual('Description 04', LGenericEntity.Items[3].Description);
|
||||
Assert.areEqual('Description 05', LGenericEntity.Items[4].Description);
|
||||
|
||||
Assert.areEqual(Integer(5), LGenericEntity.Items2.Count);
|
||||
Assert.areEqual<Integer>(Integer(5), LGenericEntity.Items2.Count);
|
||||
Assert.areEqual('Description2 01', LGenericEntity.Items2[0].Description);
|
||||
Assert.areEqual('Description2 02', LGenericEntity.Items2[1].Description);
|
||||
Assert.areEqual('Description2 03', LGenericEntity.Items2[2].Description);
|
||||
|
@ -4,25 +4,15 @@
|
||||
<MainSource>TestServer.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">CI</Config>
|
||||
<TargetedPlatforms>131</TargetedPlatforms>
|
||||
<TargetedPlatforms>3</TargetedPlatforms>
|
||||
<AppType>Console</AppType>
|
||||
<FrameworkType>None</FrameworkType>
|
||||
<ProjectVersion>19.5</ProjectVersion>
|
||||
<ProjectVersion>20.1</ProjectVersion>
|
||||
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
|
||||
<Base_Android>true</Base_Android>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Android64' and '$(Base)'=='true') or '$(Base_Android64)'!=''">
|
||||
<Base_Android64>true</Base_Android64>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||
<Base_Win32>true</Base_Win32>
|
||||
<CfgParent>Base</CfgParent>
|
||||
@ -38,12 +28,6 @@
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Linux64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Linux64)'!=''">
|
||||
<Cfg_2_Linux64>true</Cfg_2_Linux64>
|
||||
<CfgParent>Cfg_2</CfgParent>
|
||||
<Cfg_2>true</Cfg_2>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
|
||||
<Cfg_2_Win32>true</Cfg_2_Win32>
|
||||
<CfgParent>Cfg_2</CfgParent>
|
||||
@ -70,16 +54,6 @@
|
||||
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
|
||||
<Icns_MainIcns>$(BDS)\bin\delphi_PROJECTICNS.icns</Icns_MainIcns>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Android)'!=''">
|
||||
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=</VerInfo_Keys>
|
||||
<BT_BuildType>Debug</BT_BuildType>
|
||||
<EnabledSysJars>annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar</EnabledSysJars>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Android64)'!=''">
|
||||
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=</VerInfo_Keys>
|
||||
<BT_BuildType>Debug</BT_BuildType>
|
||||
<EnabledSysJars>annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar</EnabledSysJars>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||
<BT_BuildType>Debug</BT_BuildType>
|
||||
@ -102,10 +76,6 @@
|
||||
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||
<DCC_ExeOutput>.\bin</DCC_ExeOutput>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Linux64)'!=''">
|
||||
<Debugger_UseLauncher>true</Debugger_UseLauncher>
|
||||
<Debugger_Launcher>/usr/bin/xterm -e "%debuggee%"</Debugger_Launcher>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
|
||||
@ -167,9 +137,6 @@
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<Platforms>
|
||||
<Platform value="Android">False</Platform>
|
||||
<Platform value="Android64">False</Platform>
|
||||
<Platform value="Linux64">True</Platform>
|
||||
<Platform value="Win32">True</Platform>
|
||||
<Platform value="Win64">True</Platform>
|
||||
</Platforms>
|
||||
@ -309,6 +276,16 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashImageDefV21">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashStyles">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values</RemoteDir>
|
||||
@ -329,6 +306,66 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashStylesV31">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\values-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconBackground">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconForeground">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconMonochrome">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_AdaptiveIconV33">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v33</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v33</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_Colors">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values</RemoteDir>
|
||||
@ -339,6 +376,16 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_ColorsDark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values-night-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\values-night-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_DefaultAppIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
@ -509,6 +556,56 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedNotificationIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v24</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v24</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplash">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashDark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashV31">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_VectorizedSplashV31Dark">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DebugSymbols">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
|
Loading…
Reference in New Issue
Block a user