package org.infinispan.manager;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
import java.util.Arrays;
import java.util.Collection;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Supplier;
import org.infinispan.remoting.transport.Address;
import org.testng.annotations.Test;
/**
* Tests for a single cluster executor
* @author Will Burns
* @since 9.1
*/
@Test(groups = {"functional", "smoke"}, testName = "manager.SingleClusterExecutorTest")
public class SingleClusterExecutorTest extends AllClusterExecutorTest {
static final AtomicInteger atomicInteger = new AtomicInteger();
public SingleClusterExecutorTest() {
atomicIntegerSupplier = () -> atomicInteger;
}
ClusterExecutor executor(EmbeddedCacheManager cm) {
return cm.executor().singleNodeSubmission();
}
void assertSize(EmbeddedCacheManager[] cms, int receivedSize) {
assertEquals(1, receivedSize);
}
void eventuallyAssertSize(EmbeddedCacheManager[] cms, Supplier<Integer> supplier) {
eventuallyEquals(1, supplier);
}
void assertContains(EmbeddedCacheManager[] managers, Collection<Address> results) {
boolean contains = false;
for (EmbeddedCacheManager manager : managers) {
if (results.contains(manager.getAddress())) {
contains = true;
break;
}
}
assertTrue("At least 1 manager from " + Arrays.toString(managers) + " should be in " + results, contains);
}
}