* Fixed lazarus dependencies, and added extensive object test

git-svn-id: trunk@8525 -
This commit is contained in:
michael 2007-09-17 19:37:48 +00:00
parent 4f13348908
commit e13f356d04
3 changed files with 32 additions and 8 deletions

View File

@ -24,16 +24,19 @@
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<RequiredPackages Count="4">
<Item1>
<PackageName Value="LCL"/>
<PackageName Value="fpcunitconsolerunner"/>
</Item1>
<Item2>
<PackageName Value="FPCUnitTestRunner"/>
<PackageName Value="LCL"/>
</Item2>
<Item3>
<PackageName Value="FCL"/>
<PackageName Value="FPCUnitTestRunner"/>
</Item3>
<Item4>
<PackageName Value="FCL"/>
</Item4>
</RequiredPackages>
<Units Count="3">
<Unit0>
@ -55,6 +58,9 @@
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<SearchPaths>
<OtherUnitFiles Value="../src/"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>

View File

@ -17,7 +17,8 @@
program testjson;
uses
Classes, consoletestrunner, testjsondata, testjsonparser;
Classes, consoletestrunner, testjsondata, testjsonparser,
fpcunitconsolerunner;
type
{ TLazTestRunner }
TMyTestRunner = class(TTestRunner)

View File

@ -31,7 +31,7 @@ type
procedure DoTestError(S: String);
procedure DoTestFloat(F: TJSONFloat); overload;
procedure DoTestFloat(F: TJSONFloat; S: String); overload;
procedure DoTestObject(S: String; const ElNames: array of String);
procedure DoTestObject(S: String; const ElNames: array of String; DoJSONTest : Boolean = True);
procedure DoTestString(S : String);
procedure DoTestArray(S: String; ACount: Integer);
published
@ -204,12 +204,28 @@ end;
procedure TTestParser.TestMixed;
Const
SAddr ='{ "addressbook": { "name": "Mary Lebow", '+
' "address": {'+
' "street": "5 Main Street",'+LineEnding+
' "city": "San Diego, CA",'+LineEnding+
' "zip": 91912,'+LineEnding+
' },'+LineEnding+
' "phoneNumbers": [ '+LineEnding+
' "619 332-3452",'+LineEnding+
' "664 223-4667"'+LineEnding+
' ]'+LineEnding+
' }'+LineEnding+
'}';
begin
DoTestArray('[1, {}]',2);
DoTestArray('[1, { "a" : 1 }]',2);
DoTestArray('[1, { "a" : 1 }, 1]',3);
DoTestObject('{ "a" : [1, 2] }',['a']);
DoTestObject('{ "a" : [1, 2], "B" : { "c" : "d" } }',['a','B']);
DoTestObject(SAddr,['addressbook'],False);
end;
procedure TTestParser.TestObject;
@ -222,7 +238,7 @@ begin
end;
procedure TTestParser.DoTestObject(S : String; Const ElNames : Array of String);
procedure TTestParser.DoTestObject(S : String; Const ElNames : Array of String; DoJSONTest : Boolean = True);
Var
P : TJSONParser;
@ -242,7 +258,8 @@ begin
For I:=Low(ElNames) to High(ElNames) do
AssertEquals(Format('Element %d name',[I-Low(Elnames)])
,ElNames[i], O.Names[I-Low(ElNames)]);
TestJSON(J,S);
If DoJSONTest then
self.TestJSON(J,S);
Finally
FreeAndNil(J);
FreeAndNil(P);