- Add more tests to save map
- Add new rest operations for saving map content - Fix password encoding bug - Fix bug that allow different users being created with the same password.
This commit is contained in:
@@ -26,8 +26,8 @@ import java.util.List;
|
||||
public class RestAdminITCase {
|
||||
|
||||
@NonNls
|
||||
private static final String HOST_PORT = "http://localhost:8080/";
|
||||
private static final String BASE_REST_URL = HOST_PORT + "service";
|
||||
private static final String HOST_PORT = "http://localhost:8080";
|
||||
private static final String BASE_REST_URL = HOST_PORT + "/service";
|
||||
|
||||
@Test(dataProvider = "ContentType-Provider-Function")
|
||||
public void changePassword(final @NotNull MediaType mediaType) { // Configure media types ...
|
||||
@@ -35,13 +35,7 @@ public class RestAdminITCase {
|
||||
final RestTemplate templateRest = createTemplate();
|
||||
|
||||
// Fill user data ...
|
||||
final RestUser restUser = new RestUser();
|
||||
final String email = "foo-to-change" + System.nanoTime() + "@example.org";
|
||||
restUser.setEmail(email);
|
||||
restUser.setUsername("foo");
|
||||
restUser.setFirstname("foo first name");
|
||||
restUser.setLastname("foo last name");
|
||||
restUser.setPassword("foo password");
|
||||
final RestUser restUser = createDummyUser();
|
||||
|
||||
// User has been created ...
|
||||
final URI location = createUser(requestHeaders, templateRest, restUser);
|
||||
@@ -52,7 +46,6 @@ public class RestAdminITCase {
|
||||
// Change password ...
|
||||
requestHeaders.setContentType(MediaType.TEXT_PLAIN);
|
||||
HttpEntity<String> createUserEntity = new HttpEntity<String>("some-new-password", requestHeaders);
|
||||
System.out.println("Changed password to:" + email);
|
||||
templateRest.put(BASE_REST_URL + "/admin/users/{id}/password", createUserEntity, result.getBody().getId());
|
||||
}
|
||||
|
||||
@@ -62,14 +55,7 @@ public class RestAdminITCase {
|
||||
final HttpHeaders requestHeaders = createHeaders(mediaType);
|
||||
final RestTemplate templateRest = createTemplate();
|
||||
|
||||
// Fill user data ...
|
||||
final RestUser restUser = new RestUser();
|
||||
final String email = "foo-to-delete" + System.nanoTime() + "@example.org";
|
||||
restUser.setEmail(email);
|
||||
restUser.setUsername("foo");
|
||||
restUser.setFirstname("foo first name");
|
||||
restUser.setLastname("foo last name");
|
||||
restUser.setPassword("foo password");
|
||||
final RestUser restUser = createDummyUser();
|
||||
|
||||
// User has been created ...
|
||||
final URI location = createUser(requestHeaders, templateRest, restUser);
|
||||
@@ -89,22 +75,33 @@ public class RestAdminITCase {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test(dataProvider = "ContentType-Provider-Function")
|
||||
public void createNewUser(final @NotNull MediaType mediaType) {
|
||||
public void findUserByUsername(final @NotNull MediaType mediaType) { // Configure media types ...
|
||||
final HttpHeaders requestHeaders = createHeaders(mediaType);
|
||||
final RestTemplate templateRest = createTemplate();
|
||||
|
||||
final RestUser restUser = createDummyUser();
|
||||
|
||||
// User has been created ...
|
||||
createUser(requestHeaders, templateRest, restUser);
|
||||
|
||||
// Check that the user has been created ...
|
||||
HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders);
|
||||
final ResponseEntity<RestUser> responseEntity = templateRest.exchange(BASE_REST_URL + "/admin/users/username/" + restUser.getUsername(), HttpMethod.GET, findUserEntity, RestUser.class);
|
||||
|
||||
assertEquals(responseEntity.getBody().getUsername(), restUser.getUsername());
|
||||
|
||||
}
|
||||
|
||||
public String createNewUser(final @NotNull MediaType mediaType) {
|
||||
|
||||
// Configure media types ...
|
||||
final HttpHeaders requestHeaders = createHeaders(mediaType);
|
||||
final RestTemplate templateRest = createTemplate();
|
||||
|
||||
// Fill user data ...
|
||||
final RestUser restUser = new RestUser();
|
||||
|
||||
final String email = "foo" + System.nanoTime() + "@example.org";
|
||||
restUser.setEmail(email);
|
||||
restUser.setUsername("foo");
|
||||
restUser.setFirstname("foo first name");
|
||||
restUser.setLastname("foo last name");
|
||||
restUser.setPassword("foo password");
|
||||
final RestUser restUser = createDummyUser();
|
||||
|
||||
// Create a new user ...
|
||||
final URI location = createUser(requestHeaders, templateRest, restUser);
|
||||
@@ -113,16 +110,21 @@ public class RestAdminITCase {
|
||||
ResponseEntity<RestUser> result = findUser(requestHeaders, templateRest, location);
|
||||
assertEquals(result.getBody(), restUser, "Returned object object seems not be the same.");
|
||||
|
||||
|
||||
// Find by email and check ...
|
||||
result = findUserByEmail(requestHeaders, templateRest, email);
|
||||
result = findUserByEmail(requestHeaders, templateRest, restUser.getEmail());
|
||||
assertEquals(result.getBody(), restUser, "Returned object object seems not be the same.");
|
||||
|
||||
return restUser.getEmail();
|
||||
}
|
||||
|
||||
@Test(dataProvider = "ContentType-Provider-Function")
|
||||
public void createUser(final @NotNull MediaType mediaType) {
|
||||
this.createNewUser(mediaType);
|
||||
}
|
||||
|
||||
private ResponseEntity<RestUser> findUser(HttpHeaders requestHeaders, RestTemplate templateRest, URI location) {
|
||||
HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders);
|
||||
final String url = "http://localhost:8080" + location;
|
||||
final String url = HOST_PORT + location;
|
||||
return templateRest.exchange(url, HttpMethod.GET, findUserEntity, RestUser.class);
|
||||
}
|
||||
|
||||
@@ -130,7 +132,7 @@ public class RestAdminITCase {
|
||||
HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders);
|
||||
|
||||
// Add extension only to avoid the fact that the last part is extracted ...
|
||||
final String url = "http://localhost:8080/service/admin/users/email/{email}.json";
|
||||
final String url = BASE_REST_URL + "/admin/users/email/{email}.json";
|
||||
return templateRest.exchange(url, HttpMethod.GET, findUserEntity, RestUser.class, email);
|
||||
}
|
||||
|
||||
@@ -139,7 +141,7 @@ public class RestAdminITCase {
|
||||
return templateRest.postForLocation(BASE_REST_URL + "/admin/users", createUserEntity);
|
||||
}
|
||||
|
||||
private HttpHeaders createHeaders(MediaType mediaType) {
|
||||
private HttpHeaders createHeaders(@NotNull MediaType mediaType) {
|
||||
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
|
||||
acceptableMediaTypes.add(mediaType);
|
||||
final HttpHeaders requestHeaders = new HttpHeaders();
|
||||
@@ -164,6 +166,19 @@ public class RestAdminITCase {
|
||||
return new RestTemplate(s);
|
||||
}
|
||||
|
||||
private RestUser createDummyUser() {
|
||||
final RestUser restUser = new RestUser();
|
||||
final String username = "foo-to-delete" + System.nanoTime();
|
||||
final String email = username + "@example.org";
|
||||
restUser.setEmail(email);
|
||||
restUser.setUsername(username);
|
||||
restUser.setFirstname("foo first name");
|
||||
restUser.setLastname("foo last name");
|
||||
restUser.setPassword("admin");
|
||||
return restUser;
|
||||
}
|
||||
|
||||
|
||||
@DataProvider(name = "ContentType-Provider-Function")
|
||||
public Object[][] contentTypes() {
|
||||
return new Object[][]{{MediaType.APPLICATION_XML}, {MediaType.APPLICATION_JSON}};
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.wisemapping.test.rest;
|
||||
|
||||
|
||||
import com.wisemapping.rest.model.RestMindmap;
|
||||
import com.wisemapping.rest.model.RestUser;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -8,6 +9,8 @@ import org.springframework.http.*;
|
||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
||||
import org.springframework.security.crypto.codec.Base64;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.BeforeSuite;
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@@ -24,32 +27,102 @@ import static org.testng.Assert.fail;
|
||||
@Test
|
||||
public class RestMindmapTCase {
|
||||
|
||||
@NonNls
|
||||
private static final String HOST_PORT = "http://localhost:8080/";
|
||||
private static final String BASE_REST_URL = HOST_PORT + "service";
|
||||
private String userEmail = "admin@wisemapping.com";
|
||||
private static final String HOST_PORT = "http://localhost:8080";
|
||||
private static final String BASE_REST_URL = HOST_PORT + "/service";
|
||||
|
||||
private URI createUser(@NotNull HttpHeaders requestHeaders, @NotNull RestTemplate templateRest) {
|
||||
final RestUser restUser = new RestUser();
|
||||
final String email = "foo-to-delete" + System.nanoTime() + "@example.org";
|
||||
restUser.setEmail(email);
|
||||
restUser.setUsername("foo");
|
||||
restUser.setFirstname("foo first name");
|
||||
restUser.setLastname("foo last name");
|
||||
restUser.setPassword("foo password");
|
||||
@BeforeClass
|
||||
void createUser() {
|
||||
|
||||
HttpEntity<RestUser> createUserEntity = new HttpEntity<RestUser>(restUser, requestHeaders);
|
||||
return templateRest.postForLocation(BASE_REST_URL + "/admin/users", createUserEntity);
|
||||
final RestAdminITCase restAdminITCase = new RestAdminITCase();
|
||||
userEmail = restAdminITCase.createNewUser(MediaType.APPLICATION_JSON);
|
||||
}
|
||||
|
||||
|
||||
@Test(dataProvider = "ContentType-Provider-Function")
|
||||
public void createMap(final @NotNull MediaType mediaType) { // Configure media types ...
|
||||
final HttpHeaders requestHeaders = createHeaders(mediaType);
|
||||
final RestTemplate templateRest = createTemplate();
|
||||
|
||||
// Create a sample map ...
|
||||
final RestMindmap restMindmap = new RestMindmap();
|
||||
final String title = "My Map " + mediaType.toString();
|
||||
restMindmap.setTitle(title);
|
||||
restMindmap.setDescription("My Map Desc");
|
||||
|
||||
// Create a new map ...
|
||||
HttpEntity<RestMindmap> createUserEntity = new HttpEntity<RestMindmap>(restMindmap, requestHeaders);
|
||||
final URI resourceLocation = templateRest.postForLocation(BASE_REST_URL + "/maps", createUserEntity);
|
||||
|
||||
// Check that the map has been created ...
|
||||
HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders);
|
||||
final ResponseEntity<RestMindmap> response = templateRest.exchange(HOST_PORT + resourceLocation.toString(), HttpMethod.GET, findUserEntity, RestMindmap.class);
|
||||
assertEquals(response.getBody().getTitle(), title);
|
||||
}
|
||||
|
||||
private HttpHeaders createHeaders(MediaType mediaType) {
|
||||
|
||||
@Test(dataProvider = "ContentType-Provider-Function")
|
||||
public void updateMapXml(final @NotNull MediaType mediaType) throws IOException { // Configure media types ...
|
||||
final HttpHeaders requestHeaders = createHeaders(mediaType);
|
||||
final RestTemplate templateRest = createTemplate();
|
||||
|
||||
// Create a sample map ...
|
||||
final RestMindmap restMindmap = new RestMindmap();
|
||||
final String title = "Update XML sample " + mediaType.toString();
|
||||
restMindmap.setTitle(title);
|
||||
restMindmap.setDescription("My Map Desc");
|
||||
|
||||
// Create a new map ...
|
||||
HttpEntity<RestMindmap> createUserEntity = new HttpEntity<RestMindmap>(restMindmap, requestHeaders);
|
||||
final URI resourceLocation = templateRest.postForLocation(BASE_REST_URL + "/maps", createUserEntity);
|
||||
|
||||
// Update map xml content ...
|
||||
final String resourceUrl = HOST_PORT + resourceLocation.toString();
|
||||
requestHeaders.setContentType(MediaType.APPLICATION_XML);
|
||||
final String newXmlContent = "<map>this is not valid</map>";
|
||||
HttpEntity<String> updateEntity = new HttpEntity<String>(newXmlContent, requestHeaders);
|
||||
templateRest.put(resourceUrl + "/xml", updateEntity);
|
||||
|
||||
// Check that the map has been updated ...
|
||||
HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders);
|
||||
final ResponseEntity<RestMindmap> response = templateRest.exchange(HOST_PORT + resourceLocation.toString(), HttpMethod.GET, findUserEntity, RestMindmap.class);
|
||||
assertEquals(response.getBody().getXml(), newXmlContent);
|
||||
}
|
||||
|
||||
|
||||
@Test(dataProvider = "ContentType-Provider-Function")
|
||||
public void updateMap(final @NotNull MediaType mediaType) throws IOException { // Configure media types ...
|
||||
final HttpHeaders requestHeaders = createHeaders(mediaType);
|
||||
final RestTemplate templateRest = createTemplate();
|
||||
|
||||
// Create a sample map ...
|
||||
final RestMindmap newRestMindmap = new RestMindmap();
|
||||
final String title = "Update sample " + mediaType.toString();
|
||||
newRestMindmap.setTitle(title);
|
||||
newRestMindmap.setDescription("My Map Desc");
|
||||
|
||||
// Create a new map ...
|
||||
final HttpEntity<RestMindmap> createUserEntity = new HttpEntity<RestMindmap>(newRestMindmap, requestHeaders);
|
||||
final URI resourceLocation = templateRest.postForLocation(BASE_REST_URL + "/maps", createUserEntity);
|
||||
|
||||
// Build map to update ...
|
||||
final RestMindmap mapToUpdate = new RestMindmap();
|
||||
mapToUpdate.setXml("<map>this is not valid</map>");
|
||||
mapToUpdate.setProperties("{zoom:x}");
|
||||
|
||||
// Update map ...
|
||||
final String resourceUrl = HOST_PORT + resourceLocation.toString();
|
||||
requestHeaders.setContentType(MediaType.APPLICATION_XML);
|
||||
final HttpEntity<RestMindmap> updateEntity = new HttpEntity<RestMindmap>(mapToUpdate, requestHeaders);
|
||||
templateRest.put(resourceUrl, updateEntity);
|
||||
|
||||
// Check that the map has been updated ...
|
||||
HttpEntity<RestUser> findUserEntity = new HttpEntity<RestUser>(requestHeaders);
|
||||
final ResponseEntity<RestMindmap> response = templateRest.exchange(HOST_PORT + resourceLocation.toString(), HttpMethod.GET, findUserEntity, RestMindmap.class);
|
||||
assertEquals(response.getBody().getXml(), mapToUpdate.getXml());
|
||||
assertEquals(response.getBody().getProperties(), mapToUpdate.getProperties());
|
||||
}
|
||||
|
||||
private HttpHeaders createHeaders(@NotNull MediaType mediaType) {
|
||||
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
|
||||
acceptableMediaTypes.add(mediaType);
|
||||
final HttpHeaders requestHeaders = new HttpHeaders();
|
||||
@@ -65,11 +138,10 @@ public class RestMindmapTCase {
|
||||
super.prepareConnection(connection, httpMethod);
|
||||
|
||||
//Basic Authentication for Police API
|
||||
String authorisation = "admin@wisemapping.org" + ":" + "admin";
|
||||
byte[] encodedAuthorisation = Base64.encode(authorisation.getBytes());
|
||||
String authorization = userEmail + ":" + "admin";
|
||||
byte[] encodedAuthorisation = Base64.encode(authorization.getBytes());
|
||||
connection.setRequestProperty("Authorization", "Basic " + new String(encodedAuthorisation));
|
||||
}
|
||||
|
||||
};
|
||||
return new RestTemplate(s);
|
||||
}
|
||||
|
Reference in New Issue
Block a user