package com.belladati.sdk.domain.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.domain.DomainCreateBuilder;
import com.belladati.sdk.test.SDKTest;
import com.belladati.sdk.test.TestRequestHandler;
@Test
public class DomainCreateBuilderTest extends SDKTest {
private final String requestUri = "/api/domains/create";
private final String id = "666";
private final String name = "domainname";
private final String description = "domain description";
private final String dateFormat = "yyyy-MM-dd";
private final String timeFormat = "hh:mm:ss";
private final String timeZone = "Asia/Hong_Kong";
private final String locale = "EN";
private final String paramKey = "myKey";
private final String paramValue = "myValue";
private final String templateId = "templateId";
private final String usernameSuffix = "_MySuffix";
private DomainCreateBuilder builder;
@BeforeMethod(alwaysRun = true)
protected void setupSource() throws Exception {
builder = service.setupDomainCreateBuilder();
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(id));
}
});
}
public void postToServer_empty() {
String result = builder.post();
server.assertRequestUris(requestUri);
assertEquals(result, id);
}
public void postToServer_medium() {
builder.setName(name);
builder.setDescription(description);
builder.addParameter(paramKey, paramValue);
builder.setTemplate(id, null);
String result = builder.post();
server.assertRequestUris(requestUri);
assertEquals(result, id);
}
public void postToServer_full() {
builder.setName(name);
builder.setDescription(description);
builder.setDateFormat(dateFormat);
builder.setTimeFormat(timeFormat);
builder.setTimeZone(timeZone);
builder.setLocale(locale);
builder.addParameter(paramKey, paramValue);
builder.setTemplate(id, usernameSuffix);
builder.setTemplateId(templateId);
String result = builder.post();
server.assertRequestUris(requestUri);
assertEquals(result, id);
}
/** can't post again after posting */
@Test(expectedExceptions = IllegalStateException.class)
public void postAfterPost() {
String result = null;
result = builder.post();
assertEquals(result, id);
result = builder.post();
fail("Previous request should fail");
}
}