Author: venkatm
Date: Tue Apr 3 14:31:52 2012
New Revision: 1308947
URL: http://svn.apache.org/viewvc?rev=1308947&view=rev
Log:
RAVE-541: Create the Default User page automatically based on a Page Template
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
(original)
+++
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
Tue Apr 3 14:31:52 2012
@@ -29,14 +29,14 @@ import java.util.List;
@Table(name="page_template")
@NamedQueries({
@NamedQuery(name = PageTemplate.PAGE_TEMPLATE_GET_ALL, query = "SELECT
p FROM PageTemplate p ORDER BY p.renderSequence"),
- @NamedQuery(name = PageTemplate.PAGE_TEMPLATE_GET_DEFAULT_PERSON_PAGE,
query = "SELECT p FROM PageTemplate p WHERE p.defaultTemplate = true and
p.pageType = :pageType")
+ @NamedQuery(name =
PageTemplate.PAGE_TEMPLATE_GET_DEFAULT_PAGE_BY_TYPE, query = "SELECT p FROM
PageTemplate p WHERE p.defaultTemplate = true and p.pageType = :pageType")
})
@Access(AccessType.FIELD)
public class PageTemplate implements BasicEntity, Serializable {
private static final long serialVersionUID = 1L;
public static final String PAGE_TEMPLATE_GET_ALL = "PageTemplate.getAll";
- public static final String PAGE_TEMPLATE_GET_DEFAULT_PERSON_PAGE =
"PageTemplate.getDefaultPersonPage";
+ public static final String PAGE_TEMPLATE_GET_DEFAULT_PAGE_BY_TYPE =
"PageTemplate.getDefaultPage";
@Id
@Column(name="entity_id")
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java
(original)
+++
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java
Tue Apr 3 14:31:52 2012
@@ -48,12 +48,12 @@ public interface PageRepository extends
int deletePages(Long userId, PageType pageType);
/**
- * Create Person Page from PageTemplate for the given user
+ * Create either a Person or User Page from PageTemplate for the given user
* @param user User
* @param pt PageTemplate
* @return Page
*/
- Page createPersonPageForUser(User user, PageTemplate pt);
+ Page createPageForUser(User user, PageTemplate pt);
/**
* Determine if the given user has a person page
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java
(original)
+++
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java
Tue Apr 3 14:31:52 2012
@@ -19,11 +19,12 @@
package org.apache.rave.portal.repository;
import org.apache.rave.portal.model.PageTemplate;
+import org.apache.rave.portal.model.PageType;
import java.util.List;
public interface PageTemplateRepository {
List<PageTemplate> getAll();
- PageTemplate getDefaultPersonPage();
+ PageTemplate getDefaultPage(PageType pageType);
}
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
(original)
+++
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
Tue Apr 3 14:31:52 2012
@@ -60,7 +60,7 @@ public class JpaPageRepository extends A
}
@Override
- public Page createPersonPageForUser(User user, PageTemplate pt) {
+ public Page createPageForUser(User user, PageTemplate pt) {
Page personPageFromTemplate = convert(pt, user);
return save(personPageFromTemplate);
}
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java
(original)
+++
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java
Tue Apr 3 14:31:52 2012
@@ -41,9 +41,9 @@ public class JpaPageTemplateRepository e
}
@Override
- public PageTemplate getDefaultPersonPage() {
- TypedQuery<PageTemplate> query =
manager.createNamedQuery(PageTemplate.PAGE_TEMPLATE_GET_DEFAULT_PERSON_PAGE,
PageTemplate.class);
- query.setParameter("pageType", PageType.PERSON_PROFILE);
+ public PageTemplate getDefaultPage(PageType pageType) {
+ TypedQuery<PageTemplate> query =
manager.createNamedQuery(PageTemplate.PAGE_TEMPLATE_GET_DEFAULT_PAGE_BY_TYPE,
PageTemplate.class);
+ query.setParameter("pageType", pageType);
return query.getSingleResult();
}
}
\ No newline at end of file
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
(original)
+++
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
Tue Apr 3 14:31:52 2012
@@ -80,7 +80,7 @@ public class DefaultPageService implemen
List<Page> profilePages = pageRepository.getAllPages(userId,
PageType.PERSON_PROFILE);
Page personPage = null;
if (profilePages.isEmpty()){
- personPage =
pageRepository.createPersonPageForUser(userService.getUserById(userId),pageTemplateRepository.getDefaultPersonPage());
+ personPage =
pageRepository.createPageForUser(userService.getUserById(userId),
pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE));
} else {
personPage = profilePages.get(0);
}
@@ -389,7 +389,7 @@ public class DefaultPageService implemen
private Page addNewUserPage(User user, String pageName, String
pageLayoutCode) {
PageLayout pageLayout =
pageLayoutRepository.getByPageLayoutCode(pageLayoutCode);
-
+
// Create regions
List<Region> regions = new ArrayList<Region>();
int regionCount;
@@ -401,18 +401,28 @@ public class DefaultPageService implemen
regions.add(region);
}
- // Create a Page object and register it.
- long renderSequence = getAllUserPages(user.getEntityId()).size() + 1;
- Page page = new Page();
- page.setName(pageName);
- page.setOwner(user);
- page.setPageLayout(pageLayout);
- page.setRenderSequence(renderSequence);
- page.setRegions(regions);
- // set this as a "user" page type
- page.setPageType(PageType.USER);
- pageRepository.save(page);
-
+ // Get all User Pages
+ Page page = null;
+ List<Page> defaultUserPage =
pageRepository.getAllPages(user.getEntityId(), PageType.USER);
+ // Is there a default page for this user
+ if (defaultUserPage.isEmpty()) {
+ // Do we have a default User template defined (only 1 as of now),
if so create page based on the template
+ // TODO: Only 1 user template should be defined as default as of
now,
+ // this would throw an exception if there are more than 1 default
user template or none
+ page = pageRepository.createPageForUser(user,
pageTemplateRepository.getDefaultPage(PageType.USER));
+ } else {
+ // Create the new page for the user
+ long renderSequence = defaultUserPage.size() + 1;
+ page = new Page();
+ page.setName(pageName);
+ page.setOwner(user);
+ page.setPageLayout(pageLayout);
+ page.setRenderSequence(renderSequence);
+ page.setRegions(regions);
+ // set this as a "user" page type
+ page.setPageType(PageType.USER);
+ pageRepository.save(page);
+ }
return page;
}
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
(original)
+++
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
Tue Apr 3 14:31:52 2012
@@ -161,7 +161,7 @@ public class DefaultUserService implemen
@Transactional
public void registerNewUser(User user) {
User managedUser = userRepository.save(user);
- pageRepository.createPersonPageForUser(managedUser,
pageTemplateRepository.getDefaultPersonPage());
+ pageRepository.createPageForUser(managedUser,
pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE));
}
@Override
Modified:
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java
(original)
+++
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java
Tue Apr 3 14:31:52 2012
@@ -75,7 +75,7 @@ public class JpaPageRepositoryTest {
@Before
public void setup(){
user = userRepository.get(CREATED_USER_ID);
- defaultPageTemplate = pageTemplateRepository.getDefaultPersonPage();
+ defaultPageTemplate =
pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE);
}
@Test
@@ -206,8 +206,8 @@ public class JpaPageRepositoryTest {
@Test
@Transactional(readOnly = false)
@Rollback(true)
- public void createPersonPageForUser_validUser(){
- Page page = repository.createPersonPageForUser(user,
defaultPageTemplate);
+ public void createPageForUser_validUser(){
+ Page page = repository.createPageForUser(user, defaultPageTemplate);
assertSame(user, page.getOwner());
assertEquals(page.getName(), defaultPageTemplate.getName());
assertNull(page.getParentPage());
Modified:
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java
(original)
+++
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java
Tue Apr 3 14:31:52 2012
@@ -66,7 +66,7 @@ public class JpaPageTemplateRepositoryTe
@Test
public void getDefaultPersonPage_valid(){
// get default page template
- PageTemplate pt = pageTemplateRepository.getDefaultPersonPage();
+ PageTemplate pt =
pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE);
// default page tests
assertNotNull(pt);
assertEquals("Template for person profile pages", pt.getDescription());
@@ -153,4 +153,40 @@ public class JpaPageTemplateRepositoryTe
assertTrue(sp2w1.isLocked());
}
+
+
+ @Test
+ public void getDefaultUserPage_valid(){
+ // get default page template
+ PageTemplate pt = pageTemplateRepository.getDefaultPage(PageType.USER);
+ // default page tests
+ assertNotNull(pt);
+ assertEquals("User profile pages", pt.getDescription());
+ assertEquals("User Profile", pt.getName());
+ assertEquals(PageType.USER, pt.getPageType());
+ assertEquals(0, pt.getRenderSequence());
+ assertTrue(pt.isDefaultTemplate());
+ assertEquals("# of regions for parent page", 1,
pt.getPageTemplateRegions().size());
+ assertEquals("person_profile", pt.getPageLayout().getCode());
+ assertEquals("# of widgets on parent page region", 2,
pt.getPageTemplateRegions().get(0).getPageTemplateWidgets().size());
+
+ // parent page region tests
+ PageTemplateRegion ptRegion1 = pt.getPageTemplateRegions().get(0);
+ assertEquals(pt.getEntityId(),
ptRegion1.getPageTemplate().getEntityId());
+ assertEquals(0, ptRegion1.getRenderSequence());
+ assertEquals(2, ptRegion1.getPageTemplateWidgets().size());
+ assertTrue(ptRegion1.isLocked());
+ // parent page region 1 widget 1 tests
+ PageTemplateWidget ptw1 = ptRegion1.getPageTemplateWidgets().get(0);
+ assertEquals(ptw1.getPageTemplateRegion().getEntityId(),
ptRegion1.getEntityId());
+ assertEquals(0, ptw1.getRenderSeq());
+ assertNotNull(ptw1.getWidget());
+ assertTrue(ptw1.isLocked());
+ // parent page region widget 2 tests
+ PageTemplateWidget ptw2 = ptRegion1.getPageTemplateWidgets().get(1);
+ assertEquals(ptw2.getPageTemplateRegion().getEntityId(),
ptRegion1.getEntityId());
+ assertEquals(1, ptw2.getRenderSeq());
+ assertNotNull(ptw2.getWidget());
+ assertTrue(ptw2.isLocked());
+ }
}
Modified:
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
(original)
+++
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
Tue Apr 3 14:31:52 2012
@@ -27,6 +27,8 @@ import org.hamcrest.CoreMatchers;
import org.junit.Before;
import org.junit.Test;
+import javax.persistence.NoResultException;
+import javax.persistence.NonUniqueResultException;
import java.util.ArrayList;
import java.util.List;
@@ -163,8 +165,8 @@ public class DefaultPageServiceTest {
expect(pageRepository.getAllPages(VALID_USER_ID,
PageType.PERSON_PROFILE)).andReturn(VALID_PAGES);
expect(userService.getUserById(isA(Long.class))).andReturn(user).once();
-
expect(pageTemplateRepository.getDefaultPersonPage()).andReturn(pageTemplate).once();
-
expect(pageRepository.createPersonPageForUser(user,pageTemplate)).andReturn(personPage);
+
expect(pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE)).andReturn(pageTemplate).once();
+ expect(pageRepository.createPageForUser(user,
pageTemplate)).andReturn(personPage);
replay(pageRepository, userService, pageTemplateRepository);
assertThat(pageService.getPersonProfilePage(VALID_USER_ID),
CoreMatchers.sameInstance(personPage));
@@ -176,7 +178,7 @@ public class DefaultPageServiceTest {
public void addNewUserPage_noExistingPages() {
final String PAGE_NAME = "my new page";
final Long EXPECTED_RENDER_SEQUENCE = 1L;
-
+ PageTemplate pageTemplate = new PageTemplate() ;
Page expectedPage = new Page();
expectedPage.setName(PAGE_NAME);
expectedPage.setOwner(user);
@@ -186,10 +188,43 @@ public class DefaultPageServiceTest {
expectedPage.setPageType(PageType.USER);
expect(userService.getAuthenticatedUser()).andReturn(user);
-
expect(pageLayoutRepository.getByPageLayoutCode(PAGE_LAYOUT_CODE)).andReturn(pageLayout);
+
expect(pageLayoutRepository.getByPageLayoutCode(PAGE_LAYOUT_CODE)).andReturn(pageLayout);
+
expect(pageTemplateRepository.getDefaultPage(PageType.USER)).andReturn(pageTemplate);
+ expect(pageRepository.createPageForUser(user,
pageTemplate)).andReturn(expectedPage);
+ expect(pageRepository.getAllPages(user.getEntityId(),
PageType.USER)).andReturn(new ArrayList<Page>());
+
+ replay(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
+
+ Page newPage = pageService.addNewUserPage(PAGE_NAME, PAGE_LAYOUT_CODE);
+ assertThat(newPage.getRenderSequence(), is(EXPECTED_RENDER_SEQUENCE));
+ assertThat(newPage.getName(), is(PAGE_NAME));
+ assertThat(newPage.getRegions().size(),
is(pageLayout.getNumberOfRegions().intValue()));
+ assertThat(newPage.getPageType(), is(PageType.USER));
+
+ verify(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
+ }
+
+
+ @Test(expected = NoResultException.class)
+ public void addNewUserPage_noExistingPages_no_result_exception() {
+ final String PAGE_NAME = "my new page";
+ final Long EXPECTED_RENDER_SEQUENCE = 1L;
+
+ Page expectedPage = new Page();
+ expectedPage.setName(PAGE_NAME);
+ expectedPage.setOwner(user);
+ expectedPage.setPageLayout(pageLayout);
+ expectedPage.setRenderSequence(EXPECTED_RENDER_SEQUENCE);
+
expectedPage.setRegions(createEmptyRegionList(pageLayout.getNumberOfRegions()));
+ expectedPage.setPageType(PageType.USER);
+
+ expect(userService.getAuthenticatedUser()).andReturn(user);
+
expect(pageLayoutRepository.getByPageLayoutCode(PAGE_LAYOUT_CODE)).andReturn(pageLayout);
expect(pageRepository.save(expectedPage)).andReturn(expectedPage);
+
expect(pageTemplateRepository.getDefaultPage(PageType.USER)).andThrow(new
NoResultException("No Result Exception"));
+
expect(pageRepository.getAllPages(user.getEntityId(),
PageType.USER)).andReturn(new ArrayList<Page>());
- replay(userService, pageLayoutRepository, pageRepository);
+ replay(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
Page newPage = pageService.addNewUserPage(PAGE_NAME, PAGE_LAYOUT_CODE);
assertThat(newPage.getRenderSequence(), is(EXPECTED_RENDER_SEQUENCE));
@@ -197,9 +232,70 @@ public class DefaultPageServiceTest {
assertThat(newPage.getRegions().size(),
is(pageLayout.getNumberOfRegions().intValue()));
assertThat(newPage.getPageType(), is(PageType.USER));
- verify(userService, pageLayoutRepository, pageRepository);
+ verify(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
}
-
+
+ @Test(expected = NonUniqueResultException.class)
+ public void
addNewUserPage_noExistingPages_Non_Unique_ResultException_exception() {
+ final String PAGE_NAME = "my new page";
+ final Long EXPECTED_RENDER_SEQUENCE = 1L;
+
+ Page expectedPage = new Page();
+ expectedPage.setName(PAGE_NAME);
+ expectedPage.setOwner(user);
+ expectedPage.setPageLayout(pageLayout);
+ expectedPage.setRenderSequence(EXPECTED_RENDER_SEQUENCE);
+
expectedPage.setRegions(createEmptyRegionList(pageLayout.getNumberOfRegions()));
+ expectedPage.setPageType(PageType.USER);
+
+ expect(userService.getAuthenticatedUser()).andReturn(user);
+
expect(pageLayoutRepository.getByPageLayoutCode(PAGE_LAYOUT_CODE)).andReturn(pageLayout);
+ expect(pageRepository.save(expectedPage)).andReturn(expectedPage);
+
expect(pageTemplateRepository.getDefaultPage(PageType.USER)).andThrow(new
NonUniqueResultException("Non-Unique Result Exception"));
+
+ expect(pageRepository.getAllPages(user.getEntityId(),
PageType.USER)).andReturn(new ArrayList<Page>());
+ replay(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
+
+ Page newPage = pageService.addNewUserPage(PAGE_NAME, PAGE_LAYOUT_CODE);
+ assertThat(newPage.getRenderSequence(), is(EXPECTED_RENDER_SEQUENCE));
+ assertThat(newPage.getName(), is(PAGE_NAME));
+ assertThat(newPage.getRegions().size(),
is(pageLayout.getNumberOfRegions().intValue()));
+ assertThat(newPage.getPageType(), is(PageType.USER));
+
+ verify(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
+ }
+
+ @Test
+ public void addNewUserPage_noExistingPages_and_have_template() {
+ final String PAGE_NAME = "my new page";
+ final Long EXPECTED_RENDER_SEQUENCE = 1L;
+ PageTemplate pageTemplate = new PageTemplate();
+ Page userPage = new Page();
+ userPage.setName("Page Template");
+
userPage.setRegions(createEmptyRegionList(pageLayout.getNumberOfRegions()));
+
+ Page expectedPage = new Page();
+ expectedPage.setName(PAGE_NAME);
+ expectedPage.setOwner(user);
+ expectedPage.setPageLayout(pageLayout);
+ expectedPage.setRenderSequence(EXPECTED_RENDER_SEQUENCE);
+
expectedPage.setRegions(createEmptyRegionList(pageLayout.getNumberOfRegions()));
+ expectedPage.setPageType(PageType.USER);
+
+ expect(userService.getAuthenticatedUser()).andReturn(user);
+
expect(pageLayoutRepository.getByPageLayoutCode(PAGE_LAYOUT_CODE)).andReturn(pageLayout);
+ expect(pageRepository.getAllPages(user.getEntityId(),
PageType.USER)).andReturn(new ArrayList<Page>());
+ expect(pageRepository.createPageForUser(user,
pageTemplate)).andReturn(userPage);
+
expect(pageTemplateRepository.getDefaultPage(PageType.USER)).andReturn(pageTemplate);
+ replay(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
+ Page newPage = pageService.addNewUserPage(PAGE_NAME, PAGE_LAYOUT_CODE);
+ assertThat(newPage.getName(), is("Page Template"));
+ assertThat(newPage.getRegions().size(),
is(pageLayout.getNumberOfRegions().intValue()));
+
+ verify(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
+ }
+
+
@Test
public void addNewUserPage_existingPages() {
final String PAGE_NAME = "my new page";
@@ -312,7 +408,7 @@ public class DefaultPageServiceTest {
@Test
public void addNewDefaultUserPage() {
final Long EXPECTED_RENDER_SEQUENCE = 1L;
-
+ PageTemplate pageTemplate = new PageTemplate();
Page expectedPage = new Page();
expectedPage.setName(defaultPageName);
expectedPage.setOwner(user);
@@ -322,16 +418,17 @@ public class DefaultPageServiceTest {
expect(userService.getUserById(user.getEntityId())).andReturn(user);
expect(pageLayoutRepository.getByPageLayoutCode(PAGE_LAYOUT_CODE)).andReturn(pageLayout);
- expect(pageRepository.save(expectedPage)).andReturn(expectedPage);
- expect(pageRepository.getAllPages(user.getEntityId(),
PageType.USER)).andReturn(new ArrayList<Page>());
- replay(userService, pageLayoutRepository, pageRepository);
+
expect(pageTemplateRepository.getDefaultPage(PageType.USER)).andReturn(pageTemplate);
+ expect(pageRepository.createPageForUser(user,
pageTemplate)).andReturn(expectedPage);
+ expect(pageRepository.getAllPages(user.getEntityId(),
PageType.USER)).andReturn(new ArrayList<Page>());
+ replay(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
Page newPage = pageService.addNewDefaultUserPage(user.getEntityId());
assertThat(newPage.getRenderSequence(), is(EXPECTED_RENDER_SEQUENCE));
assertThat(newPage.getName(), is(defaultPageName));
assertThat(newPage.getRegions().size(),
is(pageLayout.getNumberOfRegions().intValue()));
- verify(userService, pageLayoutRepository, pageRepository);
+ verify(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
}
@Test
Modified:
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
(original)
+++
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
Tue Apr 3 14:31:52 2012
@@ -312,8 +312,8 @@ public class DefaultUserServiceTest {
public void registerNewUser_valid(){
User user = new User();
expect(userRepository.save(user)).andReturn(user).once();
- expect(pageTemplateRepository.getDefaultPersonPage()).andReturn(new
PageTemplate()).once();
- expect(pageRepository.createPersonPageForUser(isA(User.class),
isA(PageTemplate.class))).andReturn(new Page());
+
expect(pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE)).andReturn(new
PageTemplate()).once();
+ expect(pageRepository.createPageForUser(isA(User.class),
isA(PageTemplate.class))).andReturn(new Page());
replay(userRepository, pageTemplateRepository, pageRepository);
service.registerNewUser(user);
verify(userRepository, pageTemplateRepository, pageRepository);
Modified: rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql?rev=1308947&r1=1308946&r2=1308947&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql
(original)
+++ rave/trunk/rave-components/rave-core/src/test/resources/test_data.sql Tue
Apr 3 14:31:52 2012
@@ -1014,3 +1014,30 @@ set @next_person_profile_subpage2_templa
insert into page_template_widget (entity_id, page_template_region_id,
render_sequence, widget_id, locked)
values (@next_person_profile_subpage2_template_widget_id,
@person_profile_subpage2_template_region_id, 0, @my_activity_widget_id, true);
UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name =
@page_template_widget_seq;
+
+
+----------------------------------------
+-- user page template
+----------------------------------------
+-- page
+set @user_profile_page_template_id = (SELECT seq_count FROM
RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_seq);
+insert into page_template (entity_id, page_type, page_layout_id, name,
description, parent_page_template_id, render_sequence, default_template)
+values (@user_profile_page_template_id, 'USER', @person_profile_layout_id,
'User Profile', 'User profile pages', null, 0, true);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name =
@page_template_seq;
+
+-- region1
+set @user_profile_page_template_region_id = (SELECT seq_count FROM
RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_region_seq);
+insert into page_template_region (entity_id, render_sequence,
page_template_id, locked)
+values (@user_profile_page_template_region_id, 0,
@user_profile_page_template_id, true);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name =
@page_template_region_seq;
+
+-- widgets
+set @next_user_profile_page_template_widget_id = (SELECT seq_count FROM
RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq);
+insert into page_template_widget (entity_id, page_template_region_id,
render_sequence, widget_id, locked)
+values (@next_user_profile_page_template_widget_id,
@user_profile_page_template_region_id, 0, @my_groups_widget_id, true);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name =
@page_template_widget_seq;
+
+set @next_user_profile_page_template_widget_id = (SELECT seq_count FROM
RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq);
+insert into page_template_widget (entity_id, page_template_region_id,
render_sequence, widget_id, locked)
+values (@next_user_profile_page_template_widget_id,
@user_profile_page_template_region_id, 1, @work_experience_widget_id, true);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name =
@page_template_widget_seq;