package org.openiot.security.client.rest;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.*;
import org.apache.shiro.SecurityUtils;
import org.junit.Test;
import org.openiot.security.client.AccessControlUtil;
import org.openiot.security.client.OAuthorizationCredentials;
public class AccessControlUtilRestTest {
@Test
public void testLogin() {
AccessControlUtil accessControlUtil = AccessControlUtil.getRestInstance();
OAuthorizationCredentials credentials = accessControlUtil.login("admin", "secret");
assertNotNull(credentials);
}
@Test
public void testUserId() {
AccessControlUtil accessControlUtil = AccessControlUtil.getRestInstance();
OAuthorizationCredentials credentials = accessControlUtil.login("admin", "secret");
assertEquals("admin", credentials.getUserId());
}
@Test
public void testLogout() {
AccessControlUtil accessControlUtil = AccessControlUtil.getRestInstance();
accessControlUtil.login("admin", "secret");
accessControlUtil.logout();
assertFalse(SecurityUtils.getSubject().isAuthenticated());
}
@Test
public void testHasPermission() {
AccessControlUtil accessControlUtil = AccessControlUtil.getRestInstance();
accessControlUtil.login("admin", "secret");
assertTrue("Admin must have all permissions", accessControlUtil.hasPermission("*"));
}
@Test
public void testHasPermissionForTarget() {
AccessControlUtil accessControlUtil = AccessControlUtil.getRestInstance();
accessControlUtil.login("admin", "secret");
OAuthorizationCredentials credentials = accessControlUtil.getOAuthorizationCredentials();
assertTrue("Admin must have all permissions on testservice2", accessControlUtil.hasPermission("*", "testservice2", credentials));
}
}