diff --git a/.gitignore b/.gitignore
index 783ec2d..949baec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,8 @@
HELP.md
target/
!customer-service/.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
+!tests/smoke-tests/src/main/**/target/
+!tests/smoke-tests/src/test/**/target/
.DS_Store
### STS ###
@@ -27,8 +27,8 @@ target/
/nbdist/
/.nb-gradle/
build/
-!**/src/main/**/build/
-!**/src/test/**/build/
+!tests/smoke-tests/src/main/**/build/
+!tests/smoke-tests/src/test/**/build/
### VS Code ###
.vscode/
diff --git a/pom.xml b/pom.xml
index 84cc150..5e7239f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,6 +23,12 @@
2.17.1
2.3
5.3.0
+ 1.82
+ 2.10.1
+ 5.3.1
+ 0.9.5
+ 1.0.2
+
@@ -92,8 +98,39 @@
aws-java-sdk-sts
${amazonaws.version}
+
+ io.rest-assured
+ rest-assured
+ 5.3.1
+
+
+ org.apache.groovy
+ groovy-xml
+
+
+
+
+ com.beust
+ jcommander
+ 1.82
+
+
+ com.google.code.gson
+ gson
+ 2.10.1
+
+
+ org.codehaus.jackson
+ jackson-asl
+ 0.9.5
+
+
+
+ com.github.javafaker
+ javafaker
+ 1.0.2
+
-
diff --git a/tests/smoke-tests/src/main/java/com/techorgx/api/CustomerServiceTest.java b/tests/smoke-tests/src/main/java/com/techorgx/api/CustomerServiceTest.java
new file mode 100644
index 0000000..ed5da07
--- /dev/null
+++ b/tests/smoke-tests/src/main/java/com/techorgx/api/CustomerServiceTest.java
@@ -0,0 +1,64 @@
+package com.techorgx.api;
+
+import com.github.javafaker.Faker;
+import com.techorgx.api.endpoints.UserEndPoints;
+import com.techorgx.api.payload.User;
+import io.restassured.response.Response;
+import org.apache.http.HttpStatus;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+public class CustomerServiceTest {
+ Faker faker;
+ User userPayload;
+
+ @BeforeClass
+ public void setupData() {
+ faker = new Faker();
+ userPayload = new User();
+ userPayload.setUsername(faker.name().username());
+ userPayload.setFirstName(faker.name().firstName());
+ userPayload.setLastName(faker.name().lastName());
+ userPayload.setAddress(faker.address().streetAddress());
+ userPayload.setCity(faker.address().city());
+ userPayload.setPincode(faker.address().zipCode());
+ userPayload.setEmail(faker.internet().safeEmailAddress());
+ }
+
+ @Test(priority = 1)
+ public void testPostUser() {
+ Response response = UserEndPoints.createUser(userPayload);
+ response.then().log().all()
+ .statusCode(HttpStatus.SC_ACCEPTED);
+ }
+
+ @Test(priority = 2)
+ public void testGetUserByName() {
+ Response response = UserEndPoints.readUser(this.userPayload.getUsername());
+ response.then().log().all()
+ .statusCode(HttpStatus.SC_OK);
+ }
+
+ @Test(priority = 3)
+ public void testUpdateUser() {
+
+ userPayload.setFirstName(faker.name().firstName());
+ userPayload.setLastName(faker.name().lastName());
+
+ Response response = UserEndPoints.updateUser(this.userPayload.getUsername(), userPayload);
+ response.then().log().all()
+ .statusCode(HttpStatus.SC_OK);
+
+ //Checking data after update
+ Response responseAfterUpdation=UserEndPoints.readUser (this.userPayload.getUsername());
+ responseAfterUpdation.then().log().all()
+ .statusCode(HttpStatus.SC_OK);
+ }
+
+ @Test(priority = 4)
+ public void testDeleteUserByName() {
+ Response response = UserEndPoints.deleteUser(this.userPayload.getUsername());
+ response.then().log().all()
+ .statusCode(HttpStatus.SC_OK);
+ }
+}
\ No newline at end of file
diff --git a/tests/smoke-tests/src/main/java/com/techorgx/api/endpoints/Routes.java b/tests/smoke-tests/src/main/java/com/techorgx/api/endpoints/Routes.java
new file mode 100644
index 0000000..1644647
--- /dev/null
+++ b/tests/smoke-tests/src/main/java/com/techorgx/api/endpoints/Routes.java
@@ -0,0 +1,12 @@
+package com.techorgx.api.endpoints;
+
+//Base url: http://localhost:7979/v1/customer-service
+//Create user(POST) : http://localhost:7979/v1/customer-service/add-customer
+//Get User (GET): http://localhost:7979/v1/customer-service/get-customer?id=
+public class Routes {
+ public final static String BASE_URL = "http://localhost:7979/v1/customer-service";
+ public final static String POST_URL = BASE_URL + "/add-customer";
+ public final static String GET_URL = BASE_URL + "/get-customer";
+ public static String UPDATE_URL = BASE_URL + "/update-customer";
+ public static String DELETE_URL = BASE_URL + "/delete-customer";
+}
diff --git a/tests/smoke-tests/src/main/java/com/techorgx/api/endpoints/UserEndPoints.java b/tests/smoke-tests/src/main/java/com/techorgx/api/endpoints/UserEndPoints.java
new file mode 100644
index 0000000..18b14de
--- /dev/null
+++ b/tests/smoke-tests/src/main/java/com/techorgx/api/endpoints/UserEndPoints.java
@@ -0,0 +1,55 @@
+package com.techorgx.api.endpoints;
+
+// UserEndPints.java
+// Created for perform Create, Read, Update, Delete requests t the user API
+import com.techorgx.api.payload.User;
+import io.restassured.http.ContentType;
+import io.restassured.response.Response;
+import static io.restassured.RestAssured.given;
+public class UserEndPoints {
+
+ private final static String CLIENT_ID = "test";
+ public static Response createUser(User payload) {
+ Response response = given()
+ .contentType(ContentType.JSON)
+ .accept(ContentType.JSON)
+ .header("client-id", CLIENT_ID)
+ .body(payload)
+ .when()
+ .post(Routes.POST_URL);
+ return response;
+ }
+ public static Response readUser(String username) {
+ System.out.println("readUser " + username);
+ String id = username;
+ Response response = given()
+ .queryParam("id", username)
+ .header("client-id", CLIENT_ID)
+ .when()
+ .get(Routes.GET_URL);
+ return response;
+ }
+ public static Response updateUser (String username, User payload)
+ {
+ Response response=given()
+ .contentType(ContentType.JSON)
+ .accept(ContentType.JSON)
+ .queryParam("id" , username)
+ .header("client-id", CLIENT_ID)
+ .body (payload)
+ .when()
+ .put(Routes.UPDATE_URL);
+ return response;
+ }
+ public static Response deleteUser (String username)
+ {
+ Response response=given()
+ .contentType(ContentType.JSON)
+ .accept(ContentType.JSON)
+ .queryParam("id" , username)
+ .header("client-id", CLIENT_ID)
+ .when()
+ .delete(Routes.DELETE_URL);
+ return response;
+ }
+}
\ No newline at end of file
diff --git a/tests/smoke-tests/src/main/java/com/techorgx/api/payload/User.java b/tests/smoke-tests/src/main/java/com/techorgx/api/payload/User.java
new file mode 100644
index 0000000..32f7713
--- /dev/null
+++ b/tests/smoke-tests/src/main/java/com/techorgx/api/payload/User.java
@@ -0,0 +1,54 @@
+package com.techorgx.api.payload;
+
+public class User {
+ private String city;
+ private String pincode;
+ private String email;
+ private String username;
+ private String firstName;
+ private String lastName;
+ private String address;
+
+ public String getUsername() {
+ return username;
+ }
+ public void setUsername(String username) {
+ this.username = username;
+ }
+ public String getFirstName() {
+ return firstName;
+ }
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+ public String getLastName() {
+ return lastName;
+ }
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+ public String getAddress() {
+ return address;
+ }
+ public void setAddress(String address) {
+ this.address = address;
+ }
+ public String getCity() {
+ return city;
+ }
+ public void setCity(String city) {
+ this.city = city;
+ }
+ public String getPincode() {
+ return pincode;
+ }
+ public void setPincode(String pincode) {
+ this.pincode = pincode;
+ }
+ public String getEmail() {
+ return email;
+ }
+ public void setEmail(String email) {
+ this.email = email;
+ }
+}