package com.plectix.simulator.parser; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.FileNotFoundException; import java.util.Collection; import org.apache.commons.cli.ParseException; import org.junit.Before; import org.junit.Test; import org.junit.runners.Parameterized.Parameters; import com.plectix.simulator.DirectoryTestsRunner; import com.plectix.simulator.Initializator; import com.plectix.simulator.OperationModeCollectionGenerator; import com.plectix.simulator.parser.abstractmodel.KappaModel; import com.plectix.simulator.parser.abstractmodel.reader.KappaModelCreator; import com.plectix.simulator.parser.builders.KappaSystemBuilder; import com.plectix.simulator.simulator.SimulationArguments; import com.plectix.simulator.simulator.SimulationData; import com.plectix.simulator.simulator.Simulator; public class TestParserSites extends DirectoryTestsRunner { private static String testDirectory = "test.data/parser"; @Parameters public static Collection<Object[]> regExValues() { return OperationModeCollectionGenerator.generate( getAllTestFileNames("test.data/parser"), false); } private Object fileName; private Integer time = 1; private Integer opMode; private SimulationData simulationData; private SimulationArguments args; @Override public String getPrefixFileName() { // TODO Auto-generated method stub return null; } public TestParserSites(String fileName, Integer opMode) { this.fileName = fileName; this.opMode = opMode; } @Before public void setup() { init(testDirectory + fileName, opMode); } @Override public void init(String filePath, Integer opMode) { Simulator mySimulator = new Simulator(); simulationData = mySimulator.getSimulationData(); args = null; try { // seed=2: 13 // seed=9: 13 // seed=13: 11(storage) args = Initializator.prepareTimeArguments(filePath, time, opMode); } catch (ParseException e) { e.printStackTrace(); throw new IllegalArgumentException(e); } } @Test public void test() throws Exception { KappaFileReader kappaFileReader = null; try { kappaFileReader = new KappaFileReader(testDirectory + File.separator + fileName, true); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } KappaFile kappaFile = kappaFileReader.parse(); // SimulationData simulationData = new SimulationData(); // OperationManager manager = new OperationManager(simulationData.getKappaSystem()); // KappaFile kappaFile = manager.perform(new KappaFileLoadingOperation(simulationData)); try { KappaModel model = new KappaModelCreator(args) .createModel(kappaFile); new KappaSystemBuilder(simulationData).build(model); } catch (SimulationDataFormatException e) { if (fileName.equals("test00.test")) { assertTrue(e.getErrorType().getMessage().equals( "repeated site name in agent")); return; } if (fileName.equals("test01.test")) { assertTrue(e.getErrorType().getMessage().equals( "agent connected with himself")); return; } if (fileName.equals("test02.test")) { assertTrue(e.getErrorType().getMessage().equals( "* in site name")); return; } } assertFalse(true); } }