package com.belladati.sdk.user.impl;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
import java.io.IOException;
import org.apache.http.entity.StringEntity;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.belladati.sdk.test.SDKTest;
import com.belladati.sdk.test.TestRequestHandler;
import com.belladati.sdk.user.UserEditBuilder;
import com.belladati.sdk.user.UserRole;
@Test
public class UserEditBuilderTest extends SDKTest {
private final String userId = "123";
private final String requestUri = "/api/users/" + userId;
private final String username = "username";
private final String firstName = "first name";
private final String lastName = "last name";
private final String email = "email@email.com";
private final String locale = "locale";
private final String timeZone = "GMT";
private UserEditBuilder builder;
@BeforeMethod(alwaysRun = true)
protected void setupSource() throws Exception {
builder = service.setupUserEditBuilder(userId);
server.register(requestUri, new TestRequestHandler() {
@Override
protected void handle(HttpHolder holder) throws IOException {
assertEquals(holder.getFormParameters().get("data"), builder.toJson().toString());
holder.response.setEntity(new StringEntity(""));
}
});
}
public void postToServer_empty() {
String result = builder.post();
server.assertRequestUris(requestUri);
assertEquals(result, "");
}
public void postToServer_medium() {
builder.setUsername(username);
builder.setFirstName(firstName);
builder.setLastName(lastName);
builder.setEmail(email);
builder.setLocale(locale);
builder.setTimeZone(timeZone);
builder.setRoles(null);
builder.setUserGroups(null);
String result = builder.post();
server.assertRequestUris(requestUri);
assertEquals(result, "");
}
public void postToServer_full() {
builder.setUsername(username);
builder.setFirstName(firstName);
builder.setLastName(lastName);
builder.setEmail(email);
builder.setLocale(locale);
builder.setTimeZone(timeZone);
builder.setRoles(UserRole.values());
builder.setUserGroups("1", "99");
String result = builder.post();
server.assertRequestUris(requestUri);
assertEquals(result, "");
}
/** can't post again after posting */
@Test(expectedExceptions = IllegalStateException.class)
public void postAfterPost() {
String result = null;
result = builder.post();
assertEquals(result, "");
result = builder.post();
fail("Previous request should fail");
}
}