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; + } +}