From 4a9a82b3148a46394b4f21cbf522aa1b64081290 Mon Sep 17 00:00:00 2001 From: Quang Pham Date: Mon, 18 Jun 2012 11:34:56 +0700 Subject: [PATCH 1/2] FORUM-4 | Improve FAQ Injector and add MembershipInjector --- .../main/java/conf/portal/configuration.xml | 23 ++- .../injection/faq/AbstractFAQInjector.java | 6 +- .../extras/injection/faq/AnswerInjector.java | 28 +-- .../injection/faq/AttachmentInjector.java | 12 +- .../injection/faq/CategoryInjector.java | 10 +- .../extras/injection/faq/CommentInjector.java | 24 ++- .../injection/faq/MembershipInjector.java | 167 +++++++++++++++++- .../extras/injection/faq/ProfileInjector.java | 2 +- .../injection/faq/QuestionInjector.java | 14 +- .../extras/injection/InjectorFAQTestCase.java | 123 +++++++++++-- ...orum.component.core.test.configuration.xml | 3 + 11 files changed, 366 insertions(+), 46 deletions(-) diff --git a/extras/injection/src/main/java/conf/portal/configuration.xml b/extras/injection/src/main/java/conf/portal/configuration.xml index 031b658836..1af7c02216 100644 --- a/extras/injection/src/main/java/conf/portal/configuration.xml +++ b/extras/injection/src/main/java/conf/portal/configuration.xml @@ -31,7 +31,7 @@ org.exoplatform.forum.extras.injection.forum.CategoryInjector - + org.exoplatform.forum.extras.injection.forum.ForumInjector @@ -54,6 +54,27 @@ + + org.exoplatform.forum.extras.injection.faq.CategoryInjector + + + org.exoplatform.forum.extras.injection.faq.AnswerInjector + + + org.exoplatform.forum.extras.injection.faq.ProfileInjector + + + org.exoplatform.forum.extras.injection.faq.QuestionInjector + + + org.exoplatform.forum.extras.injection.faq.CommentInjector + + + org.exoplatform.forum.extras.injection.faq.AttachmentInjector + + + org.exoplatform.forum.extras.injection.faq.MembershipInjector + org.exoplatform.services.bench.DataInjectorService diff --git a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AbstractFAQInjector.java b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AbstractFAQInjector.java index 268c4373f8..bdb5799401 100644 --- a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AbstractFAQInjector.java +++ b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AbstractFAQInjector.java @@ -1,8 +1,6 @@ package org.exoplatform.forum.extras.injection.faq; -import java.util.Arrays; import java.util.HashMap; -import java.util.List; import java.util.Random; import javax.jcr.Node; @@ -295,7 +293,7 @@ public Question getQuestionByName(String questionName) throws Exception { question.setQuestion(questionName); question.setPath(quesNodePath.substring(quesNodePath.indexOf(KSDataLocation.Locations.FAQ_CATEGORIES_HOME))); question.setTopicIdDiscuss(reader.string(FAQNodeTypes.EXO_TOPIC_ID_DISCUSS)); - question.setUsersWatch(reader.strings(FAQNodeTypes.EXO_USER_WATCHING)); + question.setUsersVote(reader.strings(FAQNodeTypes.EXO_USERS_VOTE)); return question; } @@ -315,6 +313,8 @@ public Answer getAnswerByName(String answerName) throws Exception { PropertyReader reader = new PropertyReader(answerNode); answer.setDateResponse(reader.date(FAQNodeTypes.EXO_DATE_RESPONSE)); answer.setId(reader.string(FAQNodeTypes.EXO_ID)); + answer.setLanguage(reader.string(FAQNodeTypes.EXO_LANGUAGE)); + answer.setUsersVoteAnswer(reader.strings(FAQNodeTypes.EXO_USERS_VOTE_ANSWER)); return answer; } diff --git a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AnswerInjector.java b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AnswerInjector.java index 11ceb11b3c..772643d26d 100644 --- a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AnswerInjector.java +++ b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AnswerInjector.java @@ -24,31 +24,36 @@ public class AnswerInjector extends AbstractFAQInjector { @Override public void inject(HashMap params) throws Exception { + // int number = param(params, NUMBER); int fromQues = param(params, FROM_QUES); int toQues = param(params, TO_QUES); String questionPrefix = params.get(QUESTION_PREFIX); String answerPrefix = params.get(ANSWER_PREFIX); + init(null, null, questionPrefix, answerPrefix, null, 0); // - init(null, null, questionPrefix, answerPrefix, null, 0); - - int q = fromQues; - for (;q <= toQues; q++) { - - String questionName = questionBase + q; - Question question = getQuestionByName(questionName); + String questionName = null; + String answerName = null; + Question question = null; + Answer answer = null; + + for (int i = fromQues;i <= toQues; i++) { + // + questionName = questionBase + i; + question = getQuestionByName(questionName); if (question == null) { getLog().info("Question name '" + questionName + "' is wrong. Aborting injection ..." ); return; } // - String answerName = null; - for (int i = 0; i < number; i++) { + for (int j = 0; j < number; j++) { + // answerName = answerName(); - Answer answer = new Answer(); + // + answer = new Answer(); answer.setFullName(answerName); answer.setLanguage("English"); answer.setMarksVoteAnswer(0.0); @@ -57,12 +62,13 @@ public void inject(HashMap params) throws Exception { answer.setResponseBy(question.getAuthor()); answer.setResponses(lorem.getParagraphs(1)); + // faqService.saveAnswer(question.getPath(), answer, true); answerNumber++; + // getLog().info("Answer '" + answerName + "' created by " + question.getAuthor()); } } - } } diff --git a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AttachmentInjector.java b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AttachmentInjector.java index 73f2498a49..54d74acbc9 100644 --- a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AttachmentInjector.java +++ b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/AttachmentInjector.java @@ -43,13 +43,11 @@ public class AttachmentInjector extends AbstractFAQInjector { @Override public void inject(HashMap params) throws Exception { + // int number = param(params, NUMBER); int fromQues = param(params, FROM_QUES); int toQues = param(params, TO_QUES); - String questionPrefix = params.get(QUESTION_PREFIX); - - // init(null, null, questionPrefix, null, null, 0); // @@ -59,10 +57,12 @@ public void inject(HashMap params) throws Exception { return; } + // String questionName = null; Question question = null; for (int i = fromQues; i <= toQues; ++i) { + // questionName = questionBase + i; question = getQuestionByName(questionName); if (question == null) { @@ -70,14 +70,17 @@ public void inject(HashMap params) throws Exception { return; } + // generateAttachments(question, QUESTION_PREFIX, number, byteSize); faqService.saveQuestion(question, false, faqSetting); + // getLog().info("Uploads " + number + " attachments into '" + questionName + "' with each attachment's " + byteSize + " byte(s)"); } } private void generateAttachments(Question question, String prefix, int number, int byteSize) throws Exception { + // if (question.getAttachMent() == null || question.getAttachMent().size() == 0) { question.setAttachMent(new ArrayList()); } @@ -89,6 +92,7 @@ private void generateAttachments(Question question, String prefix, int number, i FileAttachment att = null; for (int i = 0; i < number; i++) { + // attId = generateId(prefix + baseNumber, Utils.ATTACHMENT, byteSize, i); att = new FileAttachment(); att.setId(attId); @@ -99,6 +103,8 @@ private void generateAttachments(Question question, String prefix, int number, i long fileSize = (long) byteSize * 1024; att.setSize(fileSize); question.getAttachMent().add(att); + + // baseNumber++; } } diff --git a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/CategoryInjector.java b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/CategoryInjector.java index b53dc48b44..20039f4bd5 100644 --- a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/CategoryInjector.java +++ b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/CategoryInjector.java @@ -14,17 +14,21 @@ public class CategoryInjector extends AbstractFAQInjector { @Override public void inject(HashMap params) throws Exception { + // int number = param(params, NUMBER); String categoryPrefix = params.get(CATEGORY_PREFIX); init(null, categoryPrefix, null, null, null, 0); - + + // Category rootCategory = getCategoryRoot(true); String categoryName = null; Category cat = null; for(int i = 0; i < number; i++) { + // categoryName = categoryName(); - + + // cat = new Category(); cat.setIndex(i); cat.setName(categoryName); @@ -32,9 +36,11 @@ public void inject(HashMap params) throws Exception { cat.setModerators(new String[] {""}); cat.setUserPrivate(new String[] {""}); + // faqService.saveCategory(rootCategory.getPath(), cat, true); categoryNumber++; + // getLog().info("Category '" + categoryName + "' created with parent is '" + rootCategory.getId() + "'"); } } diff --git a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/CommentInjector.java b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/CommentInjector.java index 41f6cc9cf5..3fc3b3af7a 100644 --- a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/CommentInjector.java +++ b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/CommentInjector.java @@ -16,39 +16,47 @@ public class CommentInjector extends AbstractFAQInjector { /** . */ private static final String QUESTION_PREFIX = "quesPrefix"; + /** . */ + private static final String COMMENT_PREFIX = "commentPrefix"; @Override public void inject(HashMap params) throws Exception { + // int number = param(params, NUMBER); - int to = param(params, TO_QUES); + int toQues = param(params, TO_QUES); String questionPrefix = params.get(QUESTION_PREFIX); - - // - init(null, null, questionPrefix, null, null, 0); + String commentPrefix = params.get(COMMENT_PREFIX); + init(null, null, questionPrefix, null, commentPrefix, 0); // - String questionName = questionBase + to; + String questionName = questionBase + toQues; Question question = getQuestionByName(questionName); if (question == null) { getLog().info("Question name '" + questionName + "' is wrong. Aborting injection ..." ); return; } + // String commentName = null; + Comment comment = null; - for (int i = 0; i <= number; i++) { + for (int i = 0; i < number; i++) { + // commentName = commentName(); - - Comment comment = new Comment(); + + // + comment = new Comment(); comment.setCommentBy(question.getAuthor()); comment.setComments(lorem.getParagraphs(1)); comment.setFullName(commentName); comment.setNew(true); comment.setPostId(""); + // faqService.saveComment(question.getPath(), comment, true); commentNumber++; + // getLog().info("Comment '" + commentName + "' created by " + question.getAuthor()); } } diff --git a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/MembershipInjector.java b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/MembershipInjector.java index 2180c24c2d..2fae045003 100644 --- a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/MembershipInjector.java +++ b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/MembershipInjector.java @@ -1,5 +1,170 @@ package org.exoplatform.forum.extras.injection.faq; -public class MembershipInjector { +import java.util.Arrays; +import java.util.HashMap; +import org.exoplatform.faq.service.Answer; +import org.exoplatform.faq.service.Category; +import org.exoplatform.faq.service.Question; +import org.exoplatform.faq.service.Utils; + +public class MembershipInjector extends AbstractFAQInjector { + + /** . */ + private static final String TYPE = "type"; + + /** . */ + private static final String TO_TYPE = "toType"; + + /** . */ + private static final String TYPE_PREFIX = "typePrefix"; + + /** . */ + private static final String FROM_USER = "fromUser"; + + /** . */ + private static final String TO_USER = "toUser"; + + /** . */ + private static final String USER_PREFIX = "userPrefix"; + + private int toType; + private String typePrefix; + private int fromUser; + private int toUser; + private String userPrefix; + + @Override + public void inject(HashMap params) throws Exception { + // + String type = params.get(TYPE); + if (type == null | type.length() <= 0) { + getLog().info("type value is wrong! Please set it exactly with 'category', 'question', or 'answer' value. Aborting injection ..."); + return; + } + + // + this.toType = param(params, TO_TYPE); + this.typePrefix = params.get(TYPE_PREFIX); + this.fromUser = param(params, FROM_USER); + this.toUser = param(params, TO_USER); + this.userPrefix = params.get(USER_PREFIX); + + // + if ("category".equals(type)) { + init(userPrefix, typePrefix, null, null, null, 0); + injectCategory(); + } else if ("question".equals(type)) { + init(userPrefix, null, typePrefix, null, null, 0); + injectQuestion(); + } else if ("answer".equals(type)) { + init(userPrefix, null, null, typePrefix, null, 0); + injectAnswer(); + } + } + + private void injectCategory() throws Exception { + // + String categoryName = categoryBase + toType; + Category cat = getCategoryByName(categoryName); + if (cat == null) { + getLog().info("category name '" + categoryName + "' is wrong. Aborting injection ..."); + return; + } + + // + String[] userNames = getUserNames(); + if (userNames == null | userNames.length <= 0) { + getLog().info("Don't assign permission any user to '" + categoryName + "' category. Aborting injection ..."); + return; + } + + // + cat = faqService.getCategoryById(cat.getPath().substring(cat.getPath().lastIndexOf("/") + 1)); + cat.setModerators(userNames); + cat.setUserPrivate(userNames); + + // + faqService.saveCategory(getCategoryRoot(true).getPath(), cat, false); + + // + getLog().info("Assign permission '" + Arrays.toString(userNames) + "' user(s) into '" + categoryName + "' category."); + } + + private void injectQuestion() throws Exception { + // + String questionName = questionBase + toType; + Question question = getQuestionByName(questionName); + if (question == null) { + getLog().info("question name is '" + questionName + "' is wrong. Aborting injection ..."); + return; + } + + // + String[] userNames = getUserNames(); + if (userNames == null | userNames.length <=0) { + getLog().info("Don't assign permission any user to '" + questionName + "' question. Aborting injection ..."); + return; + } + + // + question = faqService.getQuestionById(question.getPath()); + question.setUsersVote(userNames); + + // + faqService.saveQuestion(question, false, faqSetting); + + // + getLog().info("Assign permission '" + Arrays.toString(userNames) + "' user(s) into '" + questionName + "' question in '" + question.getCategoryId() + "' category."); + } + + private void injectAnswer() throws Exception { + // + String aswerName = answerBase + toType; + Answer answer = getAnswerByName(aswerName); + if (answer == null) { + getLog().info("answer name is '" + aswerName + "' is wrong. Aborting injection ..."); + return; + } + + // + String[] userNames = getUserNames(); + if (userNames == null | userNames.length <=0) { + getLog().info("Don't assign permission any user to '" + aswerName + "' answer. Aborting injection ..."); + return; + } + + // + String questionId = answer.getPath().substring(answer.getPath().indexOf(Utils.CATEGORY_HOME), answer.getPath().indexOf(Utils.ANSWER_HOME) - 1); + answer = faqService.getAnswerById(questionId, answer.getId()); + answer.setUsersVoteAnswer(userNames); + + // Tip and trick for save answer: Set isNew to true and language if null + if (answer.getLanguage() == null) { + answer.setNew(true); + answer.setLanguage("English"); + } + faqService.saveAnswer(questionId, answer, true); + + // + getLog().info("Assign permission '" + Arrays.toString(userNames) + "' user(s) into '" + aswerName + "' answer in '" + questionId + "' question."); + } + + private String[] getUserNames() throws Exception { + // + String[] result = new String[toUser - fromUser + 1]; + int userIdx = 0; + + // + for(int i = fromUser; i <= toUser; i++) { + String username = userBase + i; + if (userHandler.findUserByName(username) != null) { + result[userIdx] = username; + userIdx++; + } + } + + // + return result; + } } diff --git a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/ProfileInjector.java b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/ProfileInjector.java index 449970dc55..3ead715208 100644 --- a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/ProfileInjector.java +++ b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/ProfileInjector.java @@ -9,7 +9,7 @@ public class ProfileInjector extends AbstractFAQInjector { /** . */ private static final String NUMBER = "number"; - private static final String PREFIX = "prefix"; + private static final String PREFIX = "userPrefix"; @Override public void inject(HashMap params) throws Exception { diff --git a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/QuestionInjector.java b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/QuestionInjector.java index e45d3b5eff..c3b12b4e26 100644 --- a/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/QuestionInjector.java +++ b/extras/injection/src/main/java/org/exoplatform/forum/extras/injection/faq/QuestionInjector.java @@ -27,13 +27,13 @@ public class QuestionInjector extends AbstractFAQInjector { @Override public void inject(HashMap params) throws Exception { + // int number = param(params, NUMBER); int toCat = param(params, TO_CAT); String userPrefix = params.get(USER_PREFIX); String toUser = params.get(TO_USER); String categoryPrefix = params.get(CATEGORY_PREFIX); String questionPrefix = params.get(QUESTION_PREFIX); - init(userPrefix, categoryPrefix, questionPrefix, null, null, 0); // @@ -45,14 +45,18 @@ public void inject(HashMap params) throws Exception { } //TODO Need to verify this user whether valid or not. - String owner = userPrefix + toUser; + String owner = userBase + toUser; + // String questionName = null; + Question question = null; for (int i = 0; i < number; i++) { + // questionName = questionName(); - - Question question = new Question(); + + // + question = new Question(); question.setAuthor(owner); question.setCategoryId(cat.getId()); question.setCategoryPath(cat.getPath()); @@ -67,9 +71,11 @@ public void inject(HashMap params) throws Exception { question.setTopicIdDiscuss(""); question.setUsersWatch(new String[] {""}); + // faqService.saveQuestion(question, true, faqSetting); questionNumber++; + // getLog().info("Question '" + questionName + "' created by " + owner); } } diff --git a/extras/injection/src/test/java/org/exoplatform/forum/extras/injection/InjectorFAQTestCase.java b/extras/injection/src/test/java/org/exoplatform/forum/extras/injection/InjectorFAQTestCase.java index 893b0adf37..2f2067c45e 100644 --- a/extras/injection/src/test/java/org/exoplatform/forum/extras/injection/InjectorFAQTestCase.java +++ b/extras/injection/src/test/java/org/exoplatform/forum/extras/injection/InjectorFAQTestCase.java @@ -21,6 +21,7 @@ import java.util.HashMap; import java.util.List; +import org.exoplatform.faq.service.Answer; import org.exoplatform.faq.service.Category; import org.exoplatform.faq.service.FAQService; import org.exoplatform.faq.service.Question; @@ -28,6 +29,7 @@ import org.exoplatform.forum.extras.injection.faq.AttachmentInjector; import org.exoplatform.forum.extras.injection.faq.CategoryInjector; import org.exoplatform.forum.extras.injection.faq.CommentInjector; +import org.exoplatform.forum.extras.injection.faq.MembershipInjector; import org.exoplatform.forum.extras.injection.faq.ProfileInjector; import org.exoplatform.forum.extras.injection.faq.QuestionInjector; @@ -51,6 +53,7 @@ public class InjectorFAQTestCase extends BaseTestCase { private ProfileInjector profileInjector; private QuestionInjector questionInjector; private AttachmentInjector attachmentInjector; + private MembershipInjector membershipInjector; private HashMap params; @@ -70,7 +73,7 @@ public void setUp() throws Exception { commentInjector = (CommentInjector) getContainer().getComponentInstanceOfType(CommentInjector.class); questionInjector = (QuestionInjector) getContainer().getComponentInstanceOfType(QuestionInjector.class); attachmentInjector = (AttachmentInjector) getContainer().getComponentInstanceOfType(AttachmentInjector.class); - + membershipInjector = (MembershipInjector) getContainer().getComponentInstanceOfType(MembershipInjector.class); // organizationService = (OrganizationService) getContainer().getComponentInstanceOfType(OrganizationService.class); @@ -161,6 +164,14 @@ public void testPrefixAttachment() throws Exception { performAttachmentTest("foo", "far", "bar", "baz", "bee"); } + public void testDefaultMembership() throws Exception { + performMembershipTest(null, null, null, null); + } + + public void testPrefixMembership() throws Exception { + performMembershipTest("foo", "far", "bar", "baz"); + } + private void performProfileTest(String prefix) throws Exception { // String baseName = (prefix == null ? "bench.user" : prefix); @@ -169,7 +180,7 @@ private void performProfileTest(String prefix) throws Exception { // params.put("number", "5"); if (prefix != null) { - params.put("prefix", prefix); + params.put("userPrefix", prefix); } profileInjector.inject(params); @@ -193,7 +204,7 @@ private void performCategoryTest(String userPrefix, String catPrefix) throws Exc // params.put("number", "3"); if (userPrefix != null) { - params.put("prefix", userPrefix); + params.put("userPrefix", userPrefix); } // @@ -204,7 +215,6 @@ private void performCategoryTest(String userPrefix, String catPrefix) throws Exc assertNotNull(userHandler.findUserByName(userBaseName + "2")); params.put("number", "6"); - params.put("depth", "3"); if (userPrefix != null) { params.put("userPrefix", userPrefix); } @@ -233,7 +243,7 @@ private void performQuestionTest(String userPrefix, String catPrefix, String que params.put("number", "3"); if (userPrefix != null) { - params.put("prefix", userPrefix); + params.put("userPrefix", userPrefix); } profileInjector.inject(params); @@ -243,7 +253,6 @@ private void performQuestionTest(String userPrefix, String catPrefix, String que assertNotNull(userHandler.findUserByName(userBaseName + "2")); params.put("number", "3"); - params.put("depth", "1"); if (userPrefix != null) { params.put("userPrefix", userPrefix); } @@ -260,6 +269,7 @@ private void performQuestionTest(String userPrefix, String catPrefix, String que params.put("number", "6"); params.put("toCat", "0"); + params.put("toUser", "0"); if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -284,7 +294,7 @@ private void performAnswerTest(String userPrefix, String catPrefix, String quesP params.put("number", "3"); if (userPrefix != null) { - params.put("prefix", userPrefix); + params.put("userPrefix", userPrefix); } profileInjector.inject(params); @@ -294,7 +304,6 @@ private void performAnswerTest(String userPrefix, String catPrefix, String quesP assertNotNull(userHandler.findUserByName(userBaseName + "2")); params.put("number", "3"); - params.put("depth", "1"); if (userPrefix != null) { params.put("userPrefix", userPrefix); } @@ -311,6 +320,7 @@ private void performAnswerTest(String userPrefix, String catPrefix, String quesP params.put("number", "3"); params.put("toCat", "0"); + params.put("toUser", "0"); if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -347,7 +357,7 @@ private void performCommentTest(String userPrefix, String catPrefix, String ques params.put("number", "3"); if (userPrefix != null) { - params.put("prefix", userPrefix); + params.put("userPrefix", userPrefix); } profileInjector.inject(params); @@ -357,7 +367,6 @@ private void performCommentTest(String userPrefix, String catPrefix, String ques assertNotNull(userHandler.findUserByName(userBaseName + "2")); params.put("number", "3"); - params.put("depth", "1"); if (userPrefix != null) { params.put("userPrefix", userPrefix); } @@ -374,6 +383,7 @@ private void performCommentTest(String userPrefix, String catPrefix, String ques params.put("number", "3"); params.put("toCat", "0"); + params.put("toUser", "0"); if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -421,7 +431,7 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q params.put("number", "3"); if (userPrefix != null) { - params.put("prefix", userPrefix); + params.put("userPrefix", userPrefix); } profileInjector.inject(params); @@ -431,7 +441,6 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q assertNotNull(userHandler.findUserByName(userBaseName + "2")); params.put("number", "3"); - params.put("depth", "1"); if (userPrefix != null) { params.put("userPrefix", userPrefix); } @@ -448,6 +457,7 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q params.put("number", "3"); params.put("toCat", "0"); + params.put("toUser", "0"); if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -493,6 +503,95 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q cleanProfile(userBaseName, 3); } + private void performMembershipTest(String userPrefix, String catPrefix, String quesPrefix, String answerPrefix) throws Exception { + String userBaseName = (userPrefix == null ? "bench.user" : userPrefix); + String catBaseName = (catPrefix == null ? "bench.cat" : catPrefix); + String quesBaseName = (quesPrefix == null ? "bench.ques" : quesPrefix); + String answerBaseName = (answerPrefix == null ? "bench.answer" : answerPrefix); + assertClean(userBaseName, catBaseName, quesBaseName); + + params.put("number", "3"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } + + profileInjector.inject(params); + + assertNotNull(userHandler.findUserByName(userBaseName + "0")); + assertNotNull(userHandler.findUserByName(userBaseName + "1")); + assertNotNull(userHandler.findUserByName(userBaseName + "2")); + + params.put("number", "3"); + if (catPrefix != null) { + params.put("catPrefix", catPrefix); + } + + categoryInjector.inject(params); + assertEquals(3, categoryInjector.categoryNumber(catBaseName)); + assertNotNull(categoryInjector.getCategoryByName(catBaseName + "0")); + assertNotNull(categoryInjector.getCategoryByName(catBaseName + "1")); + assertNotNull(categoryInjector.getCategoryByName(catBaseName + "2")); + + // + params.put("type", "category"); + params.put("toType", "2"); + params.put("fromUser", "0"); + params.put("toUser", "2"); + if (catPrefix != null) { + params.put("typePrefix", catPrefix); + } + membershipInjector.inject(params); + assertEquals(3, categoryInjector.getCategoryByName(catBaseName + "2").getModerators().length); + assertEquals(3, categoryInjector.getCategoryByName(catBaseName + "2").getUserPrivate().length); + + params.put("number", "3"); + params.put("toCat", "0"); + params.put("toUser", "0"); + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } + questionInjector.inject(params); + assertEquals(3, questionInjector.questionNumber(quesBaseName)); + assertNotNull(questionInjector.getQuestionByName(quesBaseName + "0")); + assertNotNull(questionInjector.getQuestionByName(quesBaseName + "1")); + assertNotNull(questionInjector.getQuestionByName(quesBaseName + "2")); + + // + params.put("type", "question"); + params.put("toType", "1"); + params.put("fromUser", "0"); + params.put("toUser", "2"); + if (quesPrefix != null) { + params.put("typePrefix", quesPrefix); + } + membershipInjector.inject(params); + assertEquals(3, questionInjector.getQuestionByName(quesBaseName + "1").getUsersVote().length); + + params.put("number", "3"); + params.put("toQues", "0"); + if (answerPrefix != null) { + params.put("answerPrefix", answerPrefix); + } + answerInjector.inject(params); + assertEquals(3, answerInjector.answerNumber(answerBaseName)); + assertNotNull(answerInjector.getAnswerByName(answerBaseName + "0")); + assertNotNull(answerInjector.getAnswerByName(answerBaseName + "1")); + assertNotNull(answerInjector.getAnswerByName(answerBaseName + "2")); + + // + params.put("type", "answer"); + params.put("toType", "0"); + params.put("fromUser", "0"); + params.put("toUser", "2"); + if (answerPrefix != null) { + params.put("typePrefix", answerPrefix); + } + membershipInjector.inject(params); + assertEquals(3, answerInjector.getAnswerByName(answerBaseName + "0").getUsersVoteAnswer().length); + + cleanProfile(userBaseName, 3); + } + private void assertClean(String userBaseName, String categoryBaseName, String questionBaseName) throws Exception { if (userBaseName != null) { assertNull(userHandler.findUserByName(userBaseName + "0")); diff --git a/extras/injection/src/test/resources/conf/standalone/exo.forum.component.core.test.configuration.xml b/extras/injection/src/test/resources/conf/standalone/exo.forum.component.core.test.configuration.xml index 967b75a285..b9085c441b 100644 --- a/extras/injection/src/test/resources/conf/standalone/exo.forum.component.core.test.configuration.xml +++ b/extras/injection/src/test/resources/conf/standalone/exo.forum.component.core.test.configuration.xml @@ -82,6 +82,9 @@ org.exoplatform.forum.extras.injection.faq.AttachmentInjector + + org.exoplatform.forum.extras.injection.faq.MembershipInjector + From aa3ddbbf6500d5420d2c7d492504a60aea88e506 Mon Sep 17 00:00:00 2001 From: Quang Pham Date: Mon, 18 Jun 2012 18:34:22 +0700 Subject: [PATCH 2/2] FORUM-4 | Clear params in each test in InjectorFAQTestCase --- .../extras/injection/InjectorFAQTestCase.java | 138 ++++++++++++++---- 1 file changed, 111 insertions(+), 27 deletions(-) diff --git a/extras/injection/src/test/java/org/exoplatform/forum/extras/injection/InjectorFAQTestCase.java b/extras/injection/src/test/java/org/exoplatform/forum/extras/injection/InjectorFAQTestCase.java index 2f2067c45e..7187b970a7 100644 --- a/extras/injection/src/test/java/org/exoplatform/forum/extras/injection/InjectorFAQTestCase.java +++ b/extras/injection/src/test/java/org/exoplatform/forum/extras/injection/InjectorFAQTestCase.java @@ -21,7 +21,6 @@ import java.util.HashMap; import java.util.List; -import org.exoplatform.faq.service.Answer; import org.exoplatform.faq.service.Category; import org.exoplatform.faq.service.FAQService; import org.exoplatform.faq.service.Question; @@ -32,7 +31,6 @@ import org.exoplatform.forum.extras.injection.faq.MembershipInjector; import org.exoplatform.forum.extras.injection.faq.ProfileInjector; import org.exoplatform.forum.extras.injection.faq.QuestionInjector; - import org.exoplatform.services.organization.OrganizationService; import org.exoplatform.services.organization.UserHandler; @@ -214,11 +212,9 @@ private void performCategoryTest(String userPrefix, String catPrefix) throws Exc assertNotNull(userHandler.findUserByName(userBaseName + "1")); assertNotNull(userHandler.findUserByName(userBaseName + "2")); + // + params.clear(); params.put("number", "6"); - if (userPrefix != null) { - params.put("userPrefix", userPrefix); - } - if (catPrefix != null) { params.put("catPrefix", catPrefix); } @@ -252,11 +248,9 @@ private void performQuestionTest(String userPrefix, String catPrefix, String que assertNotNull(userHandler.findUserByName(userBaseName + "1")); assertNotNull(userHandler.findUserByName(userBaseName + "2")); + // + params.clear(); params.put("number", "3"); - if (userPrefix != null) { - params.put("userPrefix", userPrefix); - } - if (catPrefix != null) { params.put("catPrefix", catPrefix); } @@ -267,9 +261,17 @@ private void performQuestionTest(String userPrefix, String catPrefix, String que assertNotNull(categoryInjector.getCategoryByName(catBaseName + "1")); assertNotNull(categoryInjector.getCategoryByName(catBaseName + "2")); + // + params.clear(); params.put("number", "6"); params.put("toCat", "0"); params.put("toUser", "0"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } + if (catPrefix != null) { + params.put("catPrefix", catPrefix); + } if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -303,11 +305,9 @@ private void performAnswerTest(String userPrefix, String catPrefix, String quesP assertNotNull(userHandler.findUserByName(userBaseName + "1")); assertNotNull(userHandler.findUserByName(userBaseName + "2")); + // + params.clear(); params.put("number", "3"); - if (userPrefix != null) { - params.put("userPrefix", userPrefix); - } - if (catPrefix != null) { params.put("catPrefix", catPrefix); } @@ -318,9 +318,17 @@ private void performAnswerTest(String userPrefix, String catPrefix, String quesP assertNotNull(categoryInjector.getCategoryByName(catBaseName + "1")); assertNotNull(categoryInjector.getCategoryByName(catBaseName + "2")); + // + params.clear(); params.put("number", "3"); params.put("toCat", "0"); params.put("toUser", "0"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } + if (catPrefix != null) { + params.put("catPrefix", catPrefix); + } if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -330,8 +338,13 @@ private void performAnswerTest(String userPrefix, String catPrefix, String quesP assertNotNull(questionInjector.getQuestionByName(quesBaseName + "1")); assertNotNull(questionInjector.getQuestionByName(quesBaseName + "2")); + // + params.clear(); params.put("number", "6"); params.put("toQues", "0"); + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } if (answerPrefix != null) { params.put("answerPrefix", answerPrefix); } @@ -366,11 +379,9 @@ private void performCommentTest(String userPrefix, String catPrefix, String ques assertNotNull(userHandler.findUserByName(userBaseName + "1")); assertNotNull(userHandler.findUserByName(userBaseName + "2")); + // + params.clear(); params.put("number", "3"); - if (userPrefix != null) { - params.put("userPrefix", userPrefix); - } - if (catPrefix != null) { params.put("catPrefix", catPrefix); } @@ -381,9 +392,17 @@ private void performCommentTest(String userPrefix, String catPrefix, String ques assertNotNull(categoryInjector.getCategoryByName(catBaseName + "1")); assertNotNull(categoryInjector.getCategoryByName(catBaseName + "2")); + // + params.clear(); params.put("number", "3"); params.put("toCat", "0"); params.put("toUser", "0"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } + if (catPrefix != null) { + params.put("catPrefix", catPrefix); + } if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -393,8 +412,13 @@ private void performCommentTest(String userPrefix, String catPrefix, String ques assertNotNull(questionInjector.getQuestionByName(quesBaseName + "1")); assertNotNull(questionInjector.getQuestionByName(quesBaseName + "2")); + // + params.clear(); params.put("number", "3"); params.put("toQues", "0"); + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } if (answerPrefix != null) { params.put("answerPrefix", answerPrefix); } @@ -404,8 +428,13 @@ private void performCommentTest(String userPrefix, String catPrefix, String ques assertNotNull(answerInjector.getAnswerByName(answerBaseName + "1")); assertNotNull(answerInjector.getAnswerByName(answerBaseName + "2")); + // + params.clear(); params.put("number", "6"); params.put("toQues", "0"); + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } if (commentPrefix != null) { params.put("commentPrefix", commentPrefix); } @@ -440,11 +469,9 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q assertNotNull(userHandler.findUserByName(userBaseName + "1")); assertNotNull(userHandler.findUserByName(userBaseName + "2")); + // + params.clear(); params.put("number", "3"); - if (userPrefix != null) { - params.put("userPrefix", userPrefix); - } - if (catPrefix != null) { params.put("catPrefix", catPrefix); } @@ -455,9 +482,17 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q assertNotNull(categoryInjector.getCategoryByName(catBaseName + "1")); assertNotNull(categoryInjector.getCategoryByName(catBaseName + "2")); + // + params.clear(); params.put("number", "3"); params.put("toCat", "0"); params.put("toUser", "0"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } + if (catPrefix != null) { + params.put("catPrefix", catPrefix); + } if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -467,8 +502,13 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q assertNotNull(questionInjector.getQuestionByName(quesBaseName + "1")); assertNotNull(questionInjector.getQuestionByName(quesBaseName + "2")); + // + params.clear(); params.put("number", "3"); params.put("toQues", "0"); + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } if (answerPrefix != null) { params.put("answerPrefix", answerPrefix); } @@ -478,8 +518,13 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q assertNotNull(answerInjector.getAnswerByName(answerBaseName + "1")); assertNotNull(answerInjector.getAnswerByName(answerBaseName + "2")); + // + params.clear(); params.put("number", "3"); params.put("toQues", "0"); + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } if (commentPrefix != null) { params.put("commentPrefix", commentPrefix); } @@ -489,13 +534,16 @@ private void performAttachmentTest(String userPrefix, String catPrefix, String q assertNotNull(commentInjector.getCommentByName(commentBaseName + "1")); assertNotNull(commentInjector.getCommentByName(commentBaseName + "2")); + // + params.clear(); params.put("number", "3"); params.put("fromQues", "0"); params.put("toQues", "2"); params.put("byteSize", "50"); - + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } attachmentInjector.inject(params); - assertEquals(3, attachmentInjector.getQuestionByName(quesBaseName + "0").getAttachMent().size()); assertEquals(3, attachmentInjector.getQuestionByName(quesBaseName + "1").getAttachMent().size()); assertEquals(3, attachmentInjector.getQuestionByName(quesBaseName + "2").getAttachMent().size()); @@ -521,6 +569,8 @@ private void performMembershipTest(String userPrefix, String catPrefix, String q assertNotNull(userHandler.findUserByName(userBaseName + "1")); assertNotNull(userHandler.findUserByName(userBaseName + "2")); + // + params.clear(); params.put("number", "3"); if (catPrefix != null) { params.put("catPrefix", catPrefix); @@ -532,21 +582,34 @@ private void performMembershipTest(String userPrefix, String catPrefix, String q assertNotNull(categoryInjector.getCategoryByName(catBaseName + "1")); assertNotNull(categoryInjector.getCategoryByName(catBaseName + "2")); - // + // + params.clear(); params.put("type", "category"); params.put("toType", "2"); params.put("fromUser", "0"); params.put("toUser", "2"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } if (catPrefix != null) { + params.put("catPrefix", catPrefix); params.put("typePrefix", catPrefix); } membershipInjector.inject(params); assertEquals(3, categoryInjector.getCategoryByName(catBaseName + "2").getModerators().length); assertEquals(3, categoryInjector.getCategoryByName(catBaseName + "2").getUserPrivate().length); + // + params.clear(); params.put("number", "3"); params.put("toCat", "0"); params.put("toUser", "0"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } + if (catPrefix != null) { + params.put("catPrefix", catPrefix); + } if (quesPrefix != null) { params.put("quesPrefix", quesPrefix); } @@ -556,19 +619,32 @@ private void performMembershipTest(String userPrefix, String catPrefix, String q assertNotNull(questionInjector.getQuestionByName(quesBaseName + "1")); assertNotNull(questionInjector.getQuestionByName(quesBaseName + "2")); - // + // + params.clear(); params.put("type", "question"); params.put("toType", "1"); params.put("fromUser", "0"); params.put("toUser", "2"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } + if (catPrefix != null) { + params.put("catPrefix", catPrefix); + } if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); params.put("typePrefix", quesPrefix); } membershipInjector.inject(params); assertEquals(3, questionInjector.getQuestionByName(quesBaseName + "1").getUsersVote().length); + // + params.clear(); params.put("number", "3"); params.put("toQues", "0"); + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } if (answerPrefix != null) { params.put("answerPrefix", answerPrefix); } @@ -578,12 +654,20 @@ private void performMembershipTest(String userPrefix, String catPrefix, String q assertNotNull(answerInjector.getAnswerByName(answerBaseName + "1")); assertNotNull(answerInjector.getAnswerByName(answerBaseName + "2")); - // + // + params.clear(); params.put("type", "answer"); params.put("toType", "0"); params.put("fromUser", "0"); params.put("toUser", "2"); + if (userPrefix != null) { + params.put("userPrefix", userPrefix); + } + if (quesPrefix != null) { + params.put("quesPrefix", quesPrefix); + } if (answerPrefix != null) { + params.put("answerPrefix", answerPrefix); params.put("typePrefix", answerPrefix); } membershipInjector.inject(params);