Package com.eclipsesource.tabris.passepartout

Source Code of com.eclipsesource.tabris.passepartout.PassePartoutTest

/*******************************************************************************
* Copyright (c) 2014 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.passepartout;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;

import java.math.BigDecimal;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.junit.Before;
import org.junit.Test;

import com.eclipsesource.tabris.passepartout.internal.UIEnvironmentImpl;
import com.eclipsesource.tabris.passepartout.internal.condition.MaxWidthCondition;
import com.eclipsesource.tabris.passepartout.internal.condition.MinWidthCondition;
import com.eclipsesource.tabris.passepartout.internal.instruction.BackgroundImageInstruction;
import com.eclipsesource.tabris.passepartout.internal.instruction.BackgroundInstruction;
import com.eclipsesource.tabris.passepartout.internal.instruction.ColumnsInstruction;
import com.eclipsesource.tabris.passepartout.internal.instruction.ExcludeInstruction;
import com.eclipsesource.tabris.passepartout.internal.instruction.FontInstruction;
import com.eclipsesource.tabris.passepartout.internal.instruction.ForegroundInstruction;
import com.eclipsesource.tabris.passepartout.internal.instruction.HeightInstruction;
import com.eclipsesource.tabris.passepartout.internal.instruction.ImageInstruction;
import com.eclipsesource.tabris.passepartout.internal.instruction.MarginInstruction;
import com.eclipsesource.tabris.passepartout.internal.unit.Em;
import com.eclipsesource.tabris.passepartout.internal.unit.Percentage;
import com.eclipsesource.tabris.passepartout.internal.unit.Pixel;
import com.eclipsesource.tabris.test.util.TabrisEnvironment;


public class PassePartoutTest {

  @org.junit.Rule
  public TabrisEnvironment environment = new TabrisEnvironment();

  private Display display;

  @Before
  public void setUp() {
    display = new Display();
  }

  @Test
  public void testCreatesFluidGridWithoutMode() {
    FluidGridLayout grid = PassePartout.createFluidGrid();

    assertNotNull( grid );
  }

  @Test
  public void testCreatesFluidGridWithMode() {
    FluidGridLayout grid = PassePartout.createFluidGrid( new FluidGridConfiguration( LayoutMode.AUTO, 100, 200 ) );

    assertNotNull( grid );
  }

  @Test
  public void testCreateFluidGridData() {
    Rule rule1 = mock( Rule.class );
    Rule rule2 = mock( Rule.class );

    FluidGridData data = PassePartout.createFluidGridData( rule1, rule2 );

    assertNotNull( data );
    assertEquals( rule1, data.getRules().get( 1 ) );
    assertEquals( rule2, data.getRules().get( 2 ) );
  }

  @Test( expected = IllegalArgumentException.class )
  public void testCreateFluidGridDataFailsWithNullRule() {
    Rule rule1 = mock( Rule.class );

    PassePartout.createFluidGridData( rule1, null );
  }

  @Test
  public void testCreateResourceCreatesResource() {
    Resource resource = PassePartout.createResource( mock( Rule.class ) );

    assertNotNull( resource );
  }

  @Test
  public void testMinWidthReturnsMinWidthCondition() {
    Condition condition = PassePartout.minWidth( PassePartout.px( 100 ) );

    assertTrue( condition instanceof MinWidthCondition );
  }

  @Test
  public void testMinWidthPassesMinWidthToCondition() {
    Condition condition = PassePartout.minWidth( PassePartout.px( 100 ) );

    boolean complies = condition.compliesWith( new UIEnvironmentImpl( new Bounds( 10, 10, 110, 0 ),
                                                                      mock( Bounds.class ),
                                                                      16 ) );

    assertTrue( complies );
  }

  @Test
  public void testMinWidthCreatesNewCondition() {
    Condition condition = PassePartout.minWidth( PassePartout.px( 100 ) );
    Condition condition2 = PassePartout.minWidth( PassePartout.px( 100 ) );

    assertNotSame( condition, condition2 );
  }

  @Test
  public void testMaxWidthReturnsMaxWidthCondition() {
    Condition condition = PassePartout.maxWidth( PassePartout.px( 100 ) );

    assertTrue( condition instanceof MaxWidthCondition );
  }

  @Test
  public void testMaxWidthPassesMaxWidthToCondition() {
    Condition condition = PassePartout.maxWidth( PassePartout.px( 100 ) );

    boolean complies = condition.compliesWith( new UIEnvironmentImpl( new Bounds( 10, 10, 90, 0 ),
                                                                      mock( Bounds.class ),
                                                                      16 ) );

    assertTrue( complies );
  }

  @Test
  public void testMaxWidthCreatesNewCondition() {
    Condition condition = PassePartout.maxWidth( PassePartout.px( 100 ) );
    Condition condition2 = PassePartout.maxWidth( PassePartout.px( 100 ) );

    assertNotSame( condition, condition2 );
  }

  @Test
  public void testWhenCreatesQuery() {
    Query query = PassePartout.when( mock( Condition.class ) );

    assertNotNull( query );
  }

  @Test
  public void testWhenCreatesNewQuery() {
    Query query = PassePartout.when( mock( Condition.class ) );
    Query query2 = PassePartout.when( mock( Condition.class ) );

    assertNotSame( query, query2 );
  }

  @Test
  public void testWhenCreatesQueryAndPassesCondition() {
    Condition condition = mock( Condition.class );

    Query query = PassePartout.when( condition );

    Rule rule = query.then( mock( Instruction.class ) );
    assertEquals( condition, rule.getConditions().get( 0 ) );
  }

  @Test
  public void testColumnsReturnsColumnsInstruction() {
    Instruction instruction = PassePartout.columns( 5 );

    assertTrue( instruction instanceof ColumnsInstruction );
  }

  @Test
  public void testHeightReturnsHeightEmInstruction() {
    Instruction instruction = PassePartout.height( PassePartout.em( 1.5 ) );

    assertTrue( instruction instanceof HeightInstruction );
  }

  @Test
  public void testHeightReturnsHeightPercentageInstruction() {
    Instruction instruction = PassePartout.height( PassePartout.percent( 20 ) );

    assertTrue( instruction instanceof HeightInstruction );
  }

  @Test
  public void testAbsoluteHeightReturnsHeightPixelInstruction() {
    Instruction instruction = PassePartout.height( PassePartout.px( 23 ) );

    assertTrue( instruction instanceof HeightInstruction );
  }

  @Test
  public void testColumnsCreatesNewInstruction() {
    Instruction instruction = PassePartout.columns( 5 );
    Instruction instruction2 = PassePartout.columns( 5 );

    assertNotSame( instruction, instruction2 );
  }

  @Test
  public void testEmCreatesEm() {
    Unit em = PassePartout.em( 1.5 );

    BigDecimal value = em.getValue();

    assertEquals( BigDecimal.valueOf( 1.5 ), value );
    assertTrue( em instanceof Em );
  }

  @Test
  public void testPercentCreatesPercent() {
    Unit percent = PassePartout.percent( 24 );

    BigDecimal value = percent.getValue();

    assertEquals( BigDecimal.valueOf( 24.0 ), value );
    assertTrue( percent instanceof Percentage );
  }

  @Test
    public void testPxCreatesPixel() {
      Unit pixel = PassePartout.px( 23 );

      BigDecimal value = pixel.getValue();

      assertEquals( 23, value.intValue() );
      assertTrue( pixel instanceof Pixel );
    }

  @Test
  public void testMarginsCreatesMarginsInstruction() {
    Unit margin = PassePartout.px( 5 );

    Instruction instruction = PassePartout.margins( margin, margin, margin, margin );

    assertTrue( instruction instanceof MarginInstruction );
  }

  @Test
  public void testExcludeCreatesExcludeInstruction() {
    Instruction instruction = PassePartout.exclude();

    assertTrue( instruction instanceof ExcludeInstruction );
  }

  @Test
  public void testFontCreatesFontInstruction() {
    Instruction instruction = PassePartout.font( display.getSystemFont() );

    assertTrue( instruction instanceof FontInstruction );
  }

  @Test
  public void testForegroundCreatesForegroundInstruction() {
    Instruction instruction = PassePartout.foreground( display.getSystemColor( SWT.COLOR_BLACK ) );

    assertTrue( instruction instanceof ForegroundInstruction );
  }

  @Test
  public void testBackgroundCreatesBackgroundInstruction() {
    Instruction instruction = PassePartout.background( display.getSystemColor( SWT.COLOR_BLACK ) );

    assertTrue( instruction instanceof BackgroundInstruction );
  }

  @Test
  public void testImageCreatesImageInstruction() {
    Instruction instruction = PassePartout.image( environment.getTestImage() );

    assertTrue( instruction instanceof ImageInstruction );
  }

  @Test
  public void testBackgroundImageCreatesBackgroundImageInstruction() {
    Instruction instruction = PassePartout.backgroundImage( environment.getTestImage() );

    assertTrue( instruction instanceof BackgroundImageInstruction );
  }
}
TOP

Related Classes of com.eclipsesource.tabris.passepartout.PassePartoutTest

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.