listener.fullSync(changes.getRequests()); } else { listener.deltaSync(changes.getRequests());
new ChangeRequestHistory.Counter(-1, -1) ).get(); Assert.assertEquals(testSegments.size(), snapshot.getRequests().size()); Assert.assertEquals(testSegments.size(), snapshot.getCounter().getCounter()); snapshot.getCounter() ).get(); Assert.assertEquals(testSegments.size(), snapshot.getRequests().size()); Assert.assertEquals(2 * testSegments.size(), snapshot.getCounter().getCounter()); new ChangeRequestHistory.Counter(-1, -1) ).get(); Assert.assertEquals(0, snapshot.getRequests().size()); Assert.assertEquals(2 * testSegments.size(), snapshot.getCounter().getCounter());
@Test public void testNonImmediateFuture() throws Exception { final ChangeRequestHistory history = new ChangeRequestHistory(); Future<ChangeRequestsSnapshot> future = history.getRequestsSince( ChangeRequestHistory.Counter.ZERO ); Assert.assertFalse(future.isDone()); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestsSnapshot snapshot = future.get(1, TimeUnit.MINUTES); Assert.assertEquals(1, snapshot.getCounter().getCounter()); Assert.assertEquals(1, snapshot.getRequests().size()); }
new ChangeRequestHistory.Counter(-1, -1) ).get(); Assert.assertEquals(2, snapshot.getRequests().size()); Assert.assertEquals(2, snapshot.getCounter().getCounter()); snapshot.getCounter() ).get(); Assert.assertEquals(2, snapshot.getRequests().size()); Assert.assertEquals(4, snapshot.getCounter().getCounter()); new ChangeRequestHistory.Counter(-1, -1) ).get(); Assert.assertEquals(0, snapshot.getRequests().size()); Assert.assertEquals(4, snapshot.getCounter().getCounter());
@Test public void testSimple() throws Exception { ChangeRequestHistory<DataSegmentChangeRequest> history = new ChangeRequestHistory(); Assert.assertEquals(0, history.getLastCounter().getCounter()); history.addChangeRequest(new SegmentChangeRequestNoop()); Assert.assertEquals(1, history.getLastCounter().getCounter()); ChangeRequestsSnapshot<DataSegmentChangeRequest> snapshot = history.getRequestsSince(ChangeRequestHistory.Counter.ZERO).get(); Assert.assertEquals(1, snapshot.getRequests().size()); Assert.assertEquals(1, snapshot.getCounter().getCounter()); history.addChangeRequest(new SegmentChangeRequestNoop()); Assert.assertEquals(2, history.getLastCounter().getCounter()); snapshot = history.getRequestsSince(snapshot.getCounter()).get(); Assert.assertEquals(1, snapshot.getRequests().size()); Assert.assertEquals(2, snapshot.getCounter().getCounter()); snapshot = history.getRequestsSince(ChangeRequestHistory.Counter.ZERO).get(); Assert.assertEquals(2, snapshot.getRequests().size()); Assert.assertEquals(2, snapshot.getCounter().getCounter()); }
@Test public void testCounterHashMismatch() throws Exception { ChangeRequestHistory<DataSegmentChangeRequest> history = new ChangeRequestHistory(3); Assert.assertTrue(history.getRequestsSince(new ChangeRequestHistory.Counter(0, 1234)).get().isResetCounter()); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestHistory.Counter one = history.getLastCounter(); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestHistory.Counter two = history.getLastCounter(); Assert.assertTrue(history.getRequestsSince(new ChangeRequestHistory.Counter(0, 1234)).get().isResetCounter()); ChangeRequestsSnapshot<DataSegmentChangeRequest> snapshot = history.getRequestsSince(one).get(); Assert.assertEquals(1, snapshot.getRequests().size()); Assert.assertEquals(2, snapshot.getCounter().getCounter()); Assert.assertTrue(history.getRequestsSince(new ChangeRequestHistory.Counter(1, 1234)).get().isResetCounter()); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestHistory.Counter three = history.getLastCounter(); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestHistory.Counter four = history.getLastCounter(); snapshot = history.getRequestsSince(two).get(); Assert.assertEquals(2, snapshot.getRequests().size()); Assert.assertEquals(4, snapshot.getCounter().getCounter()); Assert.assertTrue(history.getRequestsSince(new ChangeRequestHistory.Counter(2, 1234)).get().isResetCounter()); }
@Test public void testTruncatedHistory() throws Exception { ChangeRequestHistory<DataSegmentChangeRequest> history = new ChangeRequestHistory(2); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestHistory.Counter one = history.getLastCounter(); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestHistory.Counter two = history.getLastCounter(); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestHistory.Counter three = history.getLastCounter(); history.addChangeRequest(new SegmentChangeRequestNoop()); ChangeRequestHistory.Counter four = history.getLastCounter(); Assert.assertTrue(history.getRequestsSince(ChangeRequestHistory.Counter.ZERO).get().isResetCounter()); Assert.assertTrue(history.getRequestsSince(one).get().isResetCounter()); Assert.assertTrue(history.getRequestsSince(two).get().isResetCounter()); ChangeRequestsSnapshot<DataSegmentChangeRequest> snapshot = history.getRequestsSince(three).get(); Assert.assertEquals(1, snapshot.getRequests().size()); Assert.assertEquals(4, snapshot.getCounter().getCounter()); }
Assert.assertEquals(3, baseHistory.getRequests().size()); Assert.assertFalse(((WorkerHistoryItem.Metadata) baseHistory.getRequests().get(0)).isDisabled()); WorkerHistoryItem.TaskUpdate baseUpdate1 = (WorkerHistoryItem.TaskUpdate) baseHistory.getRequests().get(1); WorkerHistoryItem.TaskUpdate baseUpdate2 = (WorkerHistoryItem.TaskUpdate) baseHistory.getRequests().get(2); .get(); Assert.assertFalse(changes.isResetCounter()); Assert.assertEquals(4, changes.getRequests().size()); WorkerHistoryItem.TaskUpdate update1 = (WorkerHistoryItem.TaskUpdate) changes.getRequests().get(0); Assert.assertEquals(task3.getId(), update1.getTaskAnnouncement().getTaskStatus().getId()); Assert.assertTrue(update1.getTaskAnnouncement().getTaskStatus().isRunnable()); Assert.assertNull(update1.getTaskAnnouncement().getTaskLocation().getHost()); WorkerHistoryItem.TaskUpdate update2 = (WorkerHistoryItem.TaskUpdate) changes.getRequests().get(1); Assert.assertEquals(task3.getId(), update2.getTaskAnnouncement().getTaskStatus().getId()); Assert.assertTrue(update2.getTaskAnnouncement().getTaskStatus().isRunnable()); Assert.assertNull(update2.getTaskAnnouncement().getTaskLocation().getHost()); WorkerHistoryItem.TaskUpdate update3 = (WorkerHistoryItem.TaskUpdate) changes.getRequests().get(2); Assert.assertEquals(task3.getId(), update3.getTaskAnnouncement().getTaskStatus().getId()); Assert.assertTrue(update3.getTaskAnnouncement().getTaskStatus().isRunnable()); Assert.assertNotNull(update3.getTaskAnnouncement().getTaskLocation().getHost()); WorkerHistoryItem.TaskUpdate update4 = (WorkerHistoryItem.TaskUpdate) changes.getRequests().get(3); Assert.assertEquals(task3.getId(), update4.getTaskAnnouncement().getTaskStatus().getId()); Assert.assertTrue(update4.getTaskAnnouncement().getTaskStatus().isSuccess());
listener.fullSync(changes.getRequests()); } else { listener.deltaSync(changes.getRequests());