Package

Source Code of StateTableTests

import static org.junit.Assert.assertTrue;

import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import javax.naming.InvalidNameException;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import easysm.Constants;
import easysm.datatypes.Name;
import easysm.datatypes.Value;
import easysm.datatypes.information.EnumerationInfo;
import easysm.datatypes.information.LiteralInfo;
import easysm.datatypes.information.ProjectInfo;
import easysm.datatypes.information.StateObserverInfo;
import easysm.executors.Main;
import easysm.factories.ListFactory;
import easysm.factories.SetFactory;
import easysm.stores.Enumeration;
import easysm.stores.Row;
import easysm.stores.StateObserver;
import easysm.stores.Type;

/**
* @author Federica Lupi
* @author Marta Semeria
*/
public class StateTableTests
{
  Main main;
  Name stPino;
  Name stGino;
  Name stTino;

  @Before
  public void setUp()
  {
    main = new Main(false);
    Name name = null;
    try {
      name = new Name("Test");
      stPino = new Name("Pino");
      stGino = new Name("Gino");
      stTino = new Name("Tino");
    } catch (InvalidNameException e) {
      //
    }
    ProjectInfo projectInfo = new ProjectInfo(name, "Test", "Test");
    main.doNewProject(projectInfo);
  }

  @After
  public void tearDown()
  {
    main = null;
  }

  @Test
  public void Main_doGenerateStates_OneValidTable_FinalState()
  {
    List<StateObserver> usedSet = main.stateObservers().soList();
    main.doSelectUsedSO(usedSet);
    main.doGenerateStateTable();

    List<Row> rows = main.stateTable().rows();
    assertTrue(rows.size() == 2);

    List<Value> values = new LinkedList<Value>();
    values.add(new Value(Constants.TRUE_REPR));
    Row rowTrue = new Row(values, Constants.IMPOSSIBLE_NAME);
    assertTrue(rows.get(0).equals(rowTrue));

    values.clear();
    values.add(new Value(Constants.FALSE_REPR));
    Row rowFalse = new Row(values, Constants.IMPOSSIBLE_NAME);
    assertTrue(rows.get(1).equals(rowFalse));

  }

  @Test
  public void Main_doGenerateStates_OneValidTable_OneState()
  {
    StateObserverInfo soInfo = new StateObserverInfo(stPino, Type.BOOLEAN, null);
    main.doAddStateObserver(soInfo);
    List<StateObserver> usedSet = ListFactory.createList(StateObserver.class);
    usedSet.add(new StateObserver(soInfo));
    main.doSelectUsedSO(usedSet);
    main.doGenerateStateTable();

    List<Row> rows = main.stateTable().rows();
    assertTrue(rows.size() == 2);

    List<Value> values = new LinkedList<Value>();
    values.add(new Value(Constants.TRUE_REPR));
    Row rowTrue = new Row(values, Constants.IMPOSSIBLE_NAME);
    assertTrue(rows.get(0).equals(rowTrue));

    values.clear();
    values.add(new Value(Constants.FALSE_REPR));
    Row rowFalse = new Row(values, Constants.IMPOSSIBLE_NAME);
    assertTrue(rows.get(1).equals(rowFalse));

  }

  @Test
  public void Main_doGenerateStates_OneValidTable_ThreeState()
  {
    main.doAddStateObserver(new StateObserverInfo(stPino, Type.BOOLEAN, null));
    main.doAddStateObserver(new StateObserverInfo(stGino, Type.BOOLEAN, null));

    List<StateObserver> usedSet = main.stateObservers().soList();
    main.doSelectUsedSO(usedSet);
    main.doGenerateStateTable();

    Value True = new Value(Constants.TRUE_REPR);
    Value False = new Value(Constants.FALSE_REPR);
    List<Value> values = new LinkedList<Value>();

    values.add(True);
    values.add(True);
    values.add(True);
    Row row0 = new Row(values, Constants.IMPOSSIBLE_NAME);

    values = new LinkedList<Value>();
    values.add(True);
    values.add(True);
    values.add(False);
    Row row1 = new Row(values, Constants.IMPOSSIBLE_NAME);

    values = new LinkedList<Value>();
    values.add(True);
    values.add(False);
    values.add(True);
    Row row2 = new Row(values, Constants.IMPOSSIBLE_NAME);

    values = new LinkedList<Value>();
    values.add(True);
    values.add(False);
    values.add(False);
    Row row3 = new Row(values, Constants.IMPOSSIBLE_NAME);

    values = new LinkedList<Value>();
    values.add(False);
    values.add(True);
    values.add(True);
    Row row4 = new Row(values, Constants.IMPOSSIBLE_NAME);

    values = new LinkedList<Value>();
    values.add(False);
    values.add(True);
    values.add(False);
    Row row5 = new Row(values, Constants.IMPOSSIBLE_NAME);

    values = new LinkedList<Value>();
    values.add(False);
    values.add(False);
    values.add(True);
    Row row6 = new Row(values, Constants.IMPOSSIBLE_NAME);

    values = new LinkedList<Value>();
    values.add(False);
    values.add(False);
    values.add(False);
    Row row7 = new Row(values, Constants.IMPOSSIBLE_NAME);

    Row[] rows = new Row[] { row0, row1, row2, row3, row4, row5, row6, row7 };
    List<Row> rowState = main.stateTable().rows();

    assertTrue(rowState.size() == 8);
    for (int i = 0; i < 8; i++) {
      assertTrue(rowState.get(i).equals(rows[i]));
    }
  }

  @Test
  public void Main_doGenerateStates_OneValidTable_EnumState()
  {
    Set<LiteralInfo> literals = SetFactory.createSet(LiteralInfo.class);
    literals.add(new LiteralInfo(stPino));
    literals.add(new LiteralInfo(stGino));
    EnumerationInfo eInfo = new EnumerationInfo(stTino, literals);
    Enumeration e = new Enumeration(eInfo);
    main.doAddStateObserver(new StateObserverInfo(stGino, Type.enumAsType(e), null));
    List<StateObserver> usedSet = main.stateObservers().soList();
    main.doSelectUsedSO(usedSet);
    main.doGenerateStateTable();

    List<Row> rows = main.stateTable().rows();
    assertTrue(rows.size() == 4);

    Value True = new Value(Constants.TRUE_REPR);
    Value False = new Value(Constants.FALSE_REPR);
    Value pino = new Value(stPino.toString());
    Value gino = new Value(stGino.toString());

    List<Value> values = new LinkedList<Value>();
    values.add(True);
    values.add(pino);
    Row rowTT = new Row(values, Constants.IMPOSSIBLE_NAME);
    assertTrue(rows.get(0).equals(rowTT));

    values.clear();
    values.add(True);
    values.add(gino);
    Row rowTF = new Row(values, Constants.IMPOSSIBLE_NAME);
    assertTrue(rows.get(1).equals(rowTF));

    values.clear();
    values.add(False);
    values.add(pino);
    Row rowFT = new Row(values, Constants.IMPOSSIBLE_NAME);
    assertTrue(rows.get(2).equals(rowFT));

    values.clear();
    values.add(False);
    values.add(gino);
    Row rowFF = new Row(values, Constants.IMPOSSIBLE_NAME);
    assertTrue(rows.get(3).equals(rowFF));
  }
}
TOP

Related Classes of StateTableTests

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.