Skip to main content

Serialization

Try on your own

Prerequisites

  • JDK 1.8
  • IntelliJ

Steps to follow:

  • Clone my GitHub repository
    • git clone git@github.com:smarigowda/serialization-demo-java.git
    • cd serialization-demo-java
  • Change the branch
    • git checkout serialization-demo
  • Clean, install and run the test on command line
    • mvn clean install -Dtest=AppTest
  • Open the project in IntelliJ
  • Run the test

Notes

Tools, Libraries and Features used in this project

  • REST Assured - A framework for REST API Testing
  • TestNG - Test Runner
  • Maven - Dependency Manager++
  • POJO Classes - Blue print for data. Getter and setter methods

What is Serialisation

Converting Java Object to a JSON (json is text format) is one example of serialization.

What are we testing

We are testing the Create Place REST API.

Details are given below:

Base URI: https://rahulshettyacademy.com
Resource: /maps/api/place/add/json
HTTP Method: POST
Query Parameters: key=qaclick123

Sample Request

{
"location": {
"lat": -38.383494,
"lng": 33.427362
},
"accuracy": 50,
"name": "Frontline house",
"phone_number": "(+91) 983 893 3937",
"address": "29, side layout, cohen 09",
"types": ["shoe park", "shop"],
"website": "http://google.com",
"language": "French-IN"
}

Sample Response

{
"status": "OK",
"place_id": "928b51f64aed18713b0d164d9be8d67f",
"scope": "APP",
"reference": "736f3c9bec384af62a184a1936d42bb0736f3c9bec384af62a184a1936d42bb0",
"id": "736f3c9bec384af62a184a1936d42bb0"
}

How the program works ?

  • We first create POJO Classes to match the Request Body
  • Then create an instance of the top level POJO Class (a java object) and set the data for all the fields
  • And then we give this object to the body method of REST Assured framework
  • REST Assured converts the java object into JSON and sends the request. This is an example of the use of Serialization.

How REST Assured supports Serialisation

REST Assured has documented this very well (link below)
https://github.com/rest-assured/rest-assured/wiki/Usage#serialization