Skip to content

Commit

Permalink
Added functional tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mans4singh committed Dec 23, 2016
1 parent 828057a commit 32fc945
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import com.jayway.restassured.http.ContentType;
import com.jayway.restassured.path.json.exception.JsonPathException;
import com.jayway.restassured.response.Response;

import org.apache.http.HttpStatus;
import org.slf4j.Logger;
import org.testng.Assert;
Expand Down Expand Up @@ -445,6 +446,32 @@ public Experiment putExperiment(Experiment experiment, int expectedStatus, APISe
return ExperimentFactory.createFromJSONString(response.jsonPath().prettify());
}

public void postSuperAdmin(String userId, int expectedStatus, APIServerConnector apiServerConnector) {

response = apiServerConnector.doPost("authorization/superadmins/" + userId);
assertReturnCode(response, expectedStatus);
}

public void deleteSuperAdmin(String userId, int expectedStatus, APIServerConnector apiServerConnector) {

response = apiServerConnector.doDelete("authorization/superadmins/" + userId);
assertReturnCode(response, expectedStatus);
}

public List<Map<String, Object>> getSuperAdmins(int expectedStatus, APIServerConnector apiServerConnector) {
response = apiServerConnector.doGet("authorization/superadmins");

LOGGER.debug("Response body: " + response.print());

List<Map<String,Object>> superadmins = response.jsonPath().getList("");

System.out.println(superadmins.size());

assertReturnCode(response, expectedStatus);

return superadmins;
}

