package org.infinispan.server.test.client.hotrod.security;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testAddGetClientListener;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testClear;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testContainsKey;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testGetNonExistent;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testGetNonExistentAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testGetRemoteCacheManager;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testGetVersioned;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testGetWithMetadata;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPut;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutAll;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutAllAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutClear;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutClearAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutContainsKey;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutGet;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutGetAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutGetBulk;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutGetVersioned;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutGetWithMetadata;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutIfAbsent;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testPutIfAbsentAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testRemove;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testRemoveAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testRemoveClientListener;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testRemoveContains;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testRemoveContainsAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testRemoveWithVersion;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testRemoveWithVersionAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testReplaceWitFlag;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testReplaceWithVersionAsync;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testReplaceWithVersioned;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testSize;
import static org.infinispan.server.test.client.hotrod.security.HotRodAuthzOperationTests.testStats;
import java.security.PrivilegedActionException;
import javax.security.auth.login.LoginException;
import org.infinispan.arquillian.core.InfinispanResource;
import org.infinispan.arquillian.core.RemoteInfinispanServer;
import org.infinispan.arquillian.core.RunningServer;
import org.infinispan.arquillian.core.WithRunningServer;
import org.infinispan.server.test.category.Security;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
/**
*
* Hot Rod ({@link RemoteCache} ) authorization tests
*
* @author vjuranek
* @since 7.0
*/
@RunWith(Arquillian.class)
@Category({ Security.class })
@WithRunningServer({ @RunningServer(name = "hotrodAuthClustered"), @RunningServer(name = "hotrodAuthClustered-2") })
public class HotRodOperationsAuthzIT extends HotRodSaslAuthTestBase {
@InfinispanResource("hotrodAuthClustered")
RemoteInfinispanServer server1;
@InfinispanResource("hotrodAuthClustered-2")
RemoteInfinispanServer server2;
@Override
public String getTestedMech() {
return "DIGEST-MD5";
}
@Override
public RemoteInfinispanServer getRemoteServer() {
return server1;
}
@Override
public void initAsAdmin() {
initialize(ADMIN_LOGIN, ADMIN_PASSWD);
}
@Override
public void initAsReader() {
initialize(READER_LOGIN, READER_PASSWD);
}
@Override
public void initAsWriter() {
initialize(WRITER_LOGIN, WRITER_PASSWD);
}
@Override
public void initAsSupervisor() {
initialize(SUPERVISOR_LOGIN, SUPERVISOR_PASSWD);
}
@Test
@Override
public void testAdmin() throws Exception {
initAsAdmin();
testGetRemoteCacheManager(remoteCache);
testPutClear(remoteCache);
testPutClearAsync(remoteCache);
testPutContainsKey(remoteCache);
testPutGet(remoteCache);
testPutGetAsync(remoteCache);
testPutGetBulk(remoteCache);
testPutGetVersioned(remoteCache);
testPutGetWithMetadata(remoteCache);
//testKeySet(remoteCache); //ISPN-4977
testPutAll(remoteCache);
testPutAllAsync(remoteCache);
testPutIfAbsent(remoteCache);
testPutIfAbsentAsync(remoteCache);
testRemoveContains(remoteCache);
testRemoveContainsAsync(remoteCache);
testRemoveWithVersion(remoteCache);
testRemoveWithVersionAsync(remoteCache);
testReplaceWitFlag(remoteCache);
testReplaceWithVersioned(remoteCache);
testReplaceWithVersionAsync(remoteCache);
testSize(remoteCache);
testStats(remoteCache);
testAddGetClientListener(remoteCache);
testRemoveClientListener(remoteCache);
}
@Test
@Override
public void testSupervisor() throws Exception {
initAsSupervisor();
testGetRemoteCacheManager(remoteCache);
testPutClear(remoteCache);
testPutClearAsync(remoteCache);
testPutContainsKey(remoteCache);
testPutGet(remoteCache);
testPutGetAsync(remoteCache);
testPutGetBulk(remoteCache);
testPutGetVersioned(remoteCache);
testPutGetWithMetadata(remoteCache);
//testKeySet(remoteCache); //ISPN-4977
testPutAll(remoteCache);
testPutAllAsync(remoteCache);
testPutIfAbsent(remoteCache);
testPutIfAbsentAsync(remoteCache);
testRemoveContains(remoteCache);
testRemoveContainsAsync(remoteCache);
testRemoveWithVersion(remoteCache);
testRemoveWithVersionAsync(remoteCache);
testReplaceWitFlag(remoteCache);
testReplaceWithVersioned(remoteCache);
testReplaceWithVersionAsync(remoteCache);
testSize(remoteCache);
}
@Test
@Override
public void testWriter() throws Exception {
initAsWriter();
testPut(remoteCache);
testPutAsync(remoteCache);
testRemove(remoteCache);
testRemoveAsync(remoteCache);
}
@Test
@Override
public void testReader() throws Exception {
initAsReader();
testContainsKey(remoteCache);
testGetNonExistent(remoteCache);
testGetNonExistentAsync(remoteCache);
testGetVersioned(remoteCache);
testGetWithMetadata(remoteCache);
}
@Test(expected = org.infinispan.client.hotrod.exceptions.HotRodClientException.class)
public void testSupervisorStats() throws PrivilegedActionException, LoginException {
initAsSupervisor();
testStats(remoteCache);
}
@Test(expected = org.infinispan.client.hotrod.exceptions.HotRodClientException.class)
public void testSupervisorAddListener() throws PrivilegedActionException, LoginException {
initAsSupervisor();
testAddGetClientListener(remoteCache);
}
//ISPN-4977
/*@Test(expected = org.infinispan.client.hotrod.exceptions.HotRodClientException.class)
public void testReaderBuldRead() throws PrivilegedActionException, LoginException {
initAsReader();
remoteCache.getBulk();
}*/
@Test(expected = org.infinispan.client.hotrod.exceptions.HotRodClientException.class)
public void testWriterClear() throws PrivilegedActionException, LoginException {
initAsWriter();
testClear(remoteCache);
}
@Test(expected = org.infinispan.client.hotrod.exceptions.HotRodClientException.class)
public void testWriterReplaceWithReturnFlag() throws PrivilegedActionException, LoginException {
initAsWriter();
testReplaceWitFlag(remoteCache);
}
@Test(expected = org.infinispan.client.hotrod.exceptions.HotRodClientException.class)
public void testReaderClear() throws PrivilegedActionException, LoginException {
initAsReader();
testClear(remoteCache);
}
}