package com.zendesk.maxwell.replication;
import com.zendesk.maxwell.MaxwellContext;
import com.zendesk.maxwell.MaxwellTestSupport;
import com.zendesk.maxwell.MaxwellTestWithIsolatedServer;
import com.zendesk.maxwell.row.HeartbeatRowMap;
import com.zendesk.maxwell.row.RowMap;
import com.zendesk.maxwell.support.TestReplicator;
import com.zendesk.maxwell.util.RunState;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class AbstractReplicatorTest extends MaxwellTestWithIsolatedServer {
private RowMap heartbeatRow(long ts) {
return new HeartbeatRowMap("db", new Position(new BinlogPosition(0L, "binlog-file"), ts));
}
@Test
public void testStopsAfterTargetHeartbeatReceived() throws Exception {
TestReplicator replicator = new TestReplicator(buildContext());
replicator.stopAtHeartbeat(2L);
replicator.processRow(heartbeatRow(1L));
assertThat(replicator.getState(), is(RunState.RUNNING));
replicator.processRow(heartbeatRow(2L));
assertThat(replicator.getState(), is(RunState.STOPPED));
}
}