/**
* Sends a GET request to get all experiments.
* The response must contain {@link HttpStatus#SC_OK}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,17 @@

public class Constants {

public static final String DEFAULT_CONFIG_FILE = "config.properties";
public static final String USER_USER_ID = "userID";
public static final String WASABI_EMAIL = "wasabi_reader@example.com";
public static final String WASABI_LAST_NAME = "Reader";
public static final String WASABI_FIRST_NAME = "Wasabi";
public static final String USER_EMAIL = "userEmail";
public static final String USER_ROLE = "role";
public static final String USER_LAST_NAME = "lastName";
public static final String USER_FIRST_NAME = "firstName";
public static final String USER_READER = "wasabi_reader";

public static final String DEFAULT_CONFIG_FILE = "config.properties";
public static final String DEFAULT_CONFIG_SERVER_PROTOCOL = "http";
public static final String DEFAULT_CONFIG_SERVER_NAME = "localhost:8080";
public static final String DEFAULT_CONFIG_API_VERSION_STRING = "v1";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.intuit.wasabi.tests.library.TestBase;
import com.intuit.wasabi.tests.model.Experiment;
import com.intuit.wasabi.tests.model.factory.ExperimentFactory;

import org.apache.http.HttpStatus;
import org.slf4j.Logger;
import org.testng.Assert;
Expand All @@ -33,13 +34,23 @@
import java.util.List;
import java.util.Map;

import static com.intuit.wasabi.tests.library.util.Constants.USER_EMAIL;
import static com.intuit.wasabi.tests.library.util.Constants.USER_FIRST_NAME;
import static com.intuit.wasabi.tests.library.util.Constants.USER_LAST_NAME;
import static com.intuit.wasabi.tests.library.util.Constants.USER_READER;
import static com.intuit.wasabi.tests.library.util.Constants.USER_ROLE;
import static com.intuit.wasabi.tests.library.util.Constants.USER_USER_ID;
import static com.intuit.wasabi.tests.library.util.Constants.WASABI_EMAIL;
import static com.intuit.wasabi.tests.library.util.Constants.WASABI_FIRST_NAME;
import static com.intuit.wasabi.tests.library.util.Constants.WASABI_LAST_NAME;
import static org.slf4j.LoggerFactory.getLogger;

/**
* Tests the user authorization endpoint.
*/
public class IntegrationAuthorization extends TestBase {

private static final String USER_ADMIN = "admin";
private static final Logger LOGGER = getLogger(IntegrationAuthorization.class);
private String userName;
private String password;
Expand Down Expand Up @@ -248,4 +259,62 @@ public void t_getApplicationUsersByRoleAgain() {
public void t_deleteExperiments() {
deleteExperiment(experiment);
}

@Test(dependsOnGroups = {"ping"})
public void t_addWasabiReaderAsSuperAdmin() {

List<Map<String,Object>> superadminsBefore = getSuperAdmins(HttpStatus.SC_OK, apiServerConnector);

boolean isWasabiSuperadmin = superadminsBefore.stream().map(map -> map.get(USER_USER_ID)).
anyMatch(userId -> USER_READER.equals(userId.toString()));

Assert.assertEquals(false, isWasabiSuperadmin);

postSuperAdmin(USER_READER, HttpStatus.SC_NO_CONTENT, apiServerConnector);

List<Map<String,Object>> superadminsAfterAdd = getSuperAdmins(HttpStatus.SC_OK, apiServerConnector);

isWasabiSuperadmin = superadminsAfterAdd.stream().map(map -> map.get(USER_USER_ID)).
anyMatch(userId -> USER_READER.equals(userId.toString()));

Assert.assertEquals(true, isWasabiSuperadmin);

Map<String, Object> wasabi = superadminsAfterAdd.stream().
filter( map -> USER_READER.equals(map.get(USER_USER_ID))).findFirst().get();

Assert.assertEquals(true, isWasabiSuperadmin);
Assert.assertEquals(WASABI_FIRST_NAME, wasabi.get(USER_FIRST_NAME).toString());
Assert.assertEquals(WASABI_LAST_NAME, wasabi.get(USER_LAST_NAME).toString());
Assert.assertEquals("SUPERADMIN", wasabi.get(USER_ROLE).toString());
Assert.assertEquals(WASABI_EMAIL, wasabi.get(USER_EMAIL).toString());

Assert.assertEquals(true,isWasabiSuperadmin);

}

@Test(dependsOnMethods = {"t_addWasabiReaderAsSuperAdmin"})
public void t_removeWasabiReaderAsSuperAdmin() {

List<Map<String,Object>> superadminsBefore = getSuperAdmins(HttpStatus.SC_OK, apiServerConnector);

boolean isWasabiSuperadmin = superadminsBefore.stream().map(map -> map.get(USER_USER_ID)).
anyMatch(userId -> USER_READER.equals(userId.toString()));

Assert.assertEquals(true, isWasabiSuperadmin);
deleteSuperAdmin(USER_READER, HttpStatus.SC_NO_CONTENT, apiServerConnector);

List<Map<String,Object>> superadminsAfterDelete = getSuperAdmins(HttpStatus.SC_OK, apiServerConnector);

isWasabiSuperadmin = superadminsAfterDelete.stream().map(map -> map.get(USER_USER_ID)).
anyMatch(userId -> USER_READER.equals(userId.toString()));

Assert.assertEquals(false, isWasabiSuperadmin);
}

@Test(dependsOnMethods = {"t_removeWasabiReaderAsSuperAdmin"})
public void t_removeLastSuperAdmin() {

deleteSuperAdmin(USER_ADMIN, HttpStatus.SC_BAD_REQUEST, apiServerConnector);

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
package com.intuit.wasabi.tests.service;

import com.intuit.wasabi.tests.library.TestBase;

import static com.intuit.wasabi.tests.library.util.Constants.*;
import com.intuit.wasabi.tests.library.util.Constants;
import com.intuit.wasabi.tests.library.util.ModelUtil;
import com.intuit.wasabi.tests.library.util.RetryAnalyzer;
Expand All @@ -25,6 +27,7 @@
import com.intuit.wasabi.tests.model.*;
import com.intuit.wasabi.tests.model.analytics.*;
import com.intuit.wasabi.tests.model.factory.*;

import org.apache.http.HttpStatus;
import org.slf4j.Logger;
import org.testng.Assert;
Expand All @@ -42,7 +45,7 @@
*/
public class SmokeTest extends TestBase {

private static final Logger LOGGER = getLogger(SmokeTest.class);
private static final Logger LOGGER = getLogger(SmokeTest.class);
private Experiment experiment;
private List<Bucket> buckets = new ArrayList<>();
private List<User> users = new ArrayList<>();
Expand Down

0 comments on commit 32fc945

Please sign in to comment.