1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 # Test for neo model saving and loading.
22 var test_id
= "NIT_TESTING_ID".environ
23 var test_name
= "test_{test_id}"
26 var toolcontext
= new ToolContext
27 toolcontext
.tooldescription
= "Usage: neo_saver host port files..."
28 toolcontext
.process_options
(args
)
29 var arguments
= toolcontext
.option_context
.rest
31 if arguments
.length
< 3 then
36 var host
= arguments
.shift
37 var port
= arguments
.shift
38 var url
= "http://{host}:{port}"
41 toolcontext
.info
("Parse files...", 1)
42 var org_model
= new Model
43 var modelbuilder
= new ModelBuilder(org_model
, toolcontext
)
44 modelbuilder
.parse
(arguments
)
45 modelbuilder
.run_phases
47 toolcontext
.info
("Open connection to neo4j on {url} for saving...", 1)
48 var save_client
= new Neo4jClient(url
)
49 var save_model
= new NeoModel(test_name
, toolcontext
, save_client
)
50 save_model
.save
(org_model
)
52 toolcontext
.info
("Open connection to neo4j on {url} for reading...", 1)
53 var read_client
= new Neo4jClient(url
)
54 var neo_model
= new Model
55 var read_model
= new NeoModel(test_name
, toolcontext
, read_client
)
56 read_model
.load
(neo_model
)
59 var sorter
= new MEntityNameSorter
62 var org_mpackages
= org_model
.mpackages
.to_a
63 sorter
.sort org_mpackages
64 print org_mpackages
.join
(" ")
65 print
"------------------------------------"
66 var neo_mpackages
= neo_model
.mpackages
.to_a
67 sorter
.sort neo_mpackages
68 print neo_mpackages
.join
(" ")
71 var org_mmodules
= org_model
.mmodules
.to_a
72 sorter
.sort org_mmodules
73 print org_mmodules
.join
(" ")
74 print
"------------------------------------"
75 var neo_mmodules
= neo_model
.mmodules
.to_a
76 sorter
.sort neo_mmodules
77 print neo_mmodules
.join
(" ")
80 var org_mclasses
= org_model
.mclasses
.to_a
81 sorter
.sort org_mclasses
82 print org_mclasses
.join
(" ")
83 print
"------------------------------------"
84 var neo_mclasses
= neo_model
.mclasses
.to_a
85 sorter
.sort neo_mclasses
86 print neo_mclasses
.join
(" ")
88 print
"\n# mproperties:"
89 var org_mproperties
= org_model
.mproperties
.to_a
90 sorter
.sort org_mproperties
91 print org_mproperties
.join
(" ")
92 print
"------------------------------------"
93 var neo_mproperties
= neo_model
.mproperties
.to_a
94 sorter
.sort neo_mproperties
95 print neo_mproperties
.join
(" ")
97 print
"\n# msignatures:"
98 for org_mprop
in org_mproperties
do
99 if not org_mprop
isa MMethod then continue
100 print
"{org_mprop.name}{org_mprop.intro.msignature or else ""}"
102 print
"------------------------------------"
103 for neo_mprop
in neo_mproperties
do
104 if not neo_mprop
isa MMethod then continue
105 print
"{neo_mprop.name}{neo_mprop.intro.msignature or else ""}"