Code organization

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@468 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa 2008-06-06 15:08:33 +00:00
parent 9780043f05
commit 5d0a26261e
2 changed files with 76 additions and 46 deletions

View File

@ -0,0 +1,74 @@
{ This file is part of the Web Service Toolkit
Copyright (c) 2006, 2007, 2008 by Inoussa OUEDRAOGO
This file is provide under modified LGPL licence
( the files COPYING.modifiedLGPL and COPYING.LGPL).
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}
{$INCLUDE wst_global.inc}
unit test_suite_utils;
interface
uses
Classes, SysUtils
{$IFDEF FPC}
,fpcunit, testutils, testregistry, DOM, XmlRead, wst_fpc_xml
{$ELSE}
,TestFrameWork, xmldom, wst_delphi_xml
{$ENDIF}
,wst_types;
function CompareNodes(const A,B : TDOMNode) : Boolean;overload;
implementation
function CompareNodes(const A,B : TDOMNode) : Boolean;overload;
var
ca, cb : TDOMNode;
i : PtrInt;
begin
if ( A = nil ) and ( B = nil ) then begin
Result := True;
end else if ( A <> nil ) and ( B <> nil ) then begin
Result := False;
if ( A.NodeName = B.NodeName ) and
( A.NodeValue = B.NodeValue )
then begin
if ( ( A.FirstChild = nil ) and ( B.FirstChild = nil ) ) or
( ( A.FirstChild <> nil ) and ( B.FirstChild <> nil ) )
then begin
ca := a.FirstChild;
cb := b.FirstChild;
while ( ca <> nil ) do begin
if not CompareNodes(ca,cb) then
Exit;
ca := ca.NextSibling;
cb := cb.NextSibling;
end;
if ( ( A.Attributes = nil ) and ( B.Attributes = nil ) ) or
( ( A.Attributes <> nil ) and ( B.Attributes <> nil ) )
then begin
if ( A.Attributes <> nil ) then begin
if ( A.Attributes.Length <> B.Attributes.Length ) then
Exit;
if ( A.Attributes.Length > 0 ) then begin
for i := 0 to Pred(A.Attributes.Length) do begin
if not CompareNodes(A.Attributes.Item[i],B.Attributes.Item[i]) then
Exit;
end;
end;
end;
Result := True;
end;
end;
end;
end else begin
Result := False;
end;
end;
end.

View File

@ -529,7 +529,8 @@ uses base_binary_formatter, base_soap_formatter, base_xmlrpc_formatter, record_r
{$ENDIF}
, server_service_soap, soap_formatter,
server_service_xmlrpc, xmlrpc_formatter,
binary_streamer, server_binary_formatter, binary_formatter;
binary_streamer, server_binary_formatter, binary_formatter,
test_suite_utils;
function CompareNodes(const A,B : PDataBuffer) : Boolean;overload;forward;
@ -632,51 +633,6 @@ begin
Result := ok;
end;
function CompareNodes(const A,B : TDOMNode) : Boolean;overload;
var
ca, cb : TDOMNode;
i : PtrInt;
begin
if ( A = nil ) and ( B = nil ) then begin
Result := True;
end else if ( A <> nil ) and ( B <> nil ) then begin
Result := False;
if ( A.NodeName = B.NodeName ) and
( A.NodeValue = B.NodeValue )
then begin
if ( ( A.FirstChild = nil ) and ( B.FirstChild = nil ) ) or
( ( A.FirstChild <> nil ) and ( B.FirstChild <> nil ) )
then begin
ca := a.FirstChild;
cb := b.FirstChild;
while ( ca <> nil ) do begin
if not CompareNodes(ca,cb) then
Exit;
ca := ca.NextSibling;
cb := cb.NextSibling;
end;
if ( ( A.Attributes = nil ) and ( B.Attributes = nil ) ) or
( ( A.Attributes <> nil ) and ( B.Attributes <> nil ) )
then begin
if ( A.Attributes <> nil ) then begin
if ( A.Attributes.Length <> B.Attributes.Length ) then
Exit;
if ( A.Attributes.Length > 0 ) then begin
for i := 0 to Pred(A.Attributes.Length) do begin
if not CompareNodes(A.Attributes.Item[i],B.Attributes.Item[i]) then
Exit;
end;
end;
end;
Result := True;
end;
end;
end;
end else begin
Result := False;
end;
end;
function RandomValue(const AMaxlen: Integer): ansistring;
var
k : Integer;