function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
34213421 

How can I cover the child elements of xml in test class

The child elements in the xml are not being covered in the test class. Since the childelements are not identified, the datamap is coming as null and that in turn is not covering the rest of the lines. I did look at all the possible links in all communities, but I am not sure how I could get the child elements in test class
Here is the sample xml
<Response> 
<XMLRootNode xmlns="http://www.how.com/Services/CustomReport/v1"> 
<ResponseHeader/>
 <CustomReport Name="Order" ID="69"> 
<DataRow>
 <DataColumn Name="PaymentID">634</DataColumn> 
<DataColumn Name="Company Number">0011N00001LoAVw</DataColumn> <DataColumn Name="Companyname">Inventory</DataColumn> 
<DataColumn Name="ContactFName">ane</DataColumn> 
<DataColumn Name="ContactLName">Pratt</DataColumn> 
<DataColumn Name="Mode">Online Credit Card</DataColumn>
 <DataColumn Name="Amount">8900.0000</DataColumn> 
<DataColumn Name="Card Type">Visa</DataColumn>
 <DataColumn Name="OrderID">714</DataColumn>
 <DataColumn Name="OrderAmtPaid">8900.0000</DataColumn> 
<DataColumn Name="Item">Networking</DataColumn> 
</DataRow>

Here is the code for the handler class that is returning null
public Static Void loadChilds(DOM.XMLNode xmlnode){ 
for (Dom.XMLNode child: xmlnode.getChildElements()) { 

If (child.getName()=='CustomReport') { 

for (DOM.XMLNode grandchild: child.getChildElements()) { 
datalst.add(grandchild); 
} 
PerformOperations(datalst); 
} 
else{ loadChilds(child); 
} } } 

public Static Void PerformOperations(List<DOM.XMLNode> xmlnodes){ system.debug('xmlnodes list size'+xmlnodes.size()); 
for (DOM.XMLNode grandchild: xmlnodes) { 
for (DOM.XMLNode node: grandchild.getChildElements()) { 
String paymentid = node.getAttributeValue('Name', '');

 if(paymentid=='OrderID') 
dataelementmap.put(node.getText(), grandchild); 
} }

 If(!dataelementmap.isEmpty()){ 

for(String str:dataelementmap.keyset()){ 
for (DOM.XMLNode node: dataelementmap.get(str).getChildElements()) {
Since the dataelementmap is null, anything is not getting covered.
Here is my test class that I started
Test.startTest(); 

comdataservicesdomhandler AP = new comdataservicesdomhandler(); 

String endPoint ='end'; String soapmessage = 'message';
 Integer timeout = 10; 
SingleRequestMock fakeResponse = new SingleRequestMock(200,'Complete','[{"Name":"sForceTest1"}]',null); 

Test.setMock(HttpCalloutMock.class, fakeResponse); comdataservicesdomhandler.SendRequest(); comdataservicesdomhandler.CallProcessRequest(); 

Http h = new Http();

 HttpRequest req = new HttpRequest(); 
req.setMethod('POST'); 
HttpResponse res = new HttpResponse(); 
res.setHeader('Content-Type', 'XML'); 
res.setBody('<?xml version="1.0"?><CustomReport Name="Order Payment" ID="69"><DataRow><DataColumn Name="PaymentID">634</DataColumn><DataColumn Name="Company Number">0011N00001LoAVw</DataColumn><DataColumn Name="Companyname">Z5 Inventory</DataColumn><DataColumn Name="ContactFName">ane</DataColumn><DataColumn Name="ContactLName">ratt</DataColumn><DataColumn Name="Mode">Online Credit Card</DataColumn><DataColumn Name="Amount">8900.0000</DataColumn><DataColumn Name="Card Type">Visa</DataColumn><DataColumn Name="PaymentDate">11/20/2019 11:56:42 AM</DataColumn><DataColumn Name="OrderID">714</DataColumn><DataColumn Name="OrderAmtPaid">8900.0000</DataColumn><DataColumn Name="Item">Networking</DataColumn></DataRow></CustomReport>'); 

Dom.Document doc = res.getBodyDocument(); 
Dom.XMLNode CustomReport1 = doc.getRootElement(); 
Dom.XmlNode CustomReport2 = doc.getRootElement(); 
List<Dom.XmlNode> creport = new List<Dom.XmlNode>(); creport.add(CustomReport1); 
creport.add(CustomReport2); 
String ResponseXml = 'cia'; comdataservicesdomhandler.Processresponse('<?xml version="1.0"?><CustomReport Name="Order Payment" ID="69"><DataRow><DataColumn Name="PaymentID">634</DataColumn><DataColumn Name="Company Number">0011N00001LoAVw</DataColumn><DataColumn Name="Companyname">Z5 Inventory</DataColumn><DataColumn Name="ContactFName">ane</DataColumn><DataColumn Name="ContactLName">ratt</DataColumn><DataColumn Name="Mode">Online Credit Card</DataColumn><DataColumn Name="Amount">8900.0000</DataColumn><DataColumn Name="Card Type">Visa</DataColumn><DataColumn Name="PaymentDate">11/20/2019 11:56:42 AM</DataColumn><DataColumn Name="OrderID">714</DataColumn><DataColumn Name="OrderAmtPaid">8900.0000</DataColumn><DataColumn Name="Item">Networking</DataColumn></DataRow></CustomReport>'); comdataservicedomhandler.loadChilds(CustomReport1);