import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
-
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
-
import org.junit.Test;
import org.onap.so.client.RestPropertiesLoader;
import org.onap.so.client.aai.AAIProperties;
import org.onap.so.BaseTest;
public class ThreadedReadTest {
- @Test
- public void allAtOnce() throws InterruptedException {
- ExecutorService executorService = Executors.newFixedThreadPool(10);
-
- Callable<AAIProperties> callableTask = () -> {
- return RestPropertiesLoader.getInstance().getNewImpl(AAIProperties.class);
- };
- List<Callable<AAIProperties>> callableTasks = new ArrayList<>();
-
- callableTasks.add(callableTask);
- callableTasks.add(callableTask);
- callableTasks.add(callableTask);
- callableTasks.add(callableTask);
- callableTasks.add(callableTask);
-
- List<Future<AAIProperties>> futures = executorService.invokeAll(callableTasks);
-
- Set<AAIProperties> results = new HashSet<>();
- futures.forEach(item -> {
- try {
- results.add(item.get());
- } catch (InterruptedException | ExecutionException e) {
- throw new RuntimeException(e);
- }
- });
-
- assertThat("expect all unique results", results.size(), equalTo(callableTasks.size()));
-
- }
-
- @Test
- public void executeOverTime() {
- ScheduledExecutorService executorService = Executors.newScheduledThreadPool(10);
-
- Callable<AAIProperties> callableTask = () -> {
- TimeUnit.MILLISECONDS.sleep(500);
- return RestPropertiesLoader.getInstance().getNewImpl(AAIProperties.class);
- };
- List<Callable<AAIProperties>> callableTasks = new ArrayList<>();
-
- callableTasks.add(callableTask);
- callableTasks.add(callableTask);
- callableTasks.add(callableTask);
- callableTasks.add(callableTask);
- callableTasks.add(callableTask);
-
- Set<AAIProperties> results = new HashSet<>();
- callableTasks.forEach(callable -> {
- try {
- TimeUnit.MILLISECONDS.sleep(300);
- Future<AAIProperties> result = executorService.submit(callable);
- results.add(result.get());
- } catch (InterruptedException | ExecutionException e) {
- throw new RuntimeException(e);
- }
- });
-
- assertThat("expect all unique results", results.size(), equalTo(callableTasks.size()));
- }
-
+ @Test
+ public void allAtOnce() throws InterruptedException {
+ ExecutorService executorService = Executors.newFixedThreadPool(10);
+
+ Callable<AAIProperties> callableTask = () -> {
+ return RestPropertiesLoader.getInstance().getNewImpl(AAIProperties.class);
+ };
+ List<Callable<AAIProperties>> callableTasks = new ArrayList<>();
+
+ callableTasks.add(callableTask);
+ callableTasks.add(callableTask);
+ callableTasks.add(callableTask);
+ callableTasks.add(callableTask);
+ callableTasks.add(callableTask);
+
+ List<Future<AAIProperties>> futures = executorService.invokeAll(callableTasks);
+
+ Set<AAIProperties> results = new HashSet<>();
+ futures.forEach(item -> {
+ try {
+ results.add(item.get());
+ } catch (InterruptedException | ExecutionException e) {
+ throw new RuntimeException(e);
+ }
+ });
+
+ assertThat("expect all unique results", results.size(), equalTo(callableTasks.size()));
+
+ }
+
+ @Test
+ public void executeOverTime() {
+ ScheduledExecutorService executorService = Executors.newScheduledThreadPool(10);
+
+ Callable<AAIProperties> callableTask = () -> {
+ TimeUnit.MILLISECONDS.sleep(500);
+ return RestPropertiesLoader.getInstance().getNewImpl(AAIProperties.class);
+ };
+ List<Callable<AAIProperties>> callableTasks = new ArrayList<>();
+
+ callableTasks.add(callableTask);
+ callableTasks.add(callableTask);
+ callableTasks.add(callableTask);
+ callableTasks.add(callableTask);
+ callableTasks.add(callableTask);
+
+ Set<AAIProperties> results = new HashSet<>();
+ callableTasks.forEach(callable -> {
+ try {
+ TimeUnit.MILLISECONDS.sleep(300);
+ Future<AAIProperties> result = executorService.submit(callable);
+ results.add(result.get());
+ } catch (InterruptedException | ExecutionException e) {
+ throw new RuntimeException(e);
+ }
+ });
+
+ assertThat("expect all unique results", results.size(), equalTo(callableTasks.size()));
+ }
+
}