/*
* Copyright 2016 Anno van Vliet
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.openfire.plugin;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.logging.Logger;
import org.jivesoftware.openfire.roster.Roster;
import org.jivesoftware.openfire.roster.RosterItem;
import org.jivesoftware.openfire.roster.RosterItem.AskType;
import org.jivesoftware.openfire.roster.RosterItem.RecvType;
import org.jivesoftware.openfire.roster.RosterItem.SubType;
import org.jivesoftware.openfire.user.User;
import org.jivesoftware.openfire.user.UserAlreadyExistsException;
import org.jivesoftware.openfire.user.UserNotFoundException;
import org.jivesoftware.openfire.user.UserProvider;
import org.xmpp.packet.JID;
/**
* A Dummy implementation for the UserProvider for testing purposes.
*
* @author Anno van Vliet
*
*/
public class TestUserProvider implements UserProvider {
public class TestRoster extends Roster {
private final Collection<RosterItem> rosteritems;
/**
*/
public TestRoster() {
rosteritems = new ArrayList<RosterItem>();
JID jid = new JID("roster@jid.test");
SubType subStatus = SubType.BOTH;
AskType askStatus = AskType.NONE;
RecvType recvStatus = RecvType.SUBSCRIBE;
String nickname = "nick";
List<String> groups = null;
rosteritems.add(new RosterItem(1, jid, subStatus, askStatus, recvStatus, nickname, groups));
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.roster.Roster#getRosterItems()
*/
@Override
public Collection<RosterItem> getRosterItems() {
logger.finest("getRosterItems");
return rosteritems;
}
}
public class TestUser extends User {
private final Roster roster;
/**
* @param username
* @param name
* @param email
* @param creationDate
* @param modificationDate
*/
public TestUser(String username, String name, String email, Date creationDate, Date modificationDate) {
super(username, name, email, creationDate, modificationDate);
roster = new TestRoster();
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.User#getRoster()
*/
@Override
public Roster getRoster() {
logger.finest("getRoster");
return roster;
}
}
private static Logger logger = Logger.getLogger(TestUserProvider.class.getName());
private final Map<String,User> userList;
/**
*/
public TestUserProvider() {
userList = new TreeMap<String,User>();
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#loadUser(java.lang.String)
*/
@Override
public User loadUser(String username) throws UserNotFoundException {
logger.finest("loadUser");
return userList.get(username);
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#createUser(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
*/
@Override
public User createUser(String username, String password, String name, String email) throws UserAlreadyExistsException {
logger.finest("createUser");
Date creationDate = new Date();
Date modificationDate = new Date();
User u = new TestUser(username, name, email, creationDate, modificationDate);
userList.put(username, u);
return u;
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#deleteUser(java.lang.String)
*/
@Override
public void deleteUser(String username) {
logger.finest("deleteUser");
userList.remove(username);
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#getUserCount()
*/
@Override
public int getUserCount() {
logger.finest("getUserCount");
return userList.size();
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#getUsers()
*/
@Override
public Collection<User> getUsers() {
logger.finest("getUsers");
return userList.values();
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#getUsernames()
*/
@Override
public Collection<String> getUsernames() {
logger.finest("getUsernames");
return userList.keySet();
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#getUsers(int, int)
*/
@Override
public Collection<User> getUsers(int startIndex, int numResults) {
logger.finest("getUsers");
return null;
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#setName(java.lang.String, java.lang.String)
*/
@Override
public void setName(String username, String name) throws UserNotFoundException {
logger.finest("setName");
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#setEmail(java.lang.String, java.lang.String)
*/
@Override
public void setEmail(String username, String email) throws UserNotFoundException {
logger.finest("setEmail");
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#setCreationDate(java.lang.String, java.util.Date)
*/
@Override
public void setCreationDate(String username, Date creationDate) throws UserNotFoundException {
logger.finest("setCreationDate");
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#setModificationDate(java.lang.String, java.util.Date)
*/
@Override
public void setModificationDate(String username, Date modificationDate) throws UserNotFoundException {
logger.finest("setModificationDate");
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#getSearchFields()
*/
@Override
public Set<String> getSearchFields() throws UnsupportedOperationException {
logger.finest("getSearchFields");
return null;
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#findUsers(java.util.Set, java.lang.String)
*/
@Override
public Collection<User> findUsers(Set<String> fields, String query) throws UnsupportedOperationException {
logger.finest("findUsers");
return null;
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#findUsers(java.util.Set, java.lang.String, int, int)
*/
@Override
public Collection<User> findUsers(Set<String> fields, String query, int startIndex, int numResults) throws UnsupportedOperationException {
logger.finest("findUsers");
return null;
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#isReadOnly()
*/
@Override
public boolean isReadOnly() {
logger.finest("isReadOnly");
return false;
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#isNameRequired()
*/
@Override
public boolean isNameRequired() {
logger.finest("isNameRequired");
return false;
}
/* (non-Javadoc)
* @see org.jivesoftware.openfire.user.UserProvider#isEmailRequired()
*/
@Override
public boolean isEmailRequired() {
logger.finest("isEmailRequired");
return false;
}
}