/******************************************************************************* * Copyright (c) 2012 RelationWare, Benno Luthiger * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * RelationWare, Benno Luthiger ******************************************************************************/ package org.ripla.useradmin.admin; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.Dictionary; import java.util.Enumeration; import org.junit.Test; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; import org.osgi.service.useradmin.UserAdmin; /** * @author Luthiger */ public class RiplaUserTest { private static final String USER_NAME = "test.user"; /** * Test method for {@link org.ripla.useradmin.admin.RiplaUser#getType()}. * * @throws Exception */ @Test public void testGetType() throws Exception { // NOPMD by Luthiger on final User lUser = TestRiplaUserAdmin.createUser(USER_NAME); assertEquals("Wrong type", Role.USER, lUser.getType()); } /** * Test method for {@link org.ripla.useradmin.admin.RiplaRole#getName()}. * * @throws Exception */ @Test public void testGetName() throws Exception { // NOPMD by Luthiger on final User lUser = TestRiplaUserAdmin.createUser(USER_NAME); assertEquals("Wrong name", USER_NAME, lUser.getName()); } /** * Test method for * {@link org.ripla.useradmin.admin.RiplaRole#getProperties()}. * * @throws Exception */ @SuppressWarnings({ "rawtypes", "unchecked" }) @Test(expected = IllegalArgumentException.class) public void testGetProperties() throws Exception { // NOPMD by Luthiger on final UserAdmin lUserAdmin = TestRiplaUserAdmin.createUserAdmin(); User lUser = (User) lUserAdmin.createRole(USER_NAME, Role.USER); Dictionary lProperties = lUser.getProperties(); assertTrue("Properties must be empty", lProperties.isEmpty()); final String lKey1 = "test.key.1"; // NOPMD final String lKey2 = "test.key.2"; // NOPMD final String lValue1 = "String"; // NOPMD final byte[] lValue2 = new byte[] { '1', '2', '3' }; lProperties.put(lKey1, lValue1); lProperties.put(lKey2, lValue2); lUser = (User) lUserAdmin.getRole(USER_NAME); lProperties = lUser.getProperties(); assertEquals("Wrong value", lValue1, lProperties.get(lKey1)); // NOPMD assertEquals("Wrong value", lValue2, lProperties.get(lKey2)); final Enumeration lKeys = lUser.getProperties().keys(); int i = 0; // NOPMD while (lKeys.hasMoreElements()) { lKeys.nextElement(); i++; } assertEquals("Wrong count", 2, i); lProperties.put("test.failing", Integer.valueOf(0)); } /** * Test method for * {@link org.ripla.useradmin.admin.RiplaUser#getCredentials()}. * * @throws Exception */ @SuppressWarnings({ "rawtypes", "unchecked" }) @Test(expected = IllegalArgumentException.class) public void testGetCredentials() throws Exception { // NOPMD by Luthiger on final UserAdmin lUserAdmin = TestRiplaUserAdmin.createUserAdmin(); User lUser = (User) lUserAdmin.createRole(USER_NAME, Role.USER); Dictionary lCredentials = lUser.getCredentials(); assertTrue("Credential must be empty", lCredentials.isEmpty()); final String lKey1 = "test.credential.1"; // NOPMD final String lKey2 = "test.credential.2"; // NOPMD final String lValue1 = "String"; // NOPMD final byte[] lValue2 = new byte[] { '1', '2', '3' }; lCredentials.put(lKey1, lValue1); lCredentials.put(lKey2, lValue2); lUser = (User) lUserAdmin.getRole(USER_NAME); lCredentials = lUser.getCredentials(); assertEquals("Wrong value", lValue1, lCredentials.get(lKey1)); assertEquals("Wrong value", lValue2, lCredentials.get(lKey2)); final Enumeration lKeys = lUser.getCredentials().keys(); int i = 0; // NOPMD while (lKeys.hasMoreElements()) { lKeys.nextElement(); i++; } assertEquals("Wrong count", 2, i); lCredentials.put("test.failing", Integer.valueOf(0)); } /** * Test method for * {@link org.ripla.useradmin.admin.RiplaUser#hasCredential(java.lang.String, java.lang.Object)} * . * * @throws Exception */ @SuppressWarnings({ "rawtypes", "unchecked" }) @Test public void testHasCredential() throws Exception { // NOPMD by Luthiger on final UserAdmin lUserAdmin = TestRiplaUserAdmin.createUserAdmin(); User lUser = (User) lUserAdmin.createRole(USER_NAME, Role.USER); final Dictionary lCredentials = lUser.getCredentials(); final String lKey = "test.credential"; // NOPMD final String lValue = "secret"; // NOPMD lCredentials.put(lKey, lValue); lUser = (User) lUserAdmin.getRole(USER_NAME); assertTrue("Wrong credential", lUser.hasCredential(lKey, lValue)); // NOPMD assertFalse("Wrong credential", lUser.hasCredential(lKey, "top.secret")); assertFalse("Wrong credential", lUser.hasCredential(lKey, Integer.valueOf(0))); assertFalse("Wrong credential", lUser.hasCredential(lKey + ".", lValue)); } }