package org.jvalue.ods.api;
import com.fasterxml.jackson.core.JsonPointer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.junit.After;
import org.junit.Before;
import org.jvalue.ods.api.sources.DataSource;
import org.jvalue.ods.api.sources.DataSourceDescription;
import org.jvalue.ods.api.sources.DataSourceMetaData;
import retrofit.RequestInterceptor;
import retrofit.RestAdapter;
import retrofit.converter.JacksonConverter;
public abstract class AbstractApiTest {
protected DataSourceApi dataSourceApi;
protected NotificationApi notificationApi;
protected final JsonPointer domainIdKey = JsonPointer.compile("/someId");
protected final JsonNode schema = new ObjectNode(JsonNodeFactory.instance);
protected final DataSourceMetaData metaData = new DataSourceMetaData("", "", "", "", "", "", "");
protected final String sourceId = getClass().getSimpleName();
protected final DataSourceDescription dataSourceDescription = new DataSourceDescription(domainIdKey, schema, metaData);
protected DataSource dataSource;
protected AbstractApiTest() {
}
@Before
public void setup() {
RestAdapter restAdapter = new RestAdapter.Builder()
.setConverter(new JacksonConverter())
.setEndpoint("http://localhost:8080/ods/api/v1")
.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Accept", "application/json");
request.addHeader("Content-Type", "application/json");
request.addHeader("Authorization", "Basic YWRtaW5AYWRtaW5sYW5kLmNvbTphZG1pbjEyMw=="); // admin@adminland.org : admin123
}
})
.build();
dataSourceApi = restAdapter.create(DataSourceApi.class);
notificationApi = restAdapter.create(NotificationApi.class);
}
@Before
public void addSource() {
this.dataSource = dataSourceApi.addSourceSynchronously(sourceId, dataSourceDescription);
}
@After
public void removeSource() {
dataSourceApi.deleteSourceSynchronously(sourceId);
}
}