import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class ThreadSafeCounterTest {
@Test
public void testCounterWithMultipleThreads() throws InterruptedException {
ThreadSafeCounter counter = new ThreadSafeCounter();
ExecutorService executorService = Executors.newFixedThreadPool(10);
for (int i = 0; i < 1000; i++) {
executorService.submit(counter::increment);
}
executorService.shutdown();
executorService.awaitTermination(1, TimeUnit.SECONDS);
Assertions.assertEquals(1000, counter.getCounter(), "Counter value is incorrect!!!");
}
}