package org.jvalue.ods.processor.adapter;
import com.codahale.metrics.MetricRegistry;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.jvalue.ods.api.sources.DataSource;
import java.util.List;
import mockit.Mocked;
import mockit.integration.junit4.JMockit;
@RunWith(JMockit.class)
public final class JsonSourceAdapterTest extends AbstractSourceAdapterTest {
@Mocked private MetricRegistry registry;
@Mocked private DataSource source;
private static final ArrayNode JSON_ARRAY;
static {
JSON_ARRAY = new ArrayNode(JsonNodeFactory.instance);
ObjectNode jsonObject = JSON_ARRAY.addObject();
jsonObject.put("key1", "value1");
jsonObject.put("key2", "value2");
jsonObject = JSON_ARRAY.addObject();
jsonObject.put("key3", "value1");
jsonObject.put("key4", "value2");
}
@Test
public void testBasicAdapter(@Mocked DataSource source) throws Exception {
List<ObjectNode> jsonResult = testAdapterWithAllProtocols(JSON_ARRAY.toString());
for (int i = 0; i < jsonResult.size(); ++i) {
Assert.assertEquals(JSON_ARRAY.get(i), jsonResult.get(i));
}
Assert.assertEquals(JSON_ARRAY.size(), jsonResult.size());
}
@Override
protected SourceAdapter createAdapter(String sourceUrl) {
return new JsonSourceAdapter(source, sourceUrl, registry);
}
}