|
@@ -19,7 +19,7 @@ unit testjsondata;
|
|
interface
|
|
interface
|
|
|
|
|
|
uses
|
|
uses
|
|
- Classes, SysUtils, fpcunit, testutils, testregistry, fpjson;
|
|
|
|
|
|
+ Classes, SysUtils, fpcunit, testregistry, fpjson;
|
|
|
|
|
|
type
|
|
type
|
|
TMyNull = Class(TJSONNull);
|
|
TMyNull = Class(TJSONNull);
|
|
@@ -204,6 +204,7 @@ type
|
|
Procedure TestClone;
|
|
Procedure TestClone;
|
|
Procedure TestMyClone;
|
|
Procedure TestMyClone;
|
|
Procedure TestFormat;
|
|
Procedure TestFormat;
|
|
|
|
+ Procedure TestFormatNil;
|
|
end;
|
|
end;
|
|
|
|
|
|
{ TTestObject }
|
|
{ TTestObject }
|
|
@@ -252,6 +253,7 @@ type
|
|
procedure TestExtract;
|
|
procedure TestExtract;
|
|
Procedure TestNonExistingAccessError;
|
|
Procedure TestNonExistingAccessError;
|
|
Procedure TestFormat;
|
|
Procedure TestFormat;
|
|
|
|
+ Procedure TestFormatNil;
|
|
Procedure TestFind;
|
|
Procedure TestFind;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -1002,7 +1004,6 @@ end;
|
|
|
|
|
|
procedure TTestJSONPath.TestDeepRecursive;
|
|
procedure TTestJSONPath.TestDeepRecursive;
|
|
Var
|
|
Var
|
|
- O : TJSONObject;
|
|
|
|
A : TJSONArray;
|
|
A : TJSONArray;
|
|
D : TJSONData;
|
|
D : TJSONData;
|
|
begin
|
|
begin
|
|
@@ -2563,7 +2564,6 @@ procedure TTestArray.TestAddString;
|
|
Var
|
|
Var
|
|
J : TJSONArray;
|
|
J : TJSONArray;
|
|
S : String;
|
|
S : String;
|
|
- F : TJSONFloat;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
S:='A string';
|
|
S:='A string';
|
|
@@ -2585,8 +2585,6 @@ procedure TTestArray.TestAddNull;
|
|
|
|
|
|
Var
|
|
Var
|
|
J : TJSONArray;
|
|
J : TJSONArray;
|
|
- S : String;
|
|
|
|
- F : TJSONFloat;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
J:=TJSonArray.Create;
|
|
J:=TJSonArray.Create;
|
|
@@ -2720,7 +2718,6 @@ procedure TTestArray.TestInsertString;
|
|
Var
|
|
Var
|
|
J : TJSONArray;
|
|
J : TJSONArray;
|
|
S : String;
|
|
S : String;
|
|
- F : TJSONFloat;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
S:='A string';
|
|
S:='A string';
|
|
@@ -2742,8 +2739,6 @@ end;
|
|
procedure TTestArray.TestInsertNull;
|
|
procedure TTestArray.TestInsertNull;
|
|
Var
|
|
Var
|
|
J : TJSONArray;
|
|
J : TJSONArray;
|
|
- S : String;
|
|
|
|
- F : TJSONFloat;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
J:=TJSonArray.Create;
|
|
J:=TJSonArray.Create;
|
|
@@ -2825,11 +2820,8 @@ end;
|
|
procedure TTestArray.TestMove;
|
|
procedure TTestArray.TestMove;
|
|
Var
|
|
Var
|
|
J : TJSONArray;
|
|
J : TJSONArray;
|
|
- S : String;
|
|
|
|
- F : TJSONFloat;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
- S:='A string';
|
|
|
|
J:=TJSonArray.Create;
|
|
J:=TJSonArray.Create;
|
|
try
|
|
try
|
|
J.Add('First string');
|
|
J.Add('First string');
|
|
@@ -2849,11 +2841,8 @@ end;
|
|
procedure TTestArray.TestExchange;
|
|
procedure TTestArray.TestExchange;
|
|
Var
|
|
Var
|
|
J : TJSONArray;
|
|
J : TJSONArray;
|
|
- S : String;
|
|
|
|
- F : TJSONFloat;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
- S:='A string';
|
|
|
|
J:=TJSonArray.Create;
|
|
J:=TJSonArray.Create;
|
|
try
|
|
try
|
|
J.Add('First string');
|
|
J.Add('First string');
|
|
@@ -2987,7 +2976,7 @@ end;
|
|
|
|
|
|
procedure TTestArray.TestMyClone;
|
|
procedure TTestArray.TestMyClone;
|
|
Var
|
|
Var
|
|
- J,J2 : TMyArray;
|
|
|
|
|
|
+ J : TMyArray;
|
|
D : TJSONData;
|
|
D : TJSONData;
|
|
|
|
|
|
begin
|
|
begin
|
|
@@ -3010,7 +2999,6 @@ end;
|
|
procedure TTestArray.TestFormat;
|
|
procedure TTestArray.TestFormat;
|
|
Var
|
|
Var
|
|
J : TJSONArray;
|
|
J : TJSONArray;
|
|
- I : TJSONData;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
J:=TJSonArray.Create;
|
|
J:=TJSonArray.Create;
|
|
@@ -3033,6 +3021,23 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TTestArray.TestFormatNil;
|
|
|
|
+
|
|
|
|
+Var
|
|
|
|
+ J : TJSONArray;
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ J:=TJSonArray.Create;
|
|
|
|
+ try
|
|
|
|
+ J.Add(1);
|
|
|
|
+ J.Add(TJSONObject(Nil));
|
|
|
|
+ TestJSON(J,'[1, null]');
|
|
|
|
+ AssertEquals('FormatJSON, single line',J.AsJSON,J.FormatJSON([foSingleLineArray],1));
|
|
|
|
+ finally
|
|
|
|
+ J.Free;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
{ TTestObject }
|
|
{ TTestObject }
|
|
|
|
|
|
procedure TTestObject.TestCreate;
|
|
procedure TTestObject.TestCreate;
|
|
@@ -3199,7 +3204,6 @@ Const
|
|
Var
|
|
Var
|
|
J : TJSONObject;
|
|
J : TJSONObject;
|
|
S : String;
|
|
S : String;
|
|
- F : TJSONFloat;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
S:='A string';
|
|
S:='A string';
|
|
@@ -3224,8 +3228,6 @@ Const
|
|
|
|
|
|
Var
|
|
Var
|
|
J : TJSONObject;
|
|
J : TJSONObject;
|
|
- S : String;
|
|
|
|
- F : TJSONFloat;
|
|
|
|
|
|
|
|
begin
|
|
begin
|
|
J:=TJSonObject.Create;
|
|
J:=TJSonObject.Create;
|
|
@@ -3482,6 +3484,23 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TTestObject.TestFormatNil;
|
|
|
|
+
|
|
|
|
+Var
|
|
|
|
+ J : TJSONObject;
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ J:=TJSONObject.Create;
|
|
|
|
+ try
|
|
|
|
+ J.Add('a',1);
|
|
|
|
+ J.Add('b',TJSONObject(Nil));
|
|
|
|
+ TestJSON(J,'{ "a" : 1, "b" : null }');
|
|
|
|
+ AssertEquals('FormatJSON, single line',J.AsJSON,J.FormatJSON([foSingleLineObject],1));
|
|
|
|
+ finally
|
|
|
|
+ J.Free;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TTestObject.TestFind;
|
|
procedure TTestObject.TestFind;
|
|
|
|
|
|
Const
|
|
Const
|