[jboss-svn-commits] JBL Code SVN: r26718 - in labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src: main/java/org/jboss/labs/clearspace/plugin/nfm/dao and 11 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon May 25 10:43:54 EDT 2009
Author: lkrzyzanek
Date: 2009-05-25 10:43:53 -0400 (Mon, 25 May 2009)
New Revision: 26718
Added:
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/RedirectNFToCSForumAction.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/cache-config.xml
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/struts/
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/struts/DbNukesForumsManagerTest.java
Modified:
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsMappingDAOImpl.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsMappingDAO.java
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml
labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/struts.xml
Log:
added RedirectNFToCSForum functionality
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java 2009-05-25 11:42:06 UTC (rev 26717)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/DbNukesForumsManager.java 2009-05-25 14:43:53 UTC (rev 26718)
@@ -52,8 +52,8 @@
import com.jivesoftware.community.JiveConstants;
import com.jivesoftware.community.QuestionManager;
import com.jivesoftware.community.RejectedException;
-import com.jivesoftware.community.cache.CacheManager;
import com.jivesoftware.community.stats.ViewCountManager;
+import com.jivesoftware.community.web.JiveResourceResolver;
/**
* Db implementation
@@ -82,10 +82,19 @@
private ViewCountManager viewCountManager;
- Map<Long, Long> categoryMappings = null;
+ /**
+ * Application context. Default = "/community"
+ */
+ private String appContext = "/community";
- Map<Long, Long> forumMappings = null;
+ private Map<Long, Long> categoryMappings = null;
+ private Map<Long, Long> forumMappings = null;
+
+ private com.jivesoftware.community.cache.Cache<Long, Long> topicMappings;
+
+ private com.jivesoftware.community.cache.Cache<Long, Long> postMappings;
+
private Date defaultTopicTime;
public int createForumMappingFromCategories() {
@@ -163,8 +172,6 @@
} catch (CommunityNotFoundException e) {
throw new RuntimeException(e);
}
- // Caches must be cleared because we modify view count
- // communityManager.clearCache(community);
ForumMessage rootMessage = forumManager.createMessage(community,
rootMessageUser);
@@ -174,6 +181,9 @@
rootMessage.setModificationDate(topicPost.getTime());
rootMessage.setSubject(topic.getTitle());
+ // TODO need to implement conversion from NF syntax to Wiki syntax:
+ // [quote], [quote=""] [url] [code]
+
org.w3c.dom.Document topicBody = WikiContentHelper
.wikiToJiveDocument(topicPost.getBody());
rootMessage.setBody(topicBody);
@@ -293,6 +303,79 @@
}
}
+ public String getCSForumsURL(String module, String op, Long c, Long f,
+ Long t, Long p) {
+ if ("bb".equalsIgnoreCase(module)) {
+ // case /index.html?module=bb
+ if (op == null || op.trim().length() == 0) {
+ return addContext("/threads");
+ }
+
+ // case /index.html?module=bb&op=search
+ if ("search".equalsIgnoreCase(op)) {
+ return addContext("/search");
+ }
+
+ // case: /index.html?module=bb&op=main&c=15
+ // and /index.html?module=bb&op=viewforum&f=165
+ if (("main".equalsIgnoreCase(op) && c != null)
+ || ("viewforum".equalsIgnoreCase(op) && f != null)) {
+ Long communityID = getCategoryMappings().get(c);
+ if (communityID == null) {
+ return null;
+ }
+ Community community;
+ try {
+ community = communityManager.getCommunity(communityID);
+ String communityURL = JiveResourceResolver
+ .getJiveObjectURL(community)
+ + "?view=discussions";
+ return addContext(communityURL);
+ } catch (CommunityNotFoundException e) {
+ return null;
+ }
+ }
+ // case: /index.html?module=bb&op=viewtopic&t=150889
+ if ("viewtopic".equals(op) && t != null) {
+ Long threadID = getThreadID(t);
+ return addContext("/thread/" + threadID + "?tstart=0");
+ }
+
+ // case: /index.html?module=bb&op=viewtopic&p=3915981
+ if ("viewtopic".equals(op) && p != null) {
+ Long messageID = getMessageID(p);
+ return addContext("/message/" + messageID + "#" + messageID);
+ }
+ }
+ return null;
+ }
+
+ protected Long getThreadID(Long topicID) {
+ Long threadID = topicMappings.get(topicID);
+
+ if (threadID == null) {
+ threadID = nukesForumsMappingDAO.getTopicMapping(topicID);
+ topicMappings.put(topicID, threadID);
+ }
+
+ return threadID;
+ }
+
+ protected Long getMessageID(Long postID) {
+ Long messageID = postMappings.get(postID);
+
+ if (messageID == null) {
+ messageID = nukesForumsMappingDAO.getPostMapping(postID);
+ postMappings.put(postID, messageID);
+ }
+
+ return messageID;
+ }
+
+ private String addContext(String url) {
+ return appContext + url;
+ }
+
public void setNukesForumsMappingDAO(
NukesForumsMappingDAO nukesForumsMappingDAO) {
this.nukesForumsMappingDAO = nukesForumsMappingDAO;
@@ -342,4 +425,30 @@
this.viewCountManager = viewCountManager;
}
+ public void setAppContext(String appContext) {
+ this.appContext = appContext;
+ }
+
+ public String getAppContext() {
+ return appContext;
+ }
+
+ public void setTopicMappings(
+ com.jivesoftware.community.cache.Cache<Long, Long> topicMappings) {
+ this.topicMappings = topicMappings;
+ }
+
+ public com.jivesoftware.community.cache.Cache<Long, Long> getTopicMappings() {
+ return topicMappings;
+ }
+
+ public void setPostMappings(
+ com.jivesoftware.community.cache.Cache<Long, Long> postMappings) {
+ this.postMappings = postMappings;
+ }
+
+ public com.jivesoftware.community.cache.Cache<Long, Long> getPostMappings() {
+ return postMappings;
+ }
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java 2009-05-25 11:42:06 UTC (rev 26717)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/NukesForumsManager.java 2009-05-25 14:43:53 UTC (rev 26718)
@@ -62,7 +62,7 @@
* @return
*/
public int getCategoryCount();
-
+
/**
* Flush cache
*
@@ -70,4 +70,25 @@
*/
public void flushCache(CacheName cacheName);
+ /**
+ * Get Clearspace Forums URL based on Nukes Forums Parameters
+ *
+ * @param module
+ * NF parameter module
+ * @param op
+ * NF parameter operation
+ * @param c
+ * NF parameter category
+ * @param f
+ * NF parameter forum
+ * @param t
+ * NF parameter topic
+ * @param p
+ * NF parameter post
+ * @return CS forums URL like <code>community/jbossas?view=discussions</code>
+ * or NULL if no CS forum was founded
+ */
+ public String getCSForumsURL(String module, String op, Long c, Long f,
+ Long t, Long p);
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsMappingDAOImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsMappingDAOImpl.java 2009-05-25 11:42:06 UTC (rev 26717)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/DbNukesForumsMappingDAOImpl.java 2009-05-25 14:43:53 UTC (rev 26718)
@@ -27,6 +27,7 @@
import java.util.Map;
import org.springframework.dao.DataAccessException;
+import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.ResultSetExtractor;
import com.jivesoftware.base.database.dao.JiveJdbcDaoSupport;
@@ -44,6 +45,10 @@
private static final String SELECT_ALL_FORUMS_MAPPINGS = "SELECT forum_id, communityID FROM nukesForumsForumMapping";
+ private static final String SELECT_TOPIC_MAPPINGS = "SELECT threadID FROM nukesForumsTopicMapping WHERE topic_id = ?";
+
+ private static final String SELECT_POST_MAPPINGS = "SELECT messageID FROM nukesForumsPostMapping WHERE post_id = ?";
+
private static final String INSERT_FORUM_MAPPING = "INSERT INTO nukesForumsForumMapping (forum_id, communityID) VALUES (?, ?)";
private static final String INSERT_TOPIC_MAPPING = "INSERT INTO nukesForumsTopicMapping (topic_id, threadID) VALUES (?, ?)";
@@ -62,6 +67,17 @@
SELECT_ALL_FORUMS_MAPPINGS, new TwoColumnsAsMapExtractor());
}
+ public Long getPostMapping(Long postID) throws EmptyResultDataAccessException {
+ return this.getSimpleJdbcTemplate().queryForLong(SELECT_POST_MAPPINGS,
+ postID);
+ }
+
+ public Long getTopicMapping(Long topicID)
+ throws EmptyResultDataAccessException {
+ return this.getSimpleJdbcTemplate().queryForLong(SELECT_TOPIC_MAPPINGS,
+ topicID);
+ }
+
public void saveForumMapping(Long forumID, Long communityID) {
this.getSimpleJdbcTemplate().update(INSERT_FORUM_MAPPING, forumID,
communityID);
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsMappingDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsMappingDAO.java 2009-05-25 11:42:06 UTC (rev 26717)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/dao/NukesForumsMappingDAO.java 2009-05-25 14:43:53 UTC (rev 26718)
@@ -23,6 +23,8 @@
import java.util.Map;
+import org.springframework.dao.EmptyResultDataAccessException;
+
/**
* Interface for Nukes Forums category, forum, topic and post mapping
*
@@ -46,6 +48,25 @@
public Map<Long, Long> getAllForumMappings();
/**
+ * Get topic mapping for specified topicID
+ *
+ * @param topicID
+ * @return threadID
+ * @throws EmptyResultDataAccessException
+ */
+ public Long getTopicMapping(Long topicID)
+ throws EmptyResultDataAccessException;
+
+ /**
+ * Get post mapping for specified postID
+ *
+ * @param postID
+ * @return mesageID
+ * @throws EmptyResultDataAccessException
+ */
+ public Long getPostMapping(Long postID) throws EmptyResultDataAccessException;
+
+ /**
* Insert new forum mapping
*
* @param forumID
Added: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/RedirectNFToCSForumAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/RedirectNFToCSForumAction.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/RedirectNFToCSForumAction.java 2009-05-25 14:43:53 UTC (rev 26718)
@@ -0,0 +1,133 @@
+/*
+ * JBoss.org http://jboss.org/
+ *
+ * Copyright (c) 2009 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.labs.clearspace.plugin.nfm.struts;
+
+import org.jboss.labs.clearspace.plugin.nfm.NukesForumsManager;
+
+import com.jivesoftware.community.action.JiveActionSupport;
+
+/**
+ * Action redirects from NF URL to Clearspace forum based on mapping between
+ * those systems
+ *
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ *
+ */
+public class RedirectNFToCSForumAction extends JiveActionSupport {
+
+ /**
+ * URL to redirect
+ */
+ private String url = null;
+
+ private String module = null;
+
+ private String op = null;
+
+ private Long c = null;
+
+ private Long f = null;
+
+ private Long t = null;
+
+ private Long p = null;
+
+ private NukesForumsManager nukesForumsManager;
+
+ public static final String URL_NOT_DEFINED = "urlNotDefined";
+
+ @Override
+ public String execute() {
+ url = nukesForumsManager.getCSForumsURL(module, op, c, f, t, p);
+
+ if (url == null) {
+ return URL_NOT_DEFINED;
+ }
+
+ return SUCCESS;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getModule() {
+ return module;
+ }
+
+ public void setModule(String module) {
+ this.module = module;
+ }
+
+ public String getOp() {
+ return op;
+ }
+
+ public void setOp(String op) {
+ this.op = op;
+ }
+
+ public Long getC() {
+ return c;
+ }
+
+ public void setC(Long c) {
+ this.c = c;
+ }
+
+ public Long getF() {
+ return f;
+ }
+
+ public void setF(Long f) {
+ this.f = f;
+ }
+
+ public Long getT() {
+ return t;
+ }
+
+ public void setT(Long t) {
+ this.t = t;
+ }
+
+ public Long getP() {
+ return p;
+ }
+
+ public void setP(Long p) {
+ this.p = p;
+ }
+
+ public NukesForumsManager getNukesForumsManager() {
+ return nukesForumsManager;
+ }
+
+ public void setNukesForumsManager(NukesForumsManager nukesForumsManager) {
+ this.nukesForumsManager = nukesForumsManager;
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/java/org/jboss/labs/clearspace/plugin/nfm/struts/RedirectNFToCSForumAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/cache-config.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/cache-config.xml (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/cache-config.xml 2009-05-25 14:43:53 UTC (rev 26718)
@@ -0,0 +1,39 @@
+<cache-config>
+ <cache-mapping>
+ <cache-name>Nukes Forums Topic mapping</cache-name>
+ <scheme-name>default-near</scheme-name>
+ <init-params>
+ <init-param>
+ <param-name>back-size-high</param-name>
+ <param-value>131072</param-value>
+ </init-param>
+ <init-param>
+ <param-name>back-expiry</param-name>
+ <param-value>6h</param-value>
+ </init-param>
+ <init-param>
+ <param-name>back-size-low</param-name>
+ <param-value>117965</param-value>
+ </init-param>
+ </init-params>
+ </cache-mapping>
+ <cache-mapping>
+ <cache-name>Nukes Forums Post mapping</cache-name>
+ <scheme-name>default-near</scheme-name>
+ <init-params>
+ <init-param>
+ <param-name>back-size-high</param-name>
+ <param-value>131072</param-value>
+ </init-param>
+ <init-param>
+ <param-name>back-expiry</param-name>
+ <param-value>6h</param-value>
+ </init-param>
+ <init-param>
+ <param-name>back-size-low</param-name>
+ <param-value>117965</param-value>
+ </init-param>
+ </init-params>
+ </cache-mapping>
+
+</cache-config>
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/cache-config.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml 2009-05-25 11:42:06 UTC (rev 26717)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/spring.xml 2009-05-25 14:43:53 UTC (rev 26718)
@@ -5,6 +5,16 @@
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
+
+ <bean id="topicMappings" parent="cacheBean" depends-on="cacheFactoryManager">
+ <constructor-arg value="Nukes Forums Topic mapping" />
+ </bean>
+
+ <bean id="postMappings" parent="cacheBean" depends-on="cacheFactoryManager">
+ <constructor-arg value="Nukes Forums Post mapping" />
+ </bean>
+
+
<bean id="nukesForumsManager"
class="org.jboss.labs.clearspace.plugin.nfm.DbNukesForumsManager">
<property name="nukesForumsMappingDAO" ref="nukesForumsMappingDAO" />
@@ -16,6 +26,9 @@
<property name="viewCountManager" ref="viewCountManager" />
<property name="questionManager" ref="questionManager" />
<property name="defaultTopicTimeStr" value="2002-01-01" />
+
+ <property name="topicMappings" ref="topicMappings" />
+ <property name="postMappings" ref="postMappings" />
</bean>
<bean id="nukesForumsMappingDAO"
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/struts.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/struts.xml 2009-05-25 11:42:06 UTC (rev 26717)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/main/resources/struts.xml 2009-05-25 14:43:53 UTC (rev 26718)
@@ -44,7 +44,19 @@
/plugins/nukes-forums-migration/admin/nukes-forums-migration.ftl
</result>
</action>
-
</package>
+
+ <package name="nfm-actions" namespace="/nfm" extends="community-actions">
+ <action name="redirectToCSForum"
+ class="org.jboss.labs.clearspace.plugin.nfm.struts.RedirectNFToCSForumAction">
+ <result name="success" type="httpheader">
+ <param name="status">301</param>
+ <param name="headers.Location">${url}</param>
+ <param name="parse">true</param>
+ </result>
+ <result name="input" type="redirect">/</result>
+ <result name="urlNotDefined" type="redirect">/</result>
+ </action>
+ </package>
</struts>
Added: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/struts/DbNukesForumsManagerTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/struts/DbNukesForumsManagerTest.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/struts/DbNukesForumsManagerTest.java 2009-05-25 14:43:53 UTC (rev 26718)
@@ -0,0 +1,119 @@
+/*
+ * JBoss.org http://jboss.org/
+ *
+ * Copyright (c) 2009 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.labs.clearspace.plugin.nfm.struts;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.labs.clearspace.plugin.nfm.DbNukesForumsManager;
+import org.jboss.labs.clearspace.plugin.nfm.dao.NukesForumsMappingDAO;
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.dao.EmptyResultDataAccessException;
+
+import com.jivesoftware.community.cache.CoherenceCache;
+
+/**
+ * Test of {@link DbNukesForumsManager}
+ *
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ *
+ */
+public class DbNukesForumsManagerTest {
+
+ private DbNukesForumsManager dbNukesForumsManager;
+
+ private static final String MODULE_BB = "bb";
+
+ @Before
+ public void setupDbNukesForumsManagerTest() {
+ dbNukesForumsManager = new DbNukesForumsManager();
+ dbNukesForumsManager
+ .setNukesForumsMappingDAO(new DummyNukesForumsMappingDAO());
+ dbNukesForumsManager.setTopicMappings(new CoherenceCache());
+ dbNukesForumsManager.setPostMappings(new CoherenceCache());
+ }
+
+ /**
+ * Test method for
+ * {@link org.jboss.labs.clearspace.plugin.nfm.DbNukesForumsManager#getCSForumsURL(java.lang.String, java.lang.String, java.lang.Long, java.lang.Long, java.lang.Long, java.lang.Long)}
+ */
+ @Test
+ public void testGetCSForumsURL() {
+
+ assertEquals("/community/threads", dbNukesForumsManager.getCSForumsURL(
+ MODULE_BB, null, null, null, null, null));
+
+ // assertEquals("community/community/jbossas?view=discussions",
+ // dbNukesForumsManager.getCSForumsURL(MODULE_BB, "main", new Long(5),
+ // null, null, null));
+
+ assertEquals("/community/thread/1001?tstart=0", dbNukesForumsManager
+ .getCSForumsURL(MODULE_BB, "viewtopic", null, null, new Long(16549),
+ null));
+
+ assertEquals("/community/message/1058#1058", dbNukesForumsManager
+ .getCSForumsURL(MODULE_BB, "viewtopic", null, null, null, new Long(
+ 18465)));
+
+ }
+
+ class DummyNukesForumsMappingDAO implements NukesForumsMappingDAO {
+
+ Map<Long, Long> categoryMappings = null;
+
+ public Map<Long, Long> getAllCategoryMappings() {
+ if (categoryMappings == null) {
+ categoryMappings = new HashMap<Long, Long>();
+ categoryMappings.put(new Long(5), new Long(2005));
+ }
+ return null;
+ }
+
+ public Long getPostMapping(Long postID)
+ throws EmptyResultDataAccessException {
+ return new Long(1058);
+ }
+
+ public Long getTopicMapping(Long topicID)
+ throws EmptyResultDataAccessException {
+ return new Long(1001);
+ }
+
+ public Map<Long, Long> getAllForumMappings() {
+ return null;
+ }
+
+ public void saveForumMapping(Long forumID, Long communityID) {
+ }
+
+ public void savePostMapping(Long postID, Long messageID) {
+ }
+
+ public void saveTopicMapping(Long topicID, Long threadID) {
+ }
+
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/cs-nfm/trunk/src/test/java/org/jboss/labs/clearspace/plugin/nfm/struts/DbNukesForumsManagerTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the jboss-svn-commits
mailing list