r1050 - in trunk: . src/main/java/org/ourproject/kune/platf/server src/main/java/org/ourproject/kune/platf/server/content src/main/java/org/ourproject/kune/platf/server/domain src/main/java/org/ourproject/kune/platf/server/manager src/main/java/org/ourproject/kune/platf/server/manager/impl src/main/java/org/ourproject/kune/platf/server/rpc src/main/java/org/ourproject/kune/platf/server/state src/main/java/org/ourproject/kune/workspace/client/options src/test/java/org/ourproject/kune/platf/ser
Author: vjrj Date: 2009-02-20 14:41:17 +0100 (Fri, 20 Feb 2009) New Revision: 1050 Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagUserContent.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManager.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java trunk/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java Modified: trunk/TODO trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManager.java trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java trunk/src/main/java/org/ourproject/kune/platf/server/domain/Tag.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagManager.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java trunk/src/main/java/org/ourproject/kune/workspace/client/options/AbstractOptionsPanel.java trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java trunk/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java trunk/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java trunk/src/test/java/org/ourproject/kune/platf/server/manager/ContentManagerTest.java trunk/src/test/java/org/ourproject/kune/platf/server/manager/GroupManagerTest.java trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java Log: Complete - task Tags refactorization (Samer recomendations) Modified: trunk/TODO =================================================================== --- trunk/TODO 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/TODO 2009-02-20 13:41:17 UTC (rev 1050) @@ -464,3 +464,4 @@ http://toolserver.org/~merphant/wiki2html/ * IDEAS ** <d> Try to find a way dozer maps directly without use getters/setters (less js code and better performance) + Modified: trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -60,6 +60,8 @@ import org.ourproject.kune.platf.server.manager.RateManager; import org.ourproject.kune.platf.server.manager.SocialNetworkManager; import org.ourproject.kune.platf.server.manager.TagManager; +import org.ourproject.kune.platf.server.manager.TagUserContentManager; +import org.ourproject.kune.platf.server.manager.TagUserContentManagerDefault; import org.ourproject.kune.platf.server.manager.ToolConfigurationManager; import org.ourproject.kune.platf.server.manager.UserManager; import org.ourproject.kune.platf.server.manager.file.EntityLogoDownloadManager; @@ -135,6 +137,7 @@ bind(I18nLanguageManager.class).to(I18nLanguageManagerDefault.class); bind(I18nTranslationManager.class).to(I18nTranslationManagerDefault.class); bind(TagManager.class).to(TagManagerDefault.class); + bind(TagUserContentManager.class).to(TagUserContentManagerDefault.class); bind(CommentManager.class).to(CommentManagerDefault.class); bind(FileManager.class).to(FileManagerDefault.class); } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManager.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContainerManager.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -24,9 +24,10 @@ import org.ourproject.kune.platf.server.domain.Container; import org.ourproject.kune.platf.server.domain.Group; import org.ourproject.kune.platf.server.domain.I18nLanguage; +import org.ourproject.kune.platf.server.manager.Manager; import org.ourproject.kune.platf.server.manager.impl.SearchResult; -public interface ContainerManager { +public interface ContainerManager extends Manager<Container, Long> { Container createFolder(Group group, Container parent, String name, I18nLanguage language, String typeId); Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -19,11 +19,9 @@ */ package org.ourproject.kune.platf.server.content; -import java.util.ArrayList; import java.util.Date; import javax.persistence.EntityManager; -import javax.persistence.NoResultException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.queryParser.MultiFieldQueryParser; @@ -33,7 +31,6 @@ import org.ourproject.kune.platf.client.errors.I18nNotFoundException; import org.ourproject.kune.platf.client.errors.NameInUseException; import org.ourproject.kune.platf.client.errors.UserNotFoundException; -import org.ourproject.kune.platf.client.ui.TextUtils; import org.ourproject.kune.platf.server.access.FinderService; import org.ourproject.kune.platf.server.domain.Container; import org.ourproject.kune.platf.server.domain.Content; @@ -42,9 +39,8 @@ import org.ourproject.kune.platf.server.domain.Rate; import org.ourproject.kune.platf.server.domain.RateResult; import org.ourproject.kune.platf.server.domain.Revision; -import org.ourproject.kune.platf.server.domain.Tag; import org.ourproject.kune.platf.server.domain.User; -import org.ourproject.kune.platf.server.manager.TagManager; +import org.ourproject.kune.platf.server.manager.TagUserContentManager; import org.ourproject.kune.platf.server.manager.file.FileUtils; import org.ourproject.kune.platf.server.manager.impl.DefaultManager; import org.ourproject.kune.platf.server.manager.impl.SearchResult; @@ -60,17 +56,19 @@ private final FinderService finder; private final User userFinder; private final I18nLanguage languageFinder; - private final TagManager tagManager; private final Content contentFinder; private final Container containerFinder; + private final TagUserContentManager tagManager; + private final Provider<EntityManager> provider; @Inject public ContentManagerDefault(final Content contentFinder, final Container containerFinder, final Provider<EntityManager> provider, final FinderService finder, final User userFinder, - final I18nLanguage languageFinder, final TagManager tagManager) { + final I18nLanguage languageFinder, final TagUserContentManager tagManager) { super(provider, Content.class); this.contentFinder = contentFinder; this.containerFinder = containerFinder; + this.provider = provider; this.finder = finder; this.userFinder = userFinder; this.languageFinder = languageFinder; @@ -223,21 +221,7 @@ public void setTags(final User user, final Long contentId, final String tags) throws DefaultException { final Content content = finder.getContent(contentId); - final ArrayList<String> tagsStripped = TextUtils.splitTags(tags); - final ArrayList<Tag> tagList = new ArrayList<Tag>(); - for (String tagString : tagsStripped) { - Tag tag; - try { - tag = tagManager.findByTagName(tagString); - } catch (final NoResultException e) { - tag = new Tag(tagString); - tagManager.persist(tag); - } - if (!tagList.contains(tag)) { - tagList.add(tag); - } - } - content.setTags(tagList); + tagManager.setTags(user, content, tags); } private String findInexistentTitle(Container container, String title) { Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Set; @@ -43,7 +42,6 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OneToOne; -import javax.persistence.OrderBy; import javax.persistence.Table; import javax.persistence.Transient; import javax.persistence.Version; @@ -74,11 +72,6 @@ @Version private int version; - @OrderBy("name DESC") - @IndexedEmbedded - @ManyToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST }) - private List<Tag> tags; - @OneToOne private License license; @@ -136,7 +129,6 @@ public Content() { translations = new ArrayList<ContentTranslation>(); authors = new ArrayList<User>(); - tags = new ArrayList<Tag>(); comments = new HashSet<Comment>(); this.createdOn = System.currentTimeMillis(); this.lastRevision = new Revision(this); @@ -242,22 +234,6 @@ return status; } - public List<Tag> getTags() { - return tags; - } - - public String getTagsAsString() { - String tagConcatenated = ""; - for (final Iterator<Tag> iterator = tags.iterator(); iterator.hasNext();) { - final Tag tag = iterator.next(); - tagConcatenated = tagConcatenated + tag.getName(); - if (iterator.hasNext()) { - tagConcatenated = tagConcatenated + " "; - } - } - return tagConcatenated; - } - public String getTitle() { return lastRevision.getTitle(); } @@ -339,10 +315,6 @@ this.status = status; } - public void setTags(final List<Tag> tags) { - this.tags = tags; - } - public void setTranslations(final List<ContentTranslation> translations) { this.translations = translations; } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Tag.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Tag.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Tag.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -23,8 +23,6 @@ import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; import javax.persistence.Table; import org.hibernate.search.annotations.DocumentId; @@ -39,17 +37,7 @@ @Entity @Indexed @Table(name = "tags") -// See: -// http://openjpa.apache.org/docs/latest/manual/manual.html#jpa_langref_resultt... -@NamedQueries( { - @NamedQuery(name = "tagsgrouped", query = "SELECT NEW org.ourproject.kune.platf.server.domain.TagCount(t.name, COUNT(c.id)) " - + "FROM Content c JOIN c.tags t WHERE c.container.owner = :group " + "GROUP BY t.name ORDER BY t.name"), - @NamedQuery(name = "tagsmaxgrouped", query = "SELECT Count(c.id) FROM Content c JOIN c.tags t WHERE c.container.owner = :group GROUP BY t.name ORDER BY count(*) DESC LIMIT 0,1"), - @NamedQuery(name = "tagsmingrouped", query = "SELECT Count(c.id) FROM Content c JOIN c.tags t WHERE c.container.owner = :group GROUP BY t.name ORDER BY count(*) ASC LIMIT 0,1") }) public class Tag implements HasId { - public static final String TAGSGROUPED = "tagsgrouped"; - public static final String TAGSMINGROUPED = "tagsmingrouped"; - public static final String TAGSMAXGROUPED = "tagsmaxgrouped"; @Id @GeneratedValue Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagUserContent.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagUserContent.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagUserContent.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -0,0 +1,109 @@ +package org.ourproject.kune.platf.server.domain; + +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.Table; + +import org.hibernate.search.annotations.DocumentId; +import org.hibernate.search.annotations.Indexed; +import org.hibernate.search.annotations.IndexedEmbedded; +import org.hibernate.validator.NotNull; + +import com.google.inject.name.Named; +import com.wideplay.warp.persist.dao.Finder; + +//See: +//http://openjpa.apache.org/docs/latest/manual/manual.html#jpa_langref_resultt... +@NamedQueries( { + @NamedQuery(name = "tagsgrouped", query = "SELECT NEW org.ourproject.kune.platf.server.domain.TagCount(t.name, COUNT(tuc.content.id)) " + + "FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group " + + "GROUP BY t.name ORDER BY t.name"), + @NamedQuery(name = "tagsmaxgrouped", query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) DESC LIMIT 0,1"), + @NamedQuery(name = "tagsmingrouped", query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) ASC LIMIT 0,1") }) +@Entity +@Indexed +@Table(name = "tag_user_content") +public class TagUserContent implements HasId { + public static final String TAGSGROUPED = "tagsgrouped"; + public static final String TAGSMINGROUPED = "tagsmingrouped"; + public static final String TAGSMAXGROUPED = "tagsmaxgrouped"; + + @Id + @GeneratedValue + @DocumentId + private Long id; + + @IndexedEmbedded + @NotNull + @ManyToOne(fetch = FetchType.LAZY) + private Tag tag; + + @IndexedEmbedded + @NotNull + @ManyToOne(fetch = FetchType.LAZY) + private Content content; + + @IndexedEmbedded + @NotNull + @ManyToOne(fetch = FetchType.LAZY) + private User user; + + public TagUserContent() { + this(null, null, null); + } + + public TagUserContent(Tag tag, User user, Content content) { + this.tag = tag; + this.user = user; + this.content = content; + } + + @Finder(query = "FROM TagUserContent t WHERE t.user = :user AND t.content = :content") + public List<TagUserContent> find(@Named("user") final User user, @Named("content") final Content content) { + return null; + } + + @Finder(query = "SELECT t.tag FROM TagUserContent t WHERE t.user = :user AND t.content = :content") + public List<Tag> findTags(@Named("user") final User user, @Named("content") final Content content) { + return null; + } + + public Content getContent() { + return content; + } + + public Long getId() { + return id; + } + + public Tag getTag() { + return tag; + } + + public User getUser() { + return user; + } + + public void setContent(Content content) { + this.content = content; + } + + public void setId(Long id) { + this.id = id; + } + + public void setTag(Tag tag) { + this.tag = tag; + } + + public void setUser(User user) { + this.user = user; + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagManager.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagManager.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -19,14 +19,10 @@ */ package org.ourproject.kune.platf.server.manager; -import org.ourproject.kune.platf.server.domain.Group; import org.ourproject.kune.platf.server.domain.Tag; -import org.ourproject.kune.platf.server.domain.TagCloudResult; public interface TagManager extends Manager<Tag, Long> { Tag findByTagName(String tag); - TagCloudResult getTagCloudResultByGroup(Group group); - } Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManager.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManager.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -0,0 +1,24 @@ +package org.ourproject.kune.platf.server.manager; + +import java.util.List; + +import org.ourproject.kune.platf.server.domain.Content; +import org.ourproject.kune.platf.server.domain.Group; +import org.ourproject.kune.platf.server.domain.Tag; +import org.ourproject.kune.platf.server.domain.TagCloudResult; +import org.ourproject.kune.platf.server.domain.TagUserContent; +import org.ourproject.kune.platf.server.domain.User; + +public interface TagUserContentManager extends Manager<TagUserContent, Long> { + + List<Tag> find(User user, Content content); + + TagCloudResult getTagCloudResultByGroup(Group group); + + String getTagsAsString(User user, Content content); + + void remove(User user, Content content); + + void setTags(User user, Content content, String tags); + +} Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -0,0 +1,110 @@ +package org.ourproject.kune.platf.server.manager; + +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.NoResultException; +import javax.persistence.Query; + +import org.ourproject.kune.platf.client.ui.TextUtils; +import org.ourproject.kune.platf.server.domain.Content; +import org.ourproject.kune.platf.server.domain.Group; +import org.ourproject.kune.platf.server.domain.Tag; +import org.ourproject.kune.platf.server.domain.TagCloudResult; +import org.ourproject.kune.platf.server.domain.TagCount; +import org.ourproject.kune.platf.server.domain.TagUserContent; +import org.ourproject.kune.platf.server.domain.User; +import org.ourproject.kune.platf.server.manager.impl.DefaultManager; + +import com.google.inject.Inject; +import com.google.inject.Provider; +import com.google.inject.Singleton; + +@Singleton +public class TagUserContentManagerDefault extends DefaultManager<TagUserContent, Long> implements TagUserContentManager { + private final Provider<EntityManager> provider; + private final TagManager tagManager; + private final TagUserContent finder; + + @Inject + public TagUserContentManagerDefault(Provider<EntityManager> provider, TagManager tagManager, TagUserContent finder) { + super(provider, TagUserContent.class); + this.provider = provider; + this.tagManager = tagManager; + this.finder = finder; + } + + public List<Tag> find(User user, Content content) { + return finder.findTags(user, content); + } + + public TagCloudResult getTagCloudResultByGroup(Group group) { + return new TagCloudResult(getSummaryByGroup(group), getMaxCount(group), getMinCount(group)); + } + + public String getTagsAsString(User user, Content content) { + String tagConcatenated = ""; + if (user.getId() != null) { + // FIXME: User must be persisted (this fails on tests) + List<Tag> tags = find(user, content); + for (Tag tag : tags) { + tagConcatenated += " " + tag.getName(); + } + } + return tagConcatenated.replaceFirst(" ", ""); + } + + public void remove(User user, Content content) { + for (TagUserContent item : finder.find(user, content)) { + provider.get().remove(item); + } + } + + public void setTags(User user, Content content, String tags) { + final ArrayList<String> tagsStripped = TextUtils.splitTags(tags); + final ArrayList<Tag> tagList = new ArrayList<Tag>(); + + for (String tagString : tagsStripped) { + Tag tag; + try { + tag = tagManager.findByTagName(tagString); + } catch (final NoResultException e) { + tag = new Tag(tagString); + tagManager.persist(tag); + } + if (!tagList.contains(tag)) { + tagList.add(tag); + } + } + remove(user, content); + for (Tag tag : tagList) { + TagUserContent tagUserContent = new TagUserContent(tag, user, content); + persist(tagUserContent); + } + } + + @SuppressWarnings("unchecked") + private int getMaxCount(Group group) { + Query q = provider.get().createNamedQuery(TagUserContent.TAGSMAXGROUPED); + q.setParameter("group", group); + List resultList = q.getResultList(); + return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue()); + } + + @SuppressWarnings("unchecked") + private int getMinCount(Group group) { + Query q = provider.get().createNamedQuery(TagUserContent.TAGSMINGROUPED); + q.setParameter("group", group); + List resultList = q.getResultList(); + return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue()); + } + + @SuppressWarnings("unchecked") + private List<TagCount> getSummaryByGroup(final Group group) { + Query q = provider.get().createNamedQuery(TagUserContent.TAGSGROUPED); + q.setParameter("group", group); + List<TagCount> results = q.getResultList(); + return results; + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -19,15 +19,9 @@ */ package org.ourproject.kune.platf.server.manager.impl; -import java.util.List; - import javax.persistence.EntityManager; -import javax.persistence.Query; -import org.ourproject.kune.platf.server.domain.Group; import org.ourproject.kune.platf.server.domain.Tag; -import org.ourproject.kune.platf.server.domain.TagCloudResult; -import org.ourproject.kune.platf.server.domain.TagCount; import org.ourproject.kune.platf.server.manager.TagManager; import com.google.inject.Inject; @@ -38,44 +32,14 @@ public class TagManagerDefault extends DefaultManager<Tag, Long> implements TagManager { private final Tag tagFinder; - private final Provider<EntityManager> provider; @Inject public TagManagerDefault(final Provider<EntityManager> provider, final Tag tagFinder) { super(provider, Tag.class); - this.provider = provider; this.tagFinder = tagFinder; } public Tag findByTagName(final String tag) { return tagFinder.findByTagName(tag); } - - public TagCloudResult getTagCloudResultByGroup(Group group) { - return new TagCloudResult(getSummaryByGroup(group), getMaxCount(group), getMinCount(group)); - } - - @SuppressWarnings("unchecked") - private int getMaxCount(Group group) { - Query q = provider.get().createNamedQuery(Tag.TAGSMAXGROUPED); - q.setParameter("group", group); - List resultList = q.getResultList(); - return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue()); - } - - @SuppressWarnings("unchecked") - private int getMinCount(Group group) { - Query q = provider.get().createNamedQuery(Tag.TAGSMINGROUPED); - q.setParameter("group", group); - List resultList = q.getResultList(); - return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue()); - } - - @SuppressWarnings("unchecked") - private List<TagCount> getSummaryByGroup(final Group group) { - Query q = provider.get().createNamedQuery(Tag.TAGSGROUPED); - q.setParameter("group", group); - List<TagCount> results = q.getResultList(); - return results; - } } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -69,7 +69,7 @@ import org.ourproject.kune.platf.server.domain.TagCloudResult; import org.ourproject.kune.platf.server.domain.User; import org.ourproject.kune.platf.server.manager.GroupManager; -import org.ourproject.kune.platf.server.manager.TagManager; +import org.ourproject.kune.platf.server.manager.TagUserContentManager; import org.ourproject.kune.platf.server.mapper.Mapper; import org.ourproject.kune.platf.server.state.StateContainer; import org.ourproject.kune.platf.server.state.StateContent; @@ -92,7 +92,7 @@ private final XmppManager xmppManager; private final ContentManager contentManager; private final ContainerManager containerManager; - private final TagManager tagManager; + private final TagUserContentManager tagManager; private final CommentManager commentManager; private final AccessRightsService rightsService; private final FinderService finderService; @@ -102,8 +102,8 @@ final AccessService accessService, final AccessRightsService rightsService, final StateService stateService, final CreationService creationService, final GroupManager groupManager, final XmppManager xmppManager, final ContentManager contentManager, - final ContainerManager containerManager, final TagManager tagManager, final CommentManager commentManager, - final Mapper mapper) { + final ContainerManager containerManager, final TagUserContentManager tagManager, + final CommentManager commentManager, final Mapper mapper) { this.finderService = finderService; this.userSessionProvider = userSessionProvider; this.accessService = accessService; Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -30,7 +30,7 @@ import org.ourproject.kune.platf.server.domain.User; import org.ourproject.kune.platf.server.manager.GroupManager; import org.ourproject.kune.platf.server.manager.SocialNetworkManager; -import org.ourproject.kune.platf.server.manager.TagManager; +import org.ourproject.kune.platf.server.manager.TagUserContentManager; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -41,13 +41,13 @@ private final AccessRightsService rightsService; private final SocialNetworkManager socialNetworkManager; private final GroupManager groupManager; - private final TagManager tagManager; + private final TagUserContentManager tagManager; private final ContentManager contentManager; private final I18nTranslationService i18n; @Inject public StateServiceDefault(GroupManager groupManager, SocialNetworkManager socialNetworkManager, - ContentManager contentManager, TagManager tagManager, AccessRightsService rightsService, + ContentManager contentManager, TagUserContentManager tagManager, AccessRightsService rightsService, I18nTranslationService i18n) { this.groupManager = groupManager; this.socialNetworkManager = socialNetworkManager; @@ -79,7 +79,7 @@ state.setLanguage(content.getLanguage()); state.setPublishedOn(content.getPublishedOn()); state.setAuthors(content.getAuthors()); - state.setTags(content.getTagsAsString()); + state.setTags(tagManager.getTagsAsString(userLogged, content)); state.setStatus(content.getStatus()); state.setStateToken(content.getStateToken()); Revision revision = content.getLastRevision(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/AbstractOptionsPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/options/AbstractOptionsPanel.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/AbstractOptionsPanel.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -35,19 +35,19 @@ public abstract class AbstractOptionsPanel { private BasicDialog dialog; + private final String dialogId; + private TabPanel tabPanel; private MessageToolbar messageErrorBar; - private TabPanel tabPanel; private String title; private final int width; private final int height; private final int minWidth; private final int minHeight; + private final boolean modal; private final Images images; private final String errorLabelId; private String iconCls; - private final String dialogId; private Listener0 onHideListener; - private final boolean modal; public AbstractOptionsPanel(String dialogId, String title, int width, int height, int minWidth, int minHeight, boolean modal, Images images, String errorLabelId) { Added: trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -0,0 +1,97 @@ +package org.ourproject.kune.platf.server; + +import static org.junit.Assert.assertEquals; + +import java.util.TimeZone; + +import org.junit.After; +import org.junit.Before; +import org.ourproject.kune.docs.server.DocumentServerTool; +import org.ourproject.kune.platf.server.content.ContainerManager; +import org.ourproject.kune.platf.server.content.ContentManager; +import org.ourproject.kune.platf.server.domain.Container; +import org.ourproject.kune.platf.server.domain.Content; +import org.ourproject.kune.platf.server.domain.Group; +import org.ourproject.kune.platf.server.domain.I18nCountry; +import org.ourproject.kune.platf.server.domain.I18nLanguage; +import org.ourproject.kune.platf.server.domain.License; +import org.ourproject.kune.platf.server.domain.User; +import org.ourproject.kune.platf.server.manager.GroupManager; +import org.ourproject.kune.platf.server.manager.I18nCountryManager; +import org.ourproject.kune.platf.server.manager.I18nLanguageManager; +import org.ourproject.kune.platf.server.manager.LicenseManager; +import org.ourproject.kune.platf.server.manager.UserManager; + +import com.google.inject.Inject; + +public abstract class PersistencePreLoadedDataTest extends PersistenceTest { + protected static final String USER_SHORT_NAME = "user-shortname"; + protected static final String USER_LONG_NAME = "the user long name"; + protected static final String USER_PASSWORD = "userPassword"; + protected static final String USER_EMAIL = "[email protected]"; + + @Inject + protected User userFinder; + @Inject + protected Group groupFinder; + @Inject + protected License licenseFinder; + @Inject + protected ContentManager contentManager; + @Inject + protected ContainerManager containerManager; + @Inject + protected GroupManager groupManager; + @Inject + protected UserManager userManager; + @Inject + protected LicenseManager licenseManager; + @Inject + protected I18nLanguageManager languageManager; + @Inject + protected I18nCountryManager countryManager; + + protected User user; + protected License defLicense; + protected I18nLanguage english; + protected I18nCountry gb; + protected Content content; + protected Container container; + + public PersistencePreLoadedDataTest() { + // test: use memory + // test_db: use mysql + super("test", "kune.properties"); + } + + @After + public void close() { + if (getTransaction().isActive()) { + getTransaction().rollback(); + } + } + + @Before + public void preLoadData() throws Exception { + openTransaction(); + assertEquals(0, userFinder.getAll().size()); + assertEquals(0, groupFinder.getAll().size()); + assertEquals(0, licenseFinder.getAll().size()); + english = new I18nLanguage(new Long(1819), "English", "English", "en"); + languageManager.persist(english); + gb = new I18nCountry(new Long(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom", "western", ","); + countryManager.persist(gb); + user = userManager.createUser(USER_SHORT_NAME, USER_LONG_NAME, USER_EMAIL, USER_PASSWORD, "en", "GB", + TimeZone.getDefault().getID()); + defLicense = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "", + "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", ""); + licenseManager.persist(defLicense); + groupManager.createUserGroup(user, true); + content = new Content(); + content.setLanguage(english); + contentManager.persist(content); + container = new Container(); + container.setTypeId(DocumentServerTool.TYPE_FOLDER); + containerManager.persist(container); + } +} Modified: trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -61,7 +61,7 @@ getManager().getTransaction().rollback(); } - private EntityManager getManager() { + protected EntityManager getManager() { return provider.get(); } Modified: trunk/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -6,55 +6,33 @@ import javax.persistence.EntityManager; -import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.ourproject.kune.platf.server.PersistenceTest; +import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest; import org.ourproject.kune.platf.server.TestDomainHelper; import org.ourproject.kune.platf.server.domain.Content; -import org.ourproject.kune.platf.server.domain.I18nCountry; -import org.ourproject.kune.platf.server.domain.I18nLanguage; import org.ourproject.kune.platf.server.domain.Rate; import org.ourproject.kune.platf.server.domain.User; -import org.ourproject.kune.platf.server.manager.I18nCountryManager; -import org.ourproject.kune.platf.server.manager.I18nLanguageManager; import com.google.inject.Inject; -public class RateFinderTest extends PersistenceTest { +public class RateFinderTest extends PersistencePreLoadedDataTest { @Inject Rate rateFinder; - @Inject - I18nLanguageManager languageManager; - @Inject - I18nCountryManager countryManager; - private I18nLanguage english; - private I18nCountry gb; + private EntityManager entityManager; - @After - public void close() { - if (getTransaction().isActive()) { - getTransaction().rollback(); - } - } - @Before - public void insertData() throws Exception { - english = new I18nLanguage(new Long(1819), "English", "English", "en"); - languageManager.persist(english); - gb = new I18nCountry(new Long(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom", "western", ","); - countryManager.persist(gb); + public void before() { + entityManager = getManager(); } @Test public void testContentNotRated() { - final EntityManager manager = openTransaction(); - final Content cd = new Content(); cd.setLanguage(english); cd.setPublishedOn(new Date()); - manager.persist(cd); + entityManager.persist(cd); closeTransaction(); final Double rate = rateFinder.calculateRate(cd); @@ -67,8 +45,6 @@ @Test public void testContentRateAverage() { - final EntityManager manager = openTransaction(); - final User user1 = TestDomainHelper.createUser(1); final User user2 = TestDomainHelper.createUser(2); @@ -78,20 +54,20 @@ user1.setCountry(gb); user2.setCountry(gb); - manager.persist(user1); - manager.persist(user2); + entityManager.persist(user1); + entityManager.persist(user2); final Content cd = new Content(); cd.setLanguage(english); cd.setPublishedOn(new Date()); - manager.persist(cd); + entityManager.persist(cd); - manager.persist(new Rate(user1, cd, 1.3)); - manager.persist(new Rate(user2, cd, 3.3)); + entityManager.persist(new Rate(user1, cd, 1.3)); + entityManager.persist(new Rate(user2, cd, 3.3)); // same user and content other rate final Rate rateFinded = rateFinder.find(user2, cd); rateFinded.setValue(4.3); - manager.persist(rateFinded); + entityManager.persist(rateFinded); closeTransaction(); final Double rate = rateFinder.calculateRate(cd); Modified: trunk/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -6,42 +6,21 @@ import java.util.List; import java.util.TimeZone; -import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.ourproject.kune.platf.server.PersistenceTest; -import org.ourproject.kune.platf.server.domain.I18nCountry; -import org.ourproject.kune.platf.server.domain.I18nLanguage; +import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest; import org.ourproject.kune.platf.server.domain.User; -import org.ourproject.kune.platf.server.manager.I18nCountryManager; -import org.ourproject.kune.platf.server.manager.I18nLanguageManager; import com.google.inject.Inject; -public class UserFinderTest extends PersistenceTest { +public class UserFinderTest extends PersistencePreLoadedDataTest { @Inject User finder; - @Inject - I18nLanguageManager languageManager; - @Inject - I18nCountryManager countryManager; - @Before - public void initData() { - openTransaction(); - I18nLanguage english = new I18nLanguage(new Long(1819), "English", "English", "en"); - languageManager.persist(english); - I18nCountry gb = new I18nCountry(new Long(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom", "western", - ","); - countryManager.persist(gb); - persist(new User("shortname1", "the name1", "[email protected]", "password1", english, gb, TimeZone.getDefault())); - persist(new User("shortname2", "the name2", "[email protected]", "password1", english, gb, TimeZone.getDefault())); - } - @Test public void findAll() { List<User> all = finder.getAll(); - assertEquals(2, all.size()); + assertEquals(3, all.size()); } @Test @@ -50,11 +29,10 @@ assertNotNull(user); } - @After - public void close() { - if (getTransaction().isActive()) { - getTransaction().rollback(); - } + @Before + public void initData() { + persist(new User("shortname1", "the name1", "[email protected]", "password1", english, gb, TimeZone.getDefault())); + persist(new User("shortname2", "the name2", "[email protected]", "password1", english, gb, TimeZone.getDefault())); } } Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/ContentManagerTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/manager/ContentManagerTest.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/ContentManagerTest.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -2,81 +2,14 @@ import static org.junit.Assert.assertEquals; -import java.util.TimeZone; - -import org.junit.After; -import org.junit.Before; import org.junit.Test; -import org.mockito.Mockito; import org.ourproject.kune.docs.server.DocumentServerTool; -import org.ourproject.kune.platf.server.PersistenceTest; -import org.ourproject.kune.platf.server.content.ContentManager; +import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest; import org.ourproject.kune.platf.server.domain.BasicMimeType; -import org.ourproject.kune.platf.server.domain.Container; import org.ourproject.kune.platf.server.domain.Content; -import org.ourproject.kune.platf.server.domain.Group; -import org.ourproject.kune.platf.server.domain.I18nCountry; -import org.ourproject.kune.platf.server.domain.I18nLanguage; -import org.ourproject.kune.platf.server.domain.License; -import org.ourproject.kune.platf.server.domain.User; -import com.google.inject.Inject; +public class ContentManagerTest extends PersistencePreLoadedDataTest { -public class ContentManagerTest extends PersistenceTest { - - @Inject - User userFinder; - @Inject - Group groupFinder; - @Inject - License licenseFinder; - @Inject - ContentManager contentManager; - @Inject - GroupManager groupManager; - @Inject - UserManager userManager; - @Inject - LicenseManager licenseManager; - @Inject - I18nLanguageManager languageManager; - @Inject - I18nCountryManager countryManager; - private User user; - private License defLicense; - - public ContentManagerTest() { - // Testing with mysql because utf-8 normally fails with mysql and not in - // memory - super("test_db", "kune.properties"); - } - - @After - public void close() { - if (getTransaction().isActive()) { - getTransaction().rollback(); - } - } - - @Before - public void insertData() throws Exception { - openTransaction(); - assertEquals(0, userFinder.getAll().size()); - assertEquals(0, groupFinder.getAll().size()); - assertEquals(0, licenseFinder.getAll().size()); - final I18nLanguage english = new I18nLanguage(new Long(1819), "English", "English", "en"); - languageManager.persist(english); - final I18nCountry gb = new I18nCountry(new Long(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom", - "western", ","); - countryManager.persist(gb); - user = userManager.createUser("username", "the user name", "[email protected]", "userPassword", "en", "GB", - TimeZone.getDefault().getID()); - defLicense = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "", - "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", ""); - licenseManager.persist(defLicense); - groupManager.createUserGroup(user, true); - } - @Test public void testBasicMimePersist() { final String mimetype = "application/pdf"; @@ -95,8 +28,6 @@ */ @Test public void testUTF8Persist() { - final Container container = Mockito.mock(Container.class); - Mockito.when(container.getTypeId()).thenReturn(DocumentServerTool.TYPE_FOLDER); final Content cnt = contentManager.createContent("汉语/漢語", "汉语/漢語", user, container, DocumentServerTool.TYPE_DOCUMENT); final Content newCnt = contentManager.find(cnt.getId()); @@ -104,8 +35,6 @@ } private void createContentWithMime(final String mimetype) { - final Container container = Mockito.mock(Container.class); - Mockito.when(container.getTypeId()).thenReturn(DocumentServerTool.TYPE_FOLDER); final Content cnt = contentManager.createContent("title", "body", user, container, DocumentServerTool.TYPE_UPLOADEDFILE); cnt.setMimeType(new BasicMimeType(mimetype)); Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/GroupManagerTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/manager/GroupManagerTest.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/GroupManagerTest.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -6,53 +6,20 @@ import java.util.TimeZone; import org.apache.lucene.queryParser.ParseException; -import org.junit.After; -import org.junit.Before; import org.junit.Test; import org.ourproject.kune.platf.client.dto.GroupType; import org.ourproject.kune.platf.client.errors.EmailAddressInUseException; import org.ourproject.kune.platf.client.errors.GroupNameInUseException; import org.ourproject.kune.platf.client.errors.I18nNotFoundException; -import org.ourproject.kune.platf.server.PersistenceTest; +import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest; import org.ourproject.kune.platf.server.domain.AccessLists; import org.ourproject.kune.platf.server.domain.Group; -import org.ourproject.kune.platf.server.domain.I18nCountry; -import org.ourproject.kune.platf.server.domain.I18nLanguage; -import org.ourproject.kune.platf.server.domain.License; import org.ourproject.kune.platf.server.domain.SocialNetwork; import org.ourproject.kune.platf.server.domain.User; import org.ourproject.kune.platf.server.manager.impl.SearchResult; -import com.google.inject.Inject; +public class GroupManagerTest extends PersistencePreLoadedDataTest { -public class GroupManagerTest extends PersistenceTest { - @Inject - User userFinder; - @Inject - Group groupFinder; - @Inject - License licenseFinder; - @Inject - GroupManager groupManager; - @Inject - UserManager userManager; - @Inject - LicenseManager licenseManager; - @Inject - I18nLanguageManager languageManager; - @Inject - I18nCountryManager countryManager; - - private User user; - private License defLicense; - - @After - public void close() { - if (getTransaction().isActive()) { - getTransaction().rollback(); - } - } - @Test public void createdGroupShoudHaveValidSocialNetwork() throws Exception { final Group group = new Group("short", "longName", defLicense, GroupType.PROJECT); @@ -151,15 +118,15 @@ @Test(expected = EmailAddressInUseException.class) public void createUserWithExistingEmail() throws Exception { - final User user2 = userManager.createUser("username2", "the user name 2", "[email protected]", "userPassword", - "en", "GB", TimeZone.getDefault().getID()); + final User user2 = userManager.createUser("username2", "the user name 2", USER_EMAIL, "userPassword", "en", + "GB", TimeZone.getDefault().getID()); groupManager.createUserGroup(user2); rollbackTransaction(); } @Test(expected = GroupNameInUseException.class) public void createUserWithExistingLongName() throws Exception { - final User user2 = userManager.createUser("username2", "the user name", "[email protected]", "userPassword", + final User user2 = userManager.createUser("username2", USER_LONG_NAME, "[email protected]", "userPassword", "en", "GB", TimeZone.getDefault().getID()); groupManager.createUserGroup(user2); rollbackTransaction(); @@ -167,8 +134,8 @@ @Test(expected = GroupNameInUseException.class) public void createUserWithExistingShortName() throws Exception { - final User user2 = userManager.createUser("username", "the user name 2", "[email protected]", "userPassword", - "en", "GB", TimeZone.getDefault().getID()); + final User user2 = userManager.createUser(USER_SHORT_NAME, "the user name 2", "[email protected]", + "userPassword", "en", "GB", TimeZone.getDefault().getID()); groupManager.createUserGroup(user2); rollbackTransaction(); } @@ -188,25 +155,6 @@ rollbackTransaction(); } - @Before - public void insertData() throws Exception { - openTransaction(); - assertEquals(0, userFinder.getAll().size()); - assertEquals(0, groupFinder.getAll().size()); - assertEquals(0, licenseFinder.getAll().size()); - final I18nLanguage english = new I18nLanguage(new Long(1819), "English", "English", "en"); - languageManager.persist(english); - final I18nCountry gb = new I18nCountry(new Long(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom", - "western", ","); - countryManager.persist(gb); - user = userManager.createUser("username", "the user name", "[email protected]", "userPassword", "en", "GB", - TimeZone.getDefault().getID()); - defLicense = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "", - "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", ""); - licenseManager.persist(defLicense); - groupManager.createUserGroup(user); - } - private void createTestGroup(final int number) throws Exception { final Group g = new Group("ysei" + number, "Yellow Submarine Environmental Initiative " + number, defLicense, GroupType.PROJECT); Added: trunk/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -0,0 +1,87 @@ +package org.ourproject.kune.platf.server.manager; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.util.List; + +import org.junit.Before; +import org.junit.Test; +import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest; +import org.ourproject.kune.platf.server.domain.Tag; +import org.ourproject.kune.platf.server.domain.TagUserContent; + +import com.google.inject.Inject; + +public class TagUserContentTest extends PersistencePreLoadedDataTest { + private static final String DUMMY_TAG = "dummy"; + @Inject + TagUserContentManager manager; + private Tag tag; + @Inject + TagManager tagManager; + + @Before + public void before() { + tag = new Tag(DUMMY_TAG); + tagManager.persist(tag); + } + + @Test + public void getTagsAsString() { + manager.setTags(user, content, DUMMY_TAG); + String tagS = manager.getTagsAsString(user, content); + assertEquals(DUMMY_TAG, tagS); + } + + @Test + public void insertSomeUserContent() { + createSomeTagUserContent(); + } + + @Test + public void removeSomeUserContent() { + createSomeTagUserContent(); + manager.remove(user, content); + List<Tag> tags = manager.find(user, content); + assertEquals(0, tags.size()); + } + + @Test + public void setTags() { + List<Tag> tags = manager.find(user, content); + assertEquals(0, tags.size()); + manager.setTags(user, content, DUMMY_TAG + " " + DUMMY_TAG); + tags = manager.find(user, content); + assertEquals(1, tags.size()); + } + + @Test + public void setTagsRemoveBefore() { + manager.setTags(user, content, "foo"); + manager.setTags(user, content, DUMMY_TAG); + List<Tag> tags = manager.find(user, content); + assertEquals(1, tags.size()); + assertEquals(DUMMY_TAG, tags.get(0).getName()); + } + + @Test + public void testInsertData() { + TagUserContent tagUC = createTagUserContent(); + assertNotNull(tagUC.getId()); + } + + private void createSomeTagUserContent() { + List<Tag> tags = manager.find(user, content); + assertEquals(0, tags.size()); + createTagUserContent(); + tags = manager.find(user, content); + assertEquals(1, tags.size()); + } + + private TagUserContent createTagUserContent() { + TagUserContent tagUC = new TagUserContent(tag, user, content); + manager.persist(tagUC); + return tagUC; + } +} Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2009-02-14 11:23:09 UTC (rev 1049) +++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2009-02-20 13:41:17 UTC (rev 1050) @@ -10,47 +10,21 @@ import org.apache.lucene.queryParser.ParseException; import org.hibernate.validator.InvalidStateException; -import org.junit.After; -import org.junit.Before; import org.junit.Test; import org.ourproject.kune.platf.client.errors.I18nNotFoundException; -import org.ourproject.kune.platf.server.PersistenceTest; +import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest; import org.ourproject.kune.platf.server.domain.Group; -import org.ourproject.kune.platf.server.domain.I18nCountry; -import org.ourproject.kune.platf.server.domain.I18nLanguage; import org.ourproject.kune.platf.server.domain.User; import org.ourproject.kune.platf.server.manager.impl.SearchResult; import com.google.inject.Inject; -public class UserManagerTest extends PersistenceTest { - private static final String USER_SHORT_NAME = "user-shortname"; - private static final String USER_LONG_NAME = "the user long name"; - private static final String USER_PASSWORD = "userPassword"; - private static final String USER_EMAIL = "[email protected]"; +public class UserManagerTest extends PersistencePreLoadedDataTest { - @Inject - UserManager userManager; - @Inject User userFinder; @Inject Group groupFinder; - @Inject - I18nLanguageManager languageManager; - @Inject - I18nCountryManager countryManager; - private User user; - private I18nCountry gb; - private I18nLanguage english; - - @After - public void close() { - if (getTransaction().isActive()) { - getTransaction().rollback(); - } - } - @Test public void emailCorrect() { user = new User("test1", "test1 name", "[email protected]", "some passwd", english, gb, getTimeZone()); @@ -69,19 +43,6 @@ persist(user); } - @Before - public void insertData() throws Exception { - openTransaction(); - assertEquals(0, userFinder.getAll().size()); - assertEquals(0, groupFinder.getAll().size()); - english = new I18nLanguage(new Long(1819), "English", "English", "en"); - languageManager.persist(english); - gb = new I18nCountry(new Long(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom", "western", ","); - countryManager.persist(gb); - user = new User(USER_SHORT_NAME, USER_LONG_NAME, USER_EMAIL, USER_PASSWORD, english, gb, getTimeZone()); - persist(user); - } - @Test public void loginIncorrect() { final User result = userManager.login("test", "test");
participants (1)
-
vjrj