/* * Copyright (C) 2003-2009 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.forum.service; import static org.exoplatform.commons.testing.AssertUtils.assertContains; import junit.framework.TestCase; /** * @author <a href="mailto:patrice.lamarque@exoplatform.com">Patrice Lamarque</a> * @version $Revision$ */ public class TestUserProfile extends TestCase { protected void setUp() throws Exception { super.setUp(); } public void testSetLastReadPostOfTopic() { String[] array = new String[] { "foo,foo", "bar,bar" }; UserProfile profile = new UserProfile(); profile.setLastReadPostOfTopic(array); String[] actual = profile.getLastReadPostOfTopic(); assertContains(actual, "foo,foo", "bar,bar"); assertEquals("foo", profile.getLastPostIdReadOfTopic("foo")); assertEquals("", profile.getLastPostIdReadOfTopic("zed")); } public void testSetLastReadPostOfForum() { String[] array = new String[] { "foo,foo", "bar,bar" }; UserProfile profile = new UserProfile(); profile.setLastReadPostOfForum(array); String[] actual = profile.getLastReadPostOfForum(); assertContains(actual, "foo,foo", "bar,bar"); assertEquals("foo", profile.getLastPostIdReadOfForum("foo")); assertEquals("", profile.getLastPostIdReadOfForum("zed")); } public void testGetLastTimeAccessForum() throws Exception { UserProfile profile = new UserProfile(); long actual = profile.getLastTimeAccessForum("foo"); assertEquals("Last access time of unknown forum should be zero", 0, actual); profile.setLastTimeAccessForum("bar", 1); actual = profile.getLastTimeAccessForum("bar"); assertEquals(1, actual); } public void testGetLastTimeAccessTopic() throws Exception { UserProfile profile = new UserProfile(); long actual = profile.getLastTimeAccessTopic("foo"); assertEquals("Last access time of unknown topic should be zero", 0, actual); profile.setLastTimeAccessTopic("bar", 1); actual = profile.getLastTimeAccessTopic("bar"); assertEquals(1, actual); } public void testGetScreenname() { // not set defaults to default user id UserProfile profile = new UserProfile(); String actual = profile.getScreenName(); assertEquals(UserProfile.USER_GUEST, actual); // null or empty defaults to user id profile.setUserId("foo"); profile.setScreenName(null); actual = profile.getScreenName(); assertEquals("foo", actual); profile.setScreenName(""); actual = profile.getScreenName(); assertEquals("foo", actual); // if set, don't use user id profile.setUserId("foo"); profile.setScreenName("bar"); actual = profile.getScreenName(); assertEquals("bar", actual); } }