Package org.pentaho.test.platform.plugin.pluginmgr

Source Code of org.pentaho.test.platform.plugin.pluginmgr.DefaultPluginPerspectiveManagerTest

/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.test.platform.plugin.pluginmgr;

import org.junit.Before;
import org.junit.Test;
import org.pentaho.platform.api.engine.perspective.IPluginPerspectiveManager;
import org.pentaho.platform.api.engine.perspective.pojo.IPluginPerspective;
import org.pentaho.platform.engine.core.system.PentahoSystem;
import org.pentaho.platform.plugin.services.pluginmgr.perspective.DefaultPluginPerspectiveManager;
import org.pentaho.platform.plugin.services.pluginmgr.perspective.pojo.DefaultPluginPerspective;
import org.pentaho.test.platform.engine.core.MicroPlatform;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

@SuppressWarnings( "nls" )
public class DefaultPluginPerspectiveManagerTest {

  @Before
  public void init0() {
    MicroPlatform microPlatform = new MicroPlatform( "test-res/PluginManagerTest" );
    microPlatform.define( IPluginPerspectiveManager.class, DefaultPluginPerspectiveManager.class );
  }

  private IPluginPerspective createTestPerspective( final String id, final String title ) {
    IPluginPerspective perspective = new DefaultPluginPerspective();
    perspective.setId( id );
    perspective.setTitle( title );
    perspective.setContentUrl( "test-content-url" );
    perspective.setLayoutPriority( 500 );
    return perspective;
  }

  @Test
  public void testPerspectiveManager() {
    IPluginPerspectiveManager manager = PentahoSystem.get( IPluginPerspectiveManager.class );
    assertNotNull( manager );

    IPluginPerspective testPerspective = createTestPerspective( "test-perspective-id", "test-perspective-title" );
    manager.addPluginPerspective( testPerspective );

    assertEquals( 1, manager.getPluginPerspectives().size() );
    assertEquals( "test-perspective-id", manager.getPluginPerspectives().get( 0 ).getId() );
    assertEquals( "test-perspective-title", manager.getPluginPerspectives().get( 0 ).getTitle() );
    assertEquals( "test-content-url", manager.getPluginPerspectives().get( 0 ).getContentUrl() );

    manager.getPluginPerspectives().get( 0 ).setContentUrl( "different" );
    assertEquals( "different", manager.getPluginPerspectives().get( 0 ).getContentUrl() );

    manager.removePluginPerspective( testPerspective );
    assertEquals( 0, manager.getPluginPerspectives().size() );

    manager.addPluginPerspective( createTestPerspective( "test-perspective-id-1", "test-perspective-title-1" ) );
    manager.addPluginPerspective( createTestPerspective( "test-perspective-id-2", "test-perspective-title-2" ) );
    manager.addPluginPerspective( createTestPerspective( "test-perspective-id-3", "test-perspective-title-3" ) );
    manager.addPluginPerspective( createTestPerspective( "test-perspective-id-4", "test-perspective-title-4" ) );
    manager.addPluginPerspective( createTestPerspective( "test-perspective-id-5", "test-perspective-title-5" ) );
    assertEquals( 5, manager.getPluginPerspectives().size() );

    for ( int i = 0; i < 5; i++ ) {
      assertEquals( "test-perspective-id-" + ( i + 1 ), manager.getPluginPerspectives().get( i ).getId() );
      assertEquals( "test-perspective-title-" + ( i + 1 ), manager.getPluginPerspectives().get( i ).getTitle() );
      assertEquals( 500, manager.getPluginPerspectives().get( i ).getLayoutPriority() );
    }

    manager.clearPluginPerspectives();
    assertEquals( 0, manager.getPluginPerspectives().size() );
  }

}
TOP

Related Classes of org.pentaho.test.platform.plugin.pluginmgr.DefaultPluginPerspectiveManagerTest

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.