/*******************************************************************************
* Copyright (c) 2010-2014 SAP AG and others.
* 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:
* SAP AG - initial API and implementation
*******************************************************************************/
package org.eclipse.skalli.core.user;
import java.util.List;
import java.util.Set;
import org.eclipse.skalli.commons.CollectionUtils;
import org.eclipse.skalli.model.User;
import org.eclipse.skalli.services.Services;
import org.eclipse.skalli.services.user.UserService;
import org.eclipse.skalli.testutil.BundleManager;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.Constants;
@SuppressWarnings("nls")
public class LocalUserComponentTest {
private UserService userService;
private List<User> users;
private static final String FILTER =
"(&(" + Constants.OBJECTCLASS + "=" + UserService.class.getName() + ")" + "(userService.type=local))";
@Before
public void setup() throws Exception {
BundleManager.startBundles();
userService = Services.getService(UserService.class, FILTER);
Assert.assertNotNull("local user service not found", userService);
users = userService.getUsers();
Assert.assertEquals(5, users.size());
}
@Test
public void testGetUserById() {
for (User user : users) {
Assert.assertEquals(user, userService.getUserById(user.getUserId()));
}
Assert.assertEquals(new User("anonymous"), userService.getUserById("anonymous"));
}
@Test
public void testGetUsersById() {
Set<User> userSet = userService.getUsersById(CollectionUtils.asSet("gh", "lc", "jw"));
Assert.assertTrue(userSet.contains(userService.getUserById("gh")));
Assert.assertTrue(userSet.contains(userService.getUserById("lc")));
Assert.assertTrue(userSet.contains(userService.getUserById("jw")));
userSet = userService.getUsersById(CollectionUtils.asSet("gh", "unknown"));
Assert.assertTrue(userSet.contains(userService.getUserById("gh")));
Assert.assertTrue(userSet.contains(new User("unknown")));
userSet = userService.getUsersById(null);
Assert.assertEquals(0, userSet.size());
}
@Test
public void testFindUser() {
User userGregHouse = userService.getUserById("gh");
List<User> findResult = userService.findUser("Gregory House");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("Greg House");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("grEg HoUse"); // case-insensitive!
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("Gregory");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("Greg");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("House");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("House, Greg");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("Greg House, M.D.");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("Dr. Greg House");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("Greg 'MasterOfCuddy' House");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("gh");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("greg.house@princeton-plainsborough.com");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("diagnost");
Assert.assertEquals(1, findResult.size());
Assert.assertEquals(userGregHouse, findResult.get(0));
findResult = userService.findUser("");
Assert.assertEquals(0, findResult.size());
findResult = userService.findUser(null);
Assert.assertEquals(0, findResult.size());
}
}