planetiler/core/src/test/java/com/onthegomap/flatmap/monitoring/CounterTest.java

58 wiersze
1.4 KiB
Java

package com.onthegomap.flatmap.monitoring;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
public class CounterTest {
@Test
public void testSingleThreadedCounter() {
var counter = Counter.newSingleThreadCounter();
assertEquals(0, counter.get());
counter.inc();
assertEquals(1, counter.get());
counter.incBy(2);
assertEquals(3, counter.get());
counter.incBy(-1);
assertEquals(2, counter.get());
}
@Test
public void testMultiThreadedCounter() throws InterruptedException {
var counter = Counter.newMultiThreadCounter();
Thread t1 = new Thread(() -> {
counter.incBy(1);
counter.incBy(1);
});
t1.start();
Thread t2 = new Thread(() -> {
counter.incBy(1);
});
t2.start();
t1.join();
t2.join();
assertEquals(3, counter.get());
}
@Test
public void testMultiThreadedSubCounter() throws InterruptedException {
var counter = Counter.newMultiThreadCounter();
Thread t1 = new Thread(() -> {
var subCounter = counter.counterForThread();
subCounter.incBy(1);
subCounter.incBy(1);
});
t1.start();
Thread t2 = new Thread(() -> {
var subCounter = counter.counterForThread();
subCounter.incBy(1);
});
t2.start();
t1.join();
t2.join();
assertEquals(3, counter.get());
}
}