Package com.eclipsesource.tabris.ui

Source Code of com.eclipsesource.tabris.ui.PageConfigurationTest

/*******************************************************************************
* Copyright (c) 2013 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    EclipseSource - initial API and implementation
******************************************************************************/
package com.eclipsesource.tabris.ui;

import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

import java.io.InputStream;
import java.io.Serializable;
import java.util.List;

import org.junit.Rule;
import org.junit.Test;

import com.eclipsesource.tabris.internal.ui.ActionDescriptor;
import com.eclipsesource.tabris.internal.ui.PageDescriptor;
import com.eclipsesource.tabris.internal.ui.TestAction;
import com.eclipsesource.tabris.internal.ui.TestPage;
import com.eclipsesource.tabris.internal.ui.UITestUtil;
import com.eclipsesource.tabris.internal.ui.UIUpdater;
import com.eclipsesource.tabris.internal.ui.UpdateUtil;
import com.eclipsesource.tabris.test.util.TabrisEnvironment;


public class PageConfigurationTest {

  @Rule
  public TabrisEnvironment environment = new TabrisEnvironment();

  @Test
  public void testIsSerializable() {
    assertTrue( Serializable.class.isAssignableFrom( PageConfiguration.class ) );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testFailsWithNullId() {
    new PageConfiguration( null, TestPage.class );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testFailsWithEmptyId() {
    new PageConfiguration( "", TestPage.class );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testFailsWithNullType() {
    new PageConfiguration( "foo", null );
  }

  @Test
  public void testCanCreateDescriptor() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setTopLevel( true );

    PageDescriptor descriptor = config.getAdapter( PageDescriptor.class );

    assertNotNull( descriptor );
  }

  @Test
  public void testHasId() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class );

    String pageId = config.getId();

    assertEquals( pageId, "foo" );
  }

  @Test
  public void testSetsDefaultValues() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class );

    PageDescriptor descriptor = config.getAdapter( PageDescriptor.class );

    assertEquals( "foo", descriptor.getId() );
    assertSame( TestPage.class, descriptor.getPageType() );
    assertFalse( descriptor.isTopLevel() );
    assertEquals( "", descriptor.getTitle() );
    assertNull( descriptor.getImage() );
    assertEquals( 0, descriptor.getPageStyle().length );
  }

  @Test
  public void testSetsTopLevel() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setTopLevel( true );

    PageDescriptor descriptor = config.getAdapter( PageDescriptor.class );

    assertTrue( descriptor.isTopLevel() );
  }

  @Test
  public void testHasTopLevel() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setTopLevel( true );

    boolean topLevel = config.isTopLevel();

    assertTrue( topLevel );
  }

  @Test
  public void testSetsTitle() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setTitle( "bar" );

    PageDescriptor descriptor = config.getAdapter( PageDescriptor.class );

    assertEquals( "bar", descriptor.getTitle() );
  }

  @Test
  public void testHasTitle() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setTitle( "bar" );

    String title = config.getTitle();

    assertEquals( "bar", title );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testSetTitleFailsWithNull() {
    new PageConfiguration( "foo", TestPage.class ).setTitle( null );
  }

  @Test
  public void testSetsImage() {
    InputStream image = UITestUtil.class.getResourceAsStream( "testImage.png" );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setImage( image );

    PageDescriptor descriptor = config.getAdapter( PageDescriptor.class );

    assertArrayEquals( UITestUtil.getImageBytes(), descriptor.getImage() );
  }

  @Test
  public void testHasImage() {
    InputStream image = UITestUtil.class.getResourceAsStream( "testImage.png" );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setImage( image );

    byte[] actualImage = config.getImage();

    assertArrayEquals( UITestUtil.getImageBytes(), actualImage );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testSetImageFailsWithNull() {
    new PageConfiguration( "foo", TestPage.class ).setImage( null );
  }

  @Test
  public void testSetsStyle() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setStyle( PageStyle.DEFAULT, PageStyle.FULLSCREEN );

    PageDescriptor descriptor = config.getAdapter( PageDescriptor.class );

    PageStyle[] pageStyle = descriptor.getPageStyle();
    assertEquals( 2, pageStyle.length );
    assertSame( PageStyle.DEFAULT, pageStyle[ 0 ] );
    assertSame( PageStyle.FULLSCREEN, pageStyle[ 1 ] );
  }

  @Test
  public void testHasStyle() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).setStyle( PageStyle.DEFAULT, PageStyle.FULLSCREEN );

    List<PageStyle> style = config.getStyle();

    assertEquals( 2, style.size() );
    assertSame( PageStyle.DEFAULT, style.get( 0 ) );
    assertSame( PageStyle.FULLSCREEN, style.get( 1 ) );
  }

  @Test
  public void testAddsAction() {
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( actionConfig );

    PageDescriptor descriptor = config.getAdapter( PageDescriptor.class );

    List<ActionDescriptor> actions = descriptor.getActions();
    assertEquals( 1, actions.size() );
    assertEquals( actions.get( 0 ).getId(), "bar" );
  }

  @Test
  public void testAddsActionTriggersPageUpdate() {
    UIUpdater updater = mock( UIUpdater.class );
    UpdateUtil.registerUpdater( updater );
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class );

    config.addActionConfiguration( actionConfig );

    verify( updater ).update( config );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testAddActionConfigurationFailsWithNullAction() {
    new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( null );
  }

  @Test
  public void testCanGetActionConfiguration() {
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( actionConfig );

    ActionConfiguration actualActionConfiguration = config.getActionConfiguration( "bar" );

    assertSame( actionConfig, actualActionConfiguration );
  }

  @Test
  public void testGetActionConfigurationReturnsNullIfActionIsNonExistent() {
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( actionConfig );

    ActionConfiguration actualActionConfiguration = config.getActionConfiguration( "bar2" );

    assertNull( actualActionConfiguration );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testGetActionConfigurationFailsWithNullId() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class );

    config.getActionConfiguration( null );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testGetActionConfigurationFailsWithEmptyId() {
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class );

    config.getActionConfiguration( "" );
  }

  @Test
  public void testRemovesAction() {
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( actionConfig );

    config.removeActionConfiguration( "bar" );

    PageDescriptor descriptor = config.getAdapter( PageDescriptor.class );
    List<ActionDescriptor> actions = descriptor.getActions();
    assertTrue( actions.isEmpty() );
  }

  @Test
  public void testRemoveActionTriggersPageUpdate() {
    UIUpdater updater = mock( UIUpdater.class );
    UpdateUtil.registerUpdater( updater );
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class );
    config.addActionConfiguration( actionConfig );

    config.removeActionConfiguration( "bar" );

    verify( updater, times( 2 ) ).update( config );
  }

  @Test
  public void testRemoveActionReturnsPageConfiguration() {
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( actionConfig );

    PageConfiguration pageConfiguration = config.removeActionConfiguration( "bar" );

    assertSame( config, pageConfiguration );
  }

  @Test( expected = IllegalStateException.class )
  public void testRemoveActionFailsWithNonExistingAction() {
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( actionConfig );

    config.removeActionConfiguration( "bar2" );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testRemoveActionFailsWithNullId() {
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( actionConfig );

    config.removeActionConfiguration( null );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testRemoveActionFailsWithEmptyNullId() {
    ActionConfiguration actionConfig = new ActionConfiguration( "bar", TestAction.class );
    PageConfiguration config = new PageConfiguration( "foo", TestPage.class ).addActionConfiguration( actionConfig );

    config.removeActionConfiguration( "" );
  }

}
TOP

Related Classes of com.eclipsesource.tabris.ui.PageConfigurationTest

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.