package org.ektorp;
import static org.junit.Assert.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.io.IOUtils;
import org.junit.*;
import java.io.InputStream;
public class ReplicationStatusTest {
@Test
public void deserialize() throws Exception {
ObjectMapper mapper = new ObjectMapper();
ReplicationStatus rs = loadReplicationStatusFromResource(mapper, "replication_response.json");
assertNotNull(rs.getSessionId());
assertNotNull(rs.getId());
assertNotNull(rs.getSourceLastSequence());
assertFalse(rs.getHistory().isEmpty());
ReplicationStatus.History h = rs.getHistory().get(0);
assertNotNull(h.getSessionId());
assertNotNull(h.getStartTime());
assertNotNull(h.getEndTime());
assertNotNull(h.getEndTime());
assertNotNull(h.getStartLastSeq());
assertNotNull(h.getEndLastSeq());
assertNotNull(h.getRecordedSeq());
assertTrue(h.getMissingChecked() > 0);
assertTrue(h.getMissingFound() > 0);
assertTrue(h.getDocsRead() > 0);
assertTrue(h.getDocsWritten() > 0);
assertTrue(h.getDocWriteFailures() > 0);
}
@Test
public void sequences_as_strings() throws Exception {
ObjectMapper mapper = new ObjectMapper();
ReplicationStatus rs = loadReplicationStatusFromResource(mapper, "replication_response_string_seqs.json");
assertNotNull(rs.getSourceLastSequence());
ReplicationStatus.History h = rs.getHistory().get(0);
assertNotNull(h.getStartLastSeq());
assertNotNull(h.getEndLastSeq());
}
@Test
public void sequences_as_arrays() throws Exception {
ObjectMapper mapper = new ObjectMapper();
ReplicationStatus rs = loadReplicationStatusFromResource(mapper, "replication_response_array_seqs.json");
assertNotNull(rs.getSourceLastSequenceAsNode());
ReplicationStatus.History h = rs.getHistory().get(0);
assertNotNull(h.getStartLastSeqAsNode());
assertNotNull(h.getEndLastSeqAsNode());
}
@Test
public void recordedSeq_as_number() throws Exception {
ObjectMapper mapper = new ObjectMapper();
ReplicationStatus rs = loadReplicationStatusFromResource(mapper, "replication_response_string_recorded_seq.json");
Assert.assertNotNull(rs.getHistory());
Assert.assertNotNull(rs.getHistory().get(0));
Assert.assertTrue(rs.getHistory().get(0).getRecordedSeq().length() > 10);
}
@Test
public void recordedSeq_as_string() throws Exception {
ObjectMapper mapper = new ObjectMapper();
ReplicationStatus rs = loadReplicationStatusFromResource(mapper, "replication_response_number_recorded_seq.json");
Assert.assertNotNull(rs.getHistory());
Assert.assertNotNull(rs.getHistory().get(0));
String recordedSeq = rs.getHistory().get(0).getRecordedSeq();
Assert.assertEquals("4", recordedSeq);
}
private ReplicationStatus loadReplicationStatusFromResource(ObjectMapper mapper, String name) throws java.io.IOException {
InputStream resourceAsStream = null;
try {
resourceAsStream = getClass().getResourceAsStream(name);
return mapper.readValue(resourceAsStream, ReplicationStatus.class);
} finally {
IOUtils.closeQuietly(resourceAsStream);
}
}
}