2 * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.cluster.access.client;
10 import static org.junit.Assert.assertEquals;
12 import org.junit.Before;
13 import org.junit.Test;
15 public class AveragingProgressTrackerTest {
17 private static final long NOW = 1000000000;
18 private static final long CHECKER = 500000000;
19 private ProgressTracker averagingProgressTracker;
23 averagingProgressTracker = new AveragingProgressTracker(4);
24 long delay = averagingProgressTracker.estimateIsolatedDelay(NOW);
25 assertEquals(0, delay);
26 for (int i = 0; i < 2; i++) {
27 delay = averagingProgressTracker.openTask(NOW);
28 assertEquals(0, delay);
33 public void estimateIsolatedDelayTest() {
34 long delay = averagingProgressTracker.openTask(NOW);
35 assertEquals(CHECKER, delay);
37 delay = averagingProgressTracker.openTask(NOW);
38 assertEquals(NOW, delay);
40 delay = averagingProgressTracker.estimateIsolatedDelay(NOW);
41 assertEquals(CHECKER, delay);
43 averagingProgressTracker.closeTask(3000000000L, 0, 0, 0);
45 delay = averagingProgressTracker.estimateIsolatedDelay(NOW);
46 assertEquals(0, delay);
50 public void copyObjectTest() {
51 final ProgressTracker copyAverageProgressTracker =
52 new AveragingProgressTracker((AveragingProgressTracker) averagingProgressTracker);
53 assertEquals(copyAverageProgressTracker.openTask(NOW), averagingProgressTracker.openTask(NOW));
54 assertEquals(averagingProgressTracker.tasksClosed(), copyAverageProgressTracker.tasksClosed());
55 assertEquals(averagingProgressTracker.tasksEncountered(), copyAverageProgressTracker.tasksEncountered());
56 assertEquals(averagingProgressTracker.tasksOpen(), copyAverageProgressTracker.tasksOpen());