Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / src / tests / DataStorageDecisionTest.java
@Shohei Yamagiwa Shohei Yamagiwa on 1 Dec 2 KB Format files
package tests;

import algorithms.DataTransferModelAnalyzer;
import generators.DataTransferMethodAnalyzer;
import models.Node;
import models.dataFlowModel.DataFlowGraph;
import models.dataFlowModel.DataTransferModel;
import models.dataFlowModel.ResourceNode;
import models.dataFlowModel.StoreAttribute;
import org.junit.Test;
import parser.Parser;
import parser.exceptions.*;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.HashMap;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

public class DataStorageDecisionTest {
	
	@Test
	public void test() {
		File file = new File("models/POS2.model");
		HashMap<String, Boolean> exprectedDecision = new HashMap<>();
		exprectedDecision.put("history", true);
		exprectedDecision.put("total", true);
		exprectedDecision.put("points", false);
		exprectedDecision.put("payment", true);
		try {
			Parser parser = new Parser(new BufferedReader(new FileReader(file)));
			DataTransferModel model = null;
			try {
				model = parser.doParse();
				System.out.println(model);
				DataFlowGraph graph = DataTransferModelAnalyzer.createDataFlowGraphWithStateStoringAttribute(model);
				DataTransferModelAnalyzer.annotateWithSelectableDataTransferAttiribute(graph);
				DataTransferMethodAnalyzer.decideToStoreResourceStates(graph);
				for (Node resNode : graph.getResourceNodes()) {
					String resName = ((ResourceNode) resNode).getResourceName();
					boolean decision = ((StoreAttribute) ((ResourceNode) resNode).getAttribute()).isStored();
					System.out.println(resName + ":" + decision);
					assertNotNull(exprectedDecision.get(resName));
					assertEquals(decision, exprectedDecision.get(resName));
				}
			} catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefOrSubKeyword
					 | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression
					 | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment | ExpectedRightCurlyBracket |
					 WrongPathExpression | WrongJsonExpression | ExpectedColon | ExpectedDoubleQuotation e) {
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
}