|
@@ -1,6 +1,6 @@
|
|
|
import unittest
|
|
|
|
|
|
-from utils import run_file, get_constructor, get_raw_model_constructor
|
|
|
+from utils import run_file, get_constructor, get_model_constructor
|
|
|
|
|
|
all_files = [ "core/mini_modify.alc",
|
|
|
"core/core_formalism.mvc",
|
|
@@ -241,7 +241,7 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"model_add",
|
|
|
"SimpleClassDiagrams",
|
|
|
"PetriNets",
|
|
|
- ] + get_raw_model_constructor(open("integration/code/petrinets.mvc", "r").read()) + [
|
|
|
+ ] + get_model_constructor(open("integration/code/petrinets.mvc", "r").read()) + [
|
|
|
"model_list_full",
|
|
|
"transformation_add_MT_language",
|
|
|
"PetriNets",
|
|
@@ -272,7 +272,7 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
" 200 root nobody 14 PetriNets : SimpleClassDiagrams",
|
|
|
" 200 root nobody 14 __merged_PetriNets_RAM : SimpleClassDiagrams",
|
|
|
" 200 root nobody 328 PetriNets_RAM : SimpleClassDiagrams",
|
|
|
- " 200 root admin 76 core : CoreFormalism"]),
|
|
|
+ " 200 root admin 79 core : CoreFormalism"]),
|
|
|
"Ready for command...",
|
|
|
],
|
|
|
mode))
|
|
@@ -286,7 +286,7 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"model_add",
|
|
|
"SimpleClassDiagrams",
|
|
|
"PetriNets",
|
|
|
- ] + get_raw_model_constructor(open("integration/code/petrinets.mvc", "r").read()) + [
|
|
|
+ ] + get_model_constructor(open("integration/code/petrinets.mvc", "r").read()) + [
|
|
|
"model_list_full",
|
|
|
"transformation_add_MT_language",
|
|
|
"PetriNets",
|
|
@@ -339,7 +339,6 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"Which ones do you want to use as target (empty string to finish)?",
|
|
|
"Name of new transformation?",
|
|
|
"Waiting for model constructors...",
|
|
|
- "Meta-info correctly set!",
|
|
|
"Ready for command...",
|
|
|
set([" 221 root admin 673 SimpleClassDiagrams : SimpleClassDiagrams",
|
|
|
" 221 root admin 86 CoreFormalism : SimpleClassDiagrams",
|
|
@@ -347,7 +346,7 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
" 200 root nobody 14 __merged_PetriNets_RAM : SimpleClassDiagrams",
|
|
|
" 200 root nobody 328 PetriNets_RAM : SimpleClassDiagrams",
|
|
|
" 200 root nobody 0 PetriNets_Print : PetriNets_RAM",
|
|
|
- " 200 root admin 90 core : CoreFormalism"]),
|
|
|
+ " 200 root admin 92 core : CoreFormalism"]),
|
|
|
"Ready for command...",
|
|
|
set(["[ModelTransformation] PetriNets_Print : PetriNets_RAM",
|
|
|
]),
|
|
@@ -367,7 +366,7 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"model_add",
|
|
|
"SimpleClassDiagrams",
|
|
|
"PetriNets",
|
|
|
- ] + get_raw_model_constructor(open("integration/code/pn_runtime_MR.mvc", "r").read()) + [
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_runtime.mvc", "r").read()) + [
|
|
|
"model_list_full",
|
|
|
"transformation_add_MT_language",
|
|
|
"PetriNets",
|
|
@@ -380,7 +379,7 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"",
|
|
|
"",
|
|
|
"PetriNets_Print",
|
|
|
- ] + get_raw_model_constructor(open("integration/code/pn_print_MR.mvc", "r").read()) + [
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_print.mvc", "r").read()) + [
|
|
|
"transformation_list_full",
|
|
|
],
|
|
|
[ "Desired username for admin user?",
|
|
@@ -418,7 +417,6 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"Which ones do you want to use as target (empty string to finish)?",
|
|
|
"Name of new transformation?",
|
|
|
"Waiting for model constructors...",
|
|
|
- "Meta-info correctly set!",
|
|
|
"Ready for command...",
|
|
|
set([" 200 root nobody 26 [ModelTransformation] PetriNets_Print : PetriNets_RAM"
|
|
|
]),
|
|
@@ -435,11 +433,11 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"model_add",
|
|
|
"SimpleClassDiagrams",
|
|
|
"PetriNets",
|
|
|
- ] + get_raw_model_constructor(open("integration/code/pn_runtime_MR.mvc", "r").read()) + [
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_runtime.mvc", "r").read()) + [
|
|
|
"model_add",
|
|
|
"PetriNets",
|
|
|
"my_pn",
|
|
|
- ] + get_raw_model_constructor(open("integration/code/pn_runtime_model_MR.mvc", "r").read()) + [
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_runtime_model.mvc", "r").read()) + [
|
|
|
"model_list_full",
|
|
|
"transformation_add_MT_language",
|
|
|
"PetriNets",
|
|
@@ -452,7 +450,7 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"",
|
|
|
"",
|
|
|
"PetriNets_Print",
|
|
|
- ] + get_raw_model_constructor(open("integration/code/pn_print_MR.mvc", "r").read()) + [
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_print.mvc", "r").read()) + [
|
|
|
"transformation_list_full",
|
|
|
"transformation_execute",
|
|
|
"PetriNets_Print",
|
|
@@ -502,7 +500,6 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"Which ones do you want to use as target (empty string to finish)?",
|
|
|
"Name of new transformation?",
|
|
|
"Waiting for model constructors...",
|
|
|
- "Meta-info correctly set!",
|
|
|
"Ready for command...",
|
|
|
set([" 200 root nobody 26 [ModelTransformation] PetriNets_Print : PetriNets_RAM"
|
|
|
]),
|
|
@@ -517,3 +514,306 @@ class TestModelverseCore(unittest.TestCase):
|
|
|
"Ready for command...",
|
|
|
],
|
|
|
mode))
|
|
|
+
|
|
|
+ def test_po_transform_add_MT_pn_simulate(self):
|
|
|
+ self.transform_add_MT_pn_simulate("PO")
|
|
|
+
|
|
|
+ def transform_add_MT_pn_simulate(self, mode):
|
|
|
+ self.assertTrue(run_file(all_files,
|
|
|
+ [ "root",
|
|
|
+ "model_add",
|
|
|
+ "SimpleClassDiagrams",
|
|
|
+ "PetriNets",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_design.mvc", "r").read()) + [
|
|
|
+ "model_add",
|
|
|
+ "SimpleClassDiagrams",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_runtime.mvc", "r").read()) + [
|
|
|
+ "model_add",
|
|
|
+ "PetriNets",
|
|
|
+ "my_pn",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_design_model.mvc", "r").read()) + [
|
|
|
+ "model_list",
|
|
|
+ "transformation_add_MT_language",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "PetriNets",
|
|
|
+ "",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "model_list",
|
|
|
+ "model_modify",
|
|
|
+ "__merged_PetriNets_RAM",
|
|
|
+ "instantiate",
|
|
|
+ "Association",
|
|
|
+ "D2R_PlaceLink",
|
|
|
+ "PetriNets_Place",
|
|
|
+ "PetriNets_Runtime_Place",
|
|
|
+ "instantiate",
|
|
|
+ "Association",
|
|
|
+ "D2R_TransitionLink",
|
|
|
+ "PetriNets_Transition",
|
|
|
+ "PetriNets_Runtime_Transition",
|
|
|
+ "instantiate",
|
|
|
+ "Association",
|
|
|
+ "R2D_PlaceLink",
|
|
|
+ "PetriNets_Runtime_Place",
|
|
|
+ "PetriNets_Place",
|
|
|
+ "instantiate",
|
|
|
+ "Association",
|
|
|
+ "R2D_TransitionLink",
|
|
|
+ "PetriNets_Runtime_Transition",
|
|
|
+ "PetriNets_Transition",
|
|
|
+ "exit",
|
|
|
+ "transformation_RAMify",
|
|
|
+ "__merged_PetriNets_RAM",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "transformation_add_MT",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "PetriNets",
|
|
|
+ "",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "",
|
|
|
+ "pn_design_to_runtime",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_design_to_runtime.mvc", "r").read()) + [
|
|
|
+ "transformation_add_MT",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "",
|
|
|
+ "PetriNets",
|
|
|
+ "",
|
|
|
+ "pn_runtime_to_design",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_runtime_to_design.mvc", "r").read()) + [
|
|
|
+ "transformation_add_MT",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "",
|
|
|
+ "PetriNets_Runtime",
|
|
|
+ "",
|
|
|
+ "pn_step",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_simulate.mvc", "r").read()) + [
|
|
|
+ "transformation_add_MT",
|
|
|
+ "PetriNets_RAM",
|
|
|
+ "PetriNets",
|
|
|
+ "",
|
|
|
+ "",
|
|
|
+ "pn_print",
|
|
|
+ ] + get_model_constructor(open("integration/code/pn_print.mvc", "r").read()) + [
|
|
|
+ "model_list",
|
|
|
+ "transformation_list",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_print",
|
|
|
+ "my_pn",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_design_to_runtime",
|
|
|
+ "my_pn",
|
|
|
+ "my_pn_runtime",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_step",
|
|
|
+ "my_pn_runtime",
|
|
|
+ "my_pn_runtime",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_runtime_to_design",
|
|
|
+ "my_pn_runtime",
|
|
|
+ "my_pn",
|
|
|
+ "transformation_execute",
|
|
|
+ "pn_print",
|
|
|
+ "my_pn",
|
|
|
+ ],
|
|
|
+ [ # bootup phase
|
|
|
+ "Desired username for admin user?",
|
|
|
+ "Welcome to the Model Management Interface v2.0!",
|
|
|
+ "Use the 'help' command for a list of possible commands",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_add
|
|
|
+ "Creating new model!",
|
|
|
+ "Model type?",
|
|
|
+ "Model name?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Model upload success!",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_add
|
|
|
+ "Creating new model!",
|
|
|
+ "Model type?",
|
|
|
+ "Model name?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Model upload success!",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_add
|
|
|
+ "Creating new model!",
|
|
|
+ "Model type?",
|
|
|
+ "Model name?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Model upload success!",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_list
|
|
|
+ set([" SimpleClassDiagrams : SimpleClassDiagrams",
|
|
|
+ " CoreFormalism : SimpleClassDiagrams",
|
|
|
+ " PetriNets : SimpleClassDiagrams",
|
|
|
+ " my_pn : PetriNets",
|
|
|
+ " PetriNets_Runtime : SimpleClassDiagrams",
|
|
|
+ " core : CoreFormalism"]),
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT_language
|
|
|
+ "Formalisms to include (terminate with empty string)?",
|
|
|
+ "Name of the RAMified transformation metamodel?",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_list
|
|
|
+ set([" SimpleClassDiagrams : SimpleClassDiagrams",
|
|
|
+ " CoreFormalism : SimpleClassDiagrams",
|
|
|
+ " PetriNets_Runtime : SimpleClassDiagrams",
|
|
|
+ " PetriNets : SimpleClassDiagrams",
|
|
|
+ " __merged_PetriNets_RAM : SimpleClassDiagrams",
|
|
|
+ " PetriNets_RAM : SimpleClassDiagrams",
|
|
|
+ " my_pn : PetriNets",
|
|
|
+ " core : CoreFormalism"]),
|
|
|
+ "Ready for command...",
|
|
|
+ # model_modify
|
|
|
+ "Which model do you want to modify?",
|
|
|
+ "Model loaded, ready for commands!",
|
|
|
+ "Use 'help' command for a list of possible commands",
|
|
|
+ "Please give your command.",
|
|
|
+ # instantiate 1
|
|
|
+ "Type to instantiate?",
|
|
|
+ "Name of new element?",
|
|
|
+ "Source name?",
|
|
|
+ "Destination name?",
|
|
|
+ "Instantiation successful!",
|
|
|
+ "Please give your command.",
|
|
|
+ # instantiate 2
|
|
|
+ "Type to instantiate?",
|
|
|
+ "Name of new element?",
|
|
|
+ "Source name?",
|
|
|
+ "Destination name?",
|
|
|
+ "Instantiation successful!",
|
|
|
+ "Please give your command.",
|
|
|
+ # instantiate 3
|
|
|
+ "Type to instantiate?",
|
|
|
+ "Name of new element?",
|
|
|
+ "Source name?",
|
|
|
+ "Destination name?",
|
|
|
+ "Instantiation successful!",
|
|
|
+ "Please give your command.",
|
|
|
+ # instantiate 4
|
|
|
+ "Type to instantiate?",
|
|
|
+ "Name of new element?",
|
|
|
+ "Source name?",
|
|
|
+ "Destination name?",
|
|
|
+ "Instantiation successful!",
|
|
|
+ "Please give your command.",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_RAMify
|
|
|
+ "Which metamodel do you want to RAMify?",
|
|
|
+ "Where do you want to store the RAMified metamodel?",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT
|
|
|
+ "RAMified metamodel to use?",
|
|
|
+ "Supported metamodels:",
|
|
|
+ set([" PetriNets",
|
|
|
+ " PetriNets_Runtime",
|
|
|
+ ]),
|
|
|
+ "",
|
|
|
+ "Which ones do you want to use as source (empty string to finish)?",
|
|
|
+ "Model added as source",
|
|
|
+ "Which ones do you want to use as target (empty string to finish)?",
|
|
|
+ "Model added as target",
|
|
|
+ "Name of new transformation?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT
|
|
|
+ "RAMified metamodel to use?",
|
|
|
+ "Supported metamodels:",
|
|
|
+ set([" PetriNets",
|
|
|
+ " PetriNets_Runtime",
|
|
|
+ ]),
|
|
|
+ "",
|
|
|
+ "Which ones do you want to use as source (empty string to finish)?",
|
|
|
+ "Model added as source",
|
|
|
+ "Which ones do you want to use as target (empty string to finish)?",
|
|
|
+ "Model added as target",
|
|
|
+ "Name of new transformation?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT
|
|
|
+ "RAMified metamodel to use?",
|
|
|
+ "Supported metamodels:",
|
|
|
+ set([" PetriNets",
|
|
|
+ " PetriNets_Runtime",
|
|
|
+ ]),
|
|
|
+ "",
|
|
|
+ "Which ones do you want to use as source (empty string to finish)?",
|
|
|
+ "Model added as source",
|
|
|
+ "Which ones do you want to use as target (empty string to finish)?",
|
|
|
+ "Model added as target",
|
|
|
+ "Name of new transformation?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_add_MT
|
|
|
+ "RAMified metamodel to use?",
|
|
|
+ "Supported metamodels:",
|
|
|
+ set([" PetriNets",
|
|
|
+ " PetriNets_Runtime",
|
|
|
+ ]),
|
|
|
+ "",
|
|
|
+ "Which ones do you want to use as source (empty string to finish)?",
|
|
|
+ "Model added as source",
|
|
|
+ "Which ones do you want to use as target (empty string to finish)?",
|
|
|
+ "Name of new transformation?",
|
|
|
+ "Waiting for model constructors...",
|
|
|
+ "Ready for command...",
|
|
|
+ # model_list
|
|
|
+ set([" SimpleClassDiagrams : SimpleClassDiagrams",
|
|
|
+ " CoreFormalism : SimpleClassDiagrams",
|
|
|
+ " PetriNets_Runtime : SimpleClassDiagrams",
|
|
|
+ " PetriNets : SimpleClassDiagrams",
|
|
|
+ " pn_print : PetriNets_RAM",
|
|
|
+ " pn_design_to_runtime : PetriNets_RAM",
|
|
|
+ " pn_runtime_to_design : PetriNets_RAM",
|
|
|
+ " pn_step : PetriNets_RAM",
|
|
|
+ " __merged_PetriNets_RAM : SimpleClassDiagrams",
|
|
|
+ " PetriNets_RAM : SimpleClassDiagrams",
|
|
|
+ " my_pn : PetriNets",
|
|
|
+ " core : CoreFormalism"]),
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_list
|
|
|
+ set(["[ModelTransformation] pn_print : PetriNets_RAM",
|
|
|
+ "[ModelTransformation] pn_design_to_runtime : PetriNets_RAM",
|
|
|
+ "[ModelTransformation] pn_runtime_to_design : PetriNets_RAM",
|
|
|
+ "[ModelTransformation] pn_step : PetriNets_RAM"]),
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_print)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets",
|
|
|
+ set(['"p1" --> 1',
|
|
|
+ '"p2" --> 2',
|
|
|
+ '"p3" --> 3',
|
|
|
+ ]),
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_design_to_runtime)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets",
|
|
|
+ "Which model to create for target element PetriNets_Runtime",
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_step)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets_Runtime",
|
|
|
+ "Which model to create for target element PetriNets_Runtime",
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_runtime_to_design)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets_Runtime",
|
|
|
+ "Which model to create for target element PetriNets",
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ # transformation_execute (pn_print)
|
|
|
+ "Which transformation do you want to execute?",
|
|
|
+ "Which model to bind for source element PetriNets",
|
|
|
+ set(['"p1" --> 0',
|
|
|
+ '"p2" --> 1',
|
|
|
+ '"p3" --> 5',
|
|
|
+ ]),
|
|
|
+ "Transformation executed with result: True",
|
|
|
+ "Ready for command...",
|
|
|
+ ],
|
|
|
+ mode))
|