Package org.pentaho.platform.plugin.services.security.userrole

Source Code of org.pentaho.platform.plugin.services.security.userrole.CachingUserRoleListServiceDecoratorTest

package org.pentaho.platform.plugin.services.security.userrole;

import org.junit.Test;
import org.pentaho.platform.api.engine.IUserRoleListService;
import org.pentaho.platform.api.mt.ITenant;

import java.util.Arrays;
import java.util.List;

import static org.junit.Assert.*;

import static org.mockito.Mockito.*;

public class CachingUserRoleListServiceDecoratorTest {

  @Test
  public void testGetAllRoles() throws Exception {
    IUserRoleListService mockService = mock( IUserRoleListService.class );
    when( mockService.getAllRoles() ).thenReturn( Arrays.asList( "foo", "bar" ) );


    CachingUserRoleListServiceDecorator decorator = new CachingUserRoleListServiceDecorator( mockService );
    List<String> allRoles = decorator.getAllRoles();
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    // second call should be from cache
    allRoles = decorator.getAllRoles();
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    verify( mockService, times( 1 ) ).getAllRoles();
  }

  @Test
  public void testGetSystemRoles() throws Exception {
    IUserRoleListService mockService = mock( IUserRoleListService.class );
    when( mockService.getSystemRoles() ).thenReturn( Arrays.asList( "foo", "bar" ) );


    CachingUserRoleListServiceDecorator decorator = new CachingUserRoleListServiceDecorator( mockService );
    List<String> allRoles = decorator.getSystemRoles();
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    // second call should be from cache
    allRoles = decorator.getSystemRoles();
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    verify( mockService, times( 1 ) ).getSystemRoles();

  }

  private ITenant tenant = mock( ITenant.class );

  @Test
  public void testGetRolesForUser() throws Exception {

    IUserRoleListService mockService = mock( IUserRoleListService.class );

    when( mockService.getRolesForUser( tenant, "joe" ) ).thenReturn( Arrays.asList( "foo", "bar" ) );
    when( mockService.getRolesForUser( tenant, "admin" ) ).thenReturn( Arrays.asList( "foo", "bar" ) );


    CachingUserRoleListServiceDecorator decorator = new CachingUserRoleListServiceDecorator( mockService );
    List<String> allRoles = decorator.getRolesForUser( tenant, "joe" );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    // second call should be from cache
    allRoles = decorator.getRolesForUser( tenant, "joe" );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    allRoles = decorator.getRolesForUser( tenant, "admin" );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    verify( mockService, times( 1 ) ).getRolesForUser( tenant, "joe" );
    verify( mockService, times( 1 ) ).getRolesForUser( tenant, "admin" );

  }

  @Test
  public void testGetAllUsers() throws Exception {

    IUserRoleListService mockService = mock( IUserRoleListService.class );
    when( mockService.getAllUsers() ).thenReturn( Arrays.asList( "foo", "bar" ) );


    CachingUserRoleListServiceDecorator decorator = new CachingUserRoleListServiceDecorator( mockService );
    List<String> allRoles = decorator.getAllUsers();
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    // second call should be from cache
    allRoles = decorator.getAllUsers();
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    verify( mockService, times( 1 ) ).getAllUsers();
  }

  @Test
  public void testGetAllRoles1() throws Exception {

    IUserRoleListService mockService = mock( IUserRoleListService.class );
    when( mockService.getAllRoles( tenant ) ).thenReturn( Arrays.asList( "foo", "bar" ) );


    CachingUserRoleListServiceDecorator decorator = new CachingUserRoleListServiceDecorator( mockService );
    List<String> allRoles = decorator.getAllRoles( tenant );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    // second call should be from cache
    allRoles = decorator.getAllRoles( tenant );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    verify( mockService, times( 1 ) ).getAllRoles( tenant );
  }

  @Test
  public void testGetUsersInRole() throws Exception {

    IUserRoleListService mockService = mock( IUserRoleListService.class );
    when( mockService.getUsersInRole( tenant, "ceo" ) ).thenReturn( Arrays.asList( "foo", "bar" ) );


    CachingUserRoleListServiceDecorator decorator = new CachingUserRoleListServiceDecorator( mockService );
    List<String> allRoles = decorator.getUsersInRole( tenant, "ceo" );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    // second call should be from cache
    allRoles = decorator.getUsersInRole( tenant, "ceo" );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    verify( mockService, times( 1 ) ).getUsersInRole( tenant, "ceo" );
  }

  @Test
  public void testGetAllUsers1() throws Exception {

    IUserRoleListService mockService = mock( IUserRoleListService.class );
    when( mockService.getAllUsers( tenant ) ).thenReturn( Arrays.asList( "foo", "bar" ) );


    CachingUserRoleListServiceDecorator decorator = new CachingUserRoleListServiceDecorator( mockService );
    List<String> allRoles = decorator.getAllUsers( tenant );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    // second call should be from cache
    allRoles = decorator.getAllUsers( tenant );
    assertArrayEquals( "does not match", new String[] { "foo", "bar" }, allRoles.toArray() );

    verify( mockService, times( 1 ) ).getAllUsers( tenant );
  }
}
TOP

Related Classes of org.pentaho.platform.plugin.services.security.userrole.CachingUserRoleListServiceDecoratorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.