/******************************************************************************* * 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.assertNotSame; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import java.util.List; import org.junit.Test; import com.eclipsesource.tabris.passepartout.internal.condition.AlwaysTrueContidtion; import com.eclipsesource.tabris.passepartout.internal.instruction.ColumnsInstruction; public class FluidGridDataTest { @Test( expected = IllegalArgumentException.class ) public void testFailsWithNullRule() { FluidGridData data = new FluidGridData(); data.addRule( null ); } @Test public void testHasAddedRule() { FluidGridData data = new FluidGridData(); Rule rule = mock( Rule.class ); data.addRule( rule ); List<Rule> rules = data.getRules(); assertEquals( rule, rules.get( 1 ) ); } @Test public void testAddedRuleReturnsData() { FluidGridData data = new FluidGridData(); Rule rule = mock( Rule.class ); FluidGridData actualData = data.addRule( rule ); assertSame( data, actualData ); } @Test public void testGetRulesReturnSafeCopy() { FluidGridData data = new FluidGridData(); List<Rule> rules = data.getRules(); List<Rule> rules2 = data.getRules(); assertNotSame( rules, rules2 ); } @Test public void testAddsDefaultRule() { FluidGridData data = new FluidGridData(); Rule rule = data.getRules().get( 0 ); assertTrue( rule.getConditions().get( 0 ) instanceof AlwaysTrueContidtion ); assertTrue( rule.getInstructions().get( 0 ) instanceof ColumnsInstruction ); } @Test public void testDefaultRuleObtainsOneColumn() { FluidGridData data = new FluidGridData(); Rule rule = data.getRules().get( 0 ); ColumnsInstruction instruction = ( ColumnsInstruction )rule.getInstructions().get( 0 ); assertEquals( 1, instruction.getColumns() ); } }