Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
NisumPoc
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Arpita Shrivastava
NisumPoc
Commits
255fe4f4
Commit
255fe4f4
authored
Jun 22, 2019
by
Nisum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Sujatha added code to parse XML and post the file
parent
26e23354
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
230 additions
and
0 deletions
+230
-0
ParseXMLSteps.java
src/test/java/com/qa/stepdefinition/ParseXMLSteps.java
+49
-0
ParseXML.java
src/test/java/com/qa/utilities/ParseXML.java
+110
-0
ParseXML.feature
src/test/resources/features/ParseXML.feature
+9
-0
sample.xml
src/test/resources/requestPayload_employee/sample.xml
+15
-0
ParseXMLSteps.class
...et/test-classes/com/qa/stepdefinition/ParseXMLSteps.class
+0
-0
ParseXML.class
target/test-classes/com/qa/utilities/ParseXML.class
+0
-0
driverData.json
target/test-classes/driverData.json
+23
-0
ParseXML.feature
target/test-classes/features/ParseXML.feature
+9
-0
sample.xml
target/test-classes/requestPayload_employee/sample.xml
+15
-0
No files found.
src/test/java/com/qa/stepdefinition/ParseXMLSteps.java
0 → 100644
View file @
255fe4f4
package
com
.
qa
.
stepdefinition
;
import
static
org
.
hamcrest
.
CoreMatchers
.
containsString
;
import
static
org
.
hamcrest
.
CoreMatchers
.
notNullValue
;
import
java.io.File
;
import
org.junit.Assert
;
import
com.qa.utilities.Util
;
import
com.qa.utilities.ParseXML
;
import
cucumber.api.java.en.Then
;
import
cucumber.api.java.en.When
;
import
io.restassured.RestAssured
;
import
io.restassured.response.Response
;
import
io.restassured.response.ValidatableResponse
;
public
class
ParseXMLSteps
{
private
Response
response
;
private
ValidatableResponse
xml
;
private
Util
util
=
new
Util
();
private
ParseXML
parsexml
=
new
ParseXML
();
@When
(
"^employee XML Updated data is uploaded through webservice$"
)
public
void
employee_XML_Updated_data_is_uploaded_through_webservice
()
throws
Throwable
{
File
reqPayload
=
new
File
(
util
.
getValue
(
"employee_XML_correct_req_payload_loc"
));
parsexml
.
ReadXMLFileFromLocal
(
reqPayload
);
parsexml
.
getXMLNodes
();
parsexml
.
UpdateXMLContent
();
response
=
util
.
post_XMLData_employee
(
reqPayload
);
}
@Then
(
"^verify the success status code (\\d+) is generated$"
)
public
void
verify_the_success_status_code_is_generated
(
int
arg1
)
{
xml
=
response
.
then
().
statusCode
(
arg1
);
int
statusCode
=
response
.
getStatusCode
();
Assert
.
assertEquals
(
statusCode
,
200
);
}
@Then
(
"^verify success message is generated$"
)
public
void
verify_success_message_is_generated
()
{
String
successCode
=
response
.
xmlPath
().
get
(
"SuccessCode"
);
Assert
.
assertEquals
(
"Correct Success code was returned"
,
successCode
,
"OPERATION_SUCCESS"
);
}
}
src/test/java/com/qa/utilities/ParseXML.java
0 → 100644
View file @
255fe4f4
package
com
.
qa
.
utilities
;
import
java.io.File
;
import
javax.xml.parsers.DocumentBuilder
;
import
javax.xml.parsers.DocumentBuilderFactory
;
import
javax.xml.transform.OutputKeys
;
import
javax.xml.transform.Transformer
;
import
javax.xml.transform.TransformerFactory
;
import
javax.xml.transform.dom.DOMSource
;
import
javax.xml.transform.stream.StreamResult
;
import
org.w3c.dom.Document
;
import
org.w3c.dom.Element
;
import
org.w3c.dom.Node
;
import
org.w3c.dom.NodeList
;
import
com.qa.utilities.Util
;
public
class
ParseXML
{
private
Util
util
=
new
Util
();
Document
doc
=
null
;
NodeList
nList
;
//Read the XML file
public
void
ReadXMLFileFromLocal
(
File
file
)
{
try
{
DocumentBuilderFactory
dbFactory
=
DocumentBuilderFactory
.
newInstance
();
DocumentBuilder
dBuilder
=
dbFactory
.
newDocumentBuilder
();
doc
=
dBuilder
.
parse
(
file
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();}
}
//Get the Root Tag Staff from the XML file
public
void
getXMLNodes
()
{
doc
.
getDocumentElement
().
normalize
();
System
.
out
.
println
(
"Root element :"
+
doc
.
getDocumentElement
().
getNodeName
());
nList
=
doc
.
getElementsByTagName
(
"staff"
);
}
public
void
UpdateXMLContent
()
{
//Read all the sub nodes from the root Node staff
for
(
int
temp
=
0
;
temp
<
nList
.
getLength
();
temp
++)
{
Node
nNode
=
nList
.
item
(
temp
);
System
.
out
.
println
(
"\nCurrent Element :"
+
nNode
.
getNodeName
());
if
(
nNode
.
getNodeType
()
==
Node
.
ELEMENT_NODE
)
{
//Prints all the sub nodes
Element
eElement
=
(
Element
)
nNode
;
System
.
out
.
println
(
"Staff id : "
+
eElement
.
getAttribute
(
"id"
));
System
.
out
.
println
(
"First Name : "
+
eElement
.
getElementsByTagName
(
"firstname"
).
item
(
0
).
getTextContent
());
System
.
out
.
println
(
"Last Name : "
+
eElement
.
getElementsByTagName
(
"lastname"
).
item
(
0
).
getTextContent
());
System
.
out
.
println
(
"Nick Name : "
+
eElement
.
getElementsByTagName
(
"nickname"
).
item
(
0
).
getTextContent
());
System
.
out
.
println
(
"Salary : "
+
eElement
.
getElementsByTagName
(
"salary"
).
item
(
0
).
getTextContent
());
System
.
out
.
println
(
"----------------------------"
);
//Updates the Firstname node
Node
firstNameNode
=
eElement
.
getElementsByTagName
(
"firstname"
).
item
(
0
).
getFirstChild
();
firstNameNode
.
setNodeValue
(
"GHI"
);
try
{
//Writes the new content to the XML file
doc
.
getDocumentElement
().
normalize
();
TransformerFactory
transformerFactory
=
TransformerFactory
.
newInstance
();
Transformer
transformer
=
transformerFactory
.
newTransformer
();
DOMSource
source
=
new
DOMSource
(
doc
);
StreamResult
result
=
new
StreamResult
(
new
File
(
"/Users/nisum/eclipse-workspace/Cuke/Cucumber-SpringBoot-Nisum_Practise-Projects/ParseJSONProject/sample.xml"
));
transformer
.
setOutputProperty
(
OutputKeys
.
INDENT
,
"yes"
);
transformer
.
transform
(
source
,
result
);
System
.
out
.
println
(
"XML file updated successfully"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
}
src/test/resources/features/ParseXML.feature
0 → 100644
View file @
255fe4f4
Feature
:
To post Employee data
@sanity
Scenario
:
post empployee XML correct details and assert response
When
employee XML Updated data is uploaded through webservice
Then
verify the success status code 200 is generated
And
verify success message is generated
src/test/resources/requestPayload_employee/sample.xml
0 → 100644
View file @
255fe4f4
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<company>
<staff
id=
"1001"
>
<firstname>
PRIYANKS
</firstname>
<lastname>
mook kim
</lastname>
<nickname>
mkyong
</nickname>
<salary>
100000
</salary>
</staff>
<staff
id=
"2001"
>
<firstname>
PRIYANKS
</firstname>
<lastname>
yin fong
</lastname>
<nickname>
fong fong
</nickname>
<salary>
200000
</salary>
</staff>
</company>
target/test-classes/com/qa/stepdefinition/ParseXMLSteps.class
0 → 100644
View file @
255fe4f4
File added
target/test-classes/com/qa/utilities/ParseXML.class
0 → 100644
View file @
255fe4f4
File added
target/test-classes/driverData.json
0 → 100644
View file @
255fe4f4
{
"MRData"
:
{
"xmlns"
:
"http://ergast.com/mrd/1.4"
,
"series"
:
"f1"
,
"url"
:
"http://ergast.com/api/f1/drivers/abecassis.json"
,
"limit"
:
"30"
,
"offset"
:
"0"
,
"total"
:
"1"
,
"DriverTable"
:
{
"driverId"
:
"abecassis"
,
"Drivers"
:
[
{
"driverId"
:
"abecassis"
,
"url"
:
"http://en.wikipedia.org/wiki/George_Abecassis"
,
"givenName"
:
"George"
,
"familyName"
:
"Abecassis"
,
"dateOfBirth"
:
"1913-03-21"
,
"nationality"
:
"British"
}
]
}
}
}
\ No newline at end of file
target/test-classes/features/ParseXML.feature
0 → 100644
View file @
255fe4f4
Feature
:
To post Employee data
@sanity
Scenario
:
post empployee XML correct details and assert response
When
employee XML Updated data is uploaded through webservice
Then
verify the success status code 200 is generated
And
verify success message is generated
target/test-classes/requestPayload_employee/sample.xml
0 → 100644
View file @
255fe4f4
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<company>
<staff
id=
"1001"
>
<firstname>
PRIYANKS
</firstname>
<lastname>
mook kim
</lastname>
<nickname>
mkyong
</nickname>
<salary>
100000
</salary>
</staff>
<staff
id=
"2001"
>
<firstname>
PRIYANKS
</firstname>
<lastname>
yin fong
</lastname>
<nickname>
fong fong
</nickname>
<salary>
200000
</salary>
</staff>
</company>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment