View Javadoc
1   /*
2    * Copyright (c) 2002-2025, City of Paris
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright notice
10   *     and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright notice
13   *     and the following disclaimer in the documentation and/or other materials
14   *     provided with the distribution.
15   *
16   *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17   *     contributors may be used to endorse or promote products derived from
18   *     this software without specific prior written permission.
19   *
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30   * POSSIBILITY OF SUCH DAMAGE.
31   *
32   * License 1.0
33   */
34  package fr.paris.lutece.portal.business.page;
35  
36  import java.security.SecureRandom;
37  import java.sql.Timestamp;
38  import java.util.Collection;
39  
40  import org.junit.Assert;
41  
42  import fr.paris.lutece.portal.business.role.Role;
43  import fr.paris.lutece.portal.business.role.RoleHome;
44  import fr.paris.lutece.portal.business.style.PageTemplateHome;
45  import fr.paris.lutece.portal.service.page.IPageService;
46  import fr.paris.lutece.portal.service.portal.PortalService;
47  import fr.paris.lutece.portal.service.spring.SpringContextService;
48  import fr.paris.lutece.portal.service.workgroup.AdminWorkgroupService;
49  import fr.paris.lutece.test.LuteceTestCase;
50  
51  public class PageDAOTest extends LuteceTestCase
52  {
53      public void testGetPagesByRoleKey( )
54      {
55          SecureRandom rnd = new SecureRandom( );
56          Role role = null;
57          Page page = null;
58          try
59          {
60              // create a role
61              String randomRoleName = "role" + rnd.nextLong( );
62              role = new Role( );
63              role.setRole( randomRoleName );
64              role.setRoleDescription( randomRoleName );
65              role.setWorkgroup( AdminWorkgroupService.ALL_GROUPS );
66              RoleHome.create( role );
67              // create a page
68              String randomPageName = "page" + rnd.nextLong( );
69              page = new Page( );
70              page.setParentPageId( PortalService.getRootPageId( ) );
71              page.setPageTemplateId( PageTemplateHome.getPageTemplatesList( ).get( 0 ).getId( ) );
72              page.setName( randomPageName );
73              page.setRole( randomRoleName );
74              page.setDateUpdate( new Timestamp( new java.util.Date( ).getTime( ) ) );
75              page.setDisplayDateUpdate( false );
76              page.setIsManualDateUpdate( false );
77              IPageService pageService = (IPageService) SpringContextService.getBean( "pageService" );
78              pageService.createPage( page );
79              // get page by role
80              PageDAO dao = new PageDAO( );
81              Collection<Page> pages = dao.getPagesByRoleKey( randomRoleName );
82              assertNotNull( pages );
83              for ( Page p : pages )
84              {
85                  if ( p.getName( ).equals( randomPageName ) )
86                  {
87                      return;
88                  }
89              }
90              Assert.fail( "could not find the page " + randomPageName );
91          }
92          finally
93          {
94              // cleanup
95              if ( role != null )
96              {
97                  try
98                  {
99                      RoleHome.remove( role.getRole( ) );
100                 }
101                 finally
102                 {
103                 }
104             }
105             if ( page != null )
106             {
107                 try
108                 {
109                     PageHome.remove( page.getId( ) );
110                 }
111                 finally
112                 {
113                 }
114             }
115         }
116 
117     }
118 }