@cparra/apex-reflection 0.1.0-alpha.0 → 0.1.1-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/end-to-end.test.ts +256 -0
- package/coverage/clover.xml +12857 -0
- package/coverage/coverage-final.json +3 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +79 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +126 -0
- package/coverage/lcov-report/index.js.html +104 -0
- package/coverage/lcov-report/out.js.html +41126 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +170 -0
- package/coverage/lcov.info +24801 -0
- package/index.d.ts +118 -0
- package/index.js +8 -0
- package/index.ts +141 -0
- package/jest.config.js +11 -0
- package/out.js +13708 -0
- package/package.json +22 -17
- package/tsconfig.json +5 -3
- package/.idea/apexdocs-dart.iml +0 -18
- package/.idea/jsLibraryMappings.xml +0 -6
- package/.idea/libraries/Dart_Packages.xml +0 -556
- package/.idea/libraries/Dart_SDK.xml +0 -28
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/runConfigurations/_template__of_Dart_Test.xml +0 -6
- package/.idea/vcs.xml +0 -6
- package/CHANGELOG.md +0 -3
- package/README.md +0 -26
- package/TODO.md +0 -5
- package/analysis_options.yaml +0 -30
- package/antlr4-4.9.2/CHANGELOG.md +0 -4
- package/antlr4-4.9.2/LICENSE +0 -52
- package/antlr4-4.9.2/README.md +0 -11
- package/antlr4-4.9.2/analysis_options.yaml +0 -1
- package/antlr4-4.9.2/lib/antlr4.dart +0 -21
- package/antlr4-4.9.2/lib/src/atn/atn.dart +0 -18
- package/antlr4-4.9.2/lib/src/atn/src/atn.dart +0 -170
- package/antlr4-4.9.2/lib/src/atn/src/atn_config.dart +0 -242
- package/antlr4-4.9.2/lib/src/atn/src/atn_config_set.dart +0 -283
- package/antlr4-4.9.2/lib/src/atn/src/atn_deserializer.dart +0 -809
- package/antlr4-4.9.2/lib/src/atn/src/atn_simulator.dart +0 -95
- package/antlr4-4.9.2/lib/src/atn/src/atn_state.dart +0 -296
- package/antlr4-4.9.2/lib/src/atn/src/atn_type.dart +0 -14
- package/antlr4-4.9.2/lib/src/atn/src/info.dart +0 -553
- package/antlr4-4.9.2/lib/src/atn/src/lexer_action.dart +0 -601
- package/antlr4-4.9.2/lib/src/atn/src/lexer_action_executor.dart +0 -167
- package/antlr4-4.9.2/lib/src/atn/src/lexer_atn_simulator.dart +0 -731
- package/antlr4-4.9.2/lib/src/atn/src/parser_atn_simulator.dart +0 -2630
- package/antlr4-4.9.2/lib/src/atn/src/profiling_atn_simulator.dart +0 -229
- package/antlr4-4.9.2/lib/src/atn/src/semantic_context.dart +0 -404
- package/antlr4-4.9.2/lib/src/atn/src/transition.dart +0 -305
- package/antlr4-4.9.2/lib/src/dfa/dfa.dart +0 -8
- package/antlr4-4.9.2/lib/src/dfa/src/dfa.dart +0 -138
- package/antlr4-4.9.2/lib/src/dfa/src/dfa_serializer.dart +0 -76
- package/antlr4-4.9.2/lib/src/dfa/src/dfa_state.dart +0 -151
- package/antlr4-4.9.2/lib/src/error/error.dart +0 -10
- package/antlr4-4.9.2/lib/src/error/src/diagnostic_error_listener.dart +0 -116
- package/antlr4-4.9.2/lib/src/error/src/error_listener.dart +0 -241
- package/antlr4-4.9.2/lib/src/error/src/error_strategy.dart +0 -902
- package/antlr4-4.9.2/lib/src/error/src/errors.dart +0 -204
- package/antlr4-4.9.2/lib/src/input_stream.dart +0 -335
- package/antlr4-4.9.2/lib/src/interval_set.dart +0 -735
- package/antlr4-4.9.2/lib/src/lexer.dart +0 -343
- package/antlr4-4.9.2/lib/src/ll1_analyzer.dart +0 -204
- package/antlr4-4.9.2/lib/src/misc/multi_map.dart +0 -32
- package/antlr4-4.9.2/lib/src/misc/pair.dart +0 -34
- package/antlr4-4.9.2/lib/src/parser.dart +0 -777
- package/antlr4-4.9.2/lib/src/parser_interpreter.dart +0 -393
- package/antlr4-4.9.2/lib/src/parser_rule_context.dart +0 -275
- package/antlr4-4.9.2/lib/src/prediction_context.dart +0 -877
- package/antlr4-4.9.2/lib/src/recognizer.dart +0 -182
- package/antlr4-4.9.2/lib/src/rule_context.dart +0 -192
- package/antlr4-4.9.2/lib/src/runtime_meta_data.dart +0 -188
- package/antlr4-4.9.2/lib/src/token.dart +0 -431
- package/antlr4-4.9.2/lib/src/token_factory.dart +0 -88
- package/antlr4-4.9.2/lib/src/token_source.dart +0 -241
- package/antlr4-4.9.2/lib/src/token_stream.dart +0 -627
- package/antlr4-4.9.2/lib/src/tree/src/pattern/chunk.dart +0 -90
- package/antlr4-4.9.2/lib/src/tree/src/pattern/parse_tree_match.dart +0 -635
- package/antlr4-4.9.2/lib/src/tree/src/tree.dart +0 -370
- package/antlr4-4.9.2/lib/src/tree/src/trees.dart +0 -226
- package/antlr4-4.9.2/lib/src/tree/tree.dart +0 -10
- package/antlr4-4.9.2/lib/src/util/bit_set.dart +0 -308
- package/antlr4-4.9.2/lib/src/util/murmur_hash.dart +0 -77
- package/antlr4-4.9.2/lib/src/util/utils.dart +0 -31
- package/antlr4-4.9.2/lib/src/vocabulary.dart +0 -254
- package/antlr4-4.9.2/pubspec.yaml +0 -13
- package/example/node_example/index.js +0 -8
- package/example/node_example/package.json +0 -12
- package/example/node_example_ts/package-lock.json +0 -70
- package/example/node_example_ts/package.json +0 -19
- package/example/node_example_ts/src/index.js +0 -5
- package/example/node_example_ts/src/index.ts +0 -9
- package/example/node_example_ts/tsconfig.json +0 -79
- package/js/dart2jsout.js +0 -25898
- package/js/dart2jsout.js.map +0 -16
- package/js/index.d.ts +0 -1
- package/js/index.js +0 -4
- package/js/out.js +0 -26023
- package/js/out.js.map +0 -16
- package/js/package-lock.json +0 -57
- package/js/preamble.js +0 -125
- package/lib/apexdocs_dart.dart +0 -28
- package/lib/src/antlr/grammars/Apexdoc/ApexdocLexer.g4 +0 -120
- package/lib/src/antlr/grammars/Apexdoc/ApexdocParser.g4 +0 -158
- package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.interp +0 -95
- package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.java +0 -238
- package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.tokens +0 -23
- package/lib/src/antlr/grammars/apex/ApexLexer.g4 +0 -255
- package/lib/src/antlr/grammars/apex/ApexParser.g4 +0 -567
- package/lib/src/antlr/grammars/apex/examples/ApexClass.cls +0 -6
- package/lib/src/antlr/lib/apex/ApexLexer.dart +0 -1223
- package/lib/src/antlr/lib/apex/ApexLexer.interp +0 -393
- package/lib/src/antlr/lib/apex/ApexLexer.tokens +0 -212
- package/lib/src/antlr/lib/apex/ApexParser.dart +0 -9349
- package/lib/src/antlr/lib/apex/ApexParser.interp +0 -326
- package/lib/src/antlr/lib/apex/ApexParser.tokens +0 -212
- package/lib/src/antlr/lib/apex/ApexParserBaseListener.dart +0 -1036
- package/lib/src/antlr/lib/apex/ApexParserListener.dart +0 -975
- package/lib/src/antlr/lib/apexdoc/ApexdocLexer.dart +0 -373
- package/lib/src/antlr/lib/apexdoc/ApexdocLexer.interp +0 -95
- package/lib/src/antlr/lib/apexdoc/ApexdocLexer.tokens +0 -23
- package/lib/src/antlr/lib/apexdoc/ApexdocParser.dart +0 -2471
- package/lib/src/antlr/lib/apexdoc/ApexdocParser.interp +0 -69
- package/lib/src/antlr/lib/apexdoc/ApexdocParser.tokens +0 -23
- package/lib/src/antlr/lib/apexdoc/ApexdocParserBaseListener.dart +0 -252
- package/lib/src/antlr/lib/apexdoc/ApexdocParserListener.dart +0 -215
- package/lib/src/builders/builders.dart +0 -32
- package/lib/src/model/apex_file_manifest.dart +0 -37
- package/lib/src/model/apex_file_manifest.g.dart +0 -18
- package/lib/src/model/declaration.dart +0 -50
- package/lib/src/model/doc_comment.dart +0 -117
- package/lib/src/model/doc_comment.g.dart +0 -118
- package/lib/src/model/members.dart +0 -143
- package/lib/src/model/members.g.dart +0 -105
- package/lib/src/model/types.dart +0 -159
- package/lib/src/model/types.g.dart +0 -111
- package/lib/src/service/apex_listener.dart +0 -226
- package/lib/src/service/apexdoc_listener.dart +0 -82
- package/lib/src/service/parsers.dart +0 -33
- package/lib/src/service/utils/parsing/access_modifiers_parser.dart +0 -33
- package/lib/src/service/utils/parsing/parameters_parser.dart +0 -18
- package/lib/src/service/utils/parsing/parsing_utils.dart +0 -2
- package/lib/src/service/walker.dart +0 -82
- package/pubspec.yaml +0 -19
- package/test/apex_file_manifest_test.dart +0 -16
- package/test/apex_listener_test.dart +0 -703
- package/test/apexdoc_parser_test.dart +0 -179
- package/test/doc_comment_test.dart +0 -89
- package/test/members_serialization_test.dart +0 -158
- package/test/members_test.dart +0 -178
- package/test/types_serialization_test.dart +0 -191
- package/test/types_test.dart +0 -311
- package/test/walker_test.dart +0 -58
- package/tool/grind.dart +0 -20
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import 'dart:convert';
|
|
2
|
-
|
|
3
|
-
import 'package:apexdocs_dart/src/model/members.dart';
|
|
4
|
-
import 'package:apexdocs_dart/src/model/types.dart';
|
|
5
|
-
import 'package:test/test.dart';
|
|
6
|
-
|
|
7
|
-
void main() {
|
|
8
|
-
group('Class serialization', () {
|
|
9
|
-
test('Classes can be serialized', () {
|
|
10
|
-
var classModel = ClassModel(
|
|
11
|
-
name: 'ClassName',
|
|
12
|
-
extendedClass: 'ParentClass',
|
|
13
|
-
implementedInterfaces: ['Interface1', 'Interface2'],
|
|
14
|
-
accessModifiers: ['namespaceaccessible', 'public']);
|
|
15
|
-
classModel.addInterface(InterfaceModel(name: 'ChildInterface'));
|
|
16
|
-
classModel.addEnum(EnumModel(name: 'ChildEnum'));
|
|
17
|
-
classModel.addClass(ClassModel(name: 'ChildClass'));
|
|
18
|
-
classModel.addProperty(Property(name: 'Prop1', type: 'String'));
|
|
19
|
-
classModel.addConstructor(
|
|
20
|
-
Constructor(accessModifiers: ['namespaceaccessible', 'public']));
|
|
21
|
-
classModel.addMethod(Method(name: 'doSomething'));
|
|
22
|
-
classModel.addField(Field(name: 'var1', type: 'String'));
|
|
23
|
-
|
|
24
|
-
String encodedClass = jsonEncode(classModel);
|
|
25
|
-
expect(encodedClass, isNotNull);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
test('Classes can be deserialized', () {
|
|
29
|
-
final classAsJson = '''
|
|
30
|
-
{
|
|
31
|
-
"name": "ClassName",
|
|
32
|
-
"extended_class": "ParentClass",
|
|
33
|
-
"implemented_interfaces": [
|
|
34
|
-
"Interface1",
|
|
35
|
-
"Interface2"
|
|
36
|
-
],
|
|
37
|
-
"access_modifiers": [
|
|
38
|
-
"namespaceaccessible",
|
|
39
|
-
"public"
|
|
40
|
-
],
|
|
41
|
-
"fields": [
|
|
42
|
-
{
|
|
43
|
-
"name": "var1",
|
|
44
|
-
"type": "String",
|
|
45
|
-
"access_modifiers": []
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
"constructors": [
|
|
49
|
-
{
|
|
50
|
-
"access_modifiers": [
|
|
51
|
-
"namespaceaccessible",
|
|
52
|
-
"public"
|
|
53
|
-
],
|
|
54
|
-
"parameters": []
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
"properties": [
|
|
58
|
-
{
|
|
59
|
-
"name": "Prop1",
|
|
60
|
-
"type": "String",
|
|
61
|
-
"access_modifiers": []
|
|
62
|
-
}
|
|
63
|
-
],
|
|
64
|
-
"methods": [
|
|
65
|
-
{
|
|
66
|
-
"name": "doSomething",
|
|
67
|
-
"type": "void",
|
|
68
|
-
"access_modifiers": [],
|
|
69
|
-
"parameters": []
|
|
70
|
-
}
|
|
71
|
-
],
|
|
72
|
-
"interfaces": [
|
|
73
|
-
{
|
|
74
|
-
"name": "ChildInterface",
|
|
75
|
-
"extended_interfaces": [],
|
|
76
|
-
"access_modifiers": [],
|
|
77
|
-
"methods": []
|
|
78
|
-
}
|
|
79
|
-
],
|
|
80
|
-
"enums": [
|
|
81
|
-
{
|
|
82
|
-
"name": "ChildEnum",
|
|
83
|
-
"access_modifiers": []
|
|
84
|
-
}
|
|
85
|
-
],
|
|
86
|
-
"classes": [
|
|
87
|
-
{
|
|
88
|
-
"name": "ChildClass",
|
|
89
|
-
"implemented_interfaces": [],
|
|
90
|
-
"access_modifiers": [],
|
|
91
|
-
"fields": [],
|
|
92
|
-
"constructors": [],
|
|
93
|
-
"properties": [],
|
|
94
|
-
"methods": [],
|
|
95
|
-
"interfaces": [],
|
|
96
|
-
"enums": [],
|
|
97
|
-
"classes": []
|
|
98
|
-
}
|
|
99
|
-
]
|
|
100
|
-
}
|
|
101
|
-
''';
|
|
102
|
-
|
|
103
|
-
final classModel = ClassModel.fromJson(jsonDecode(classAsJson));
|
|
104
|
-
expect(classModel.name, equals('ClassName'));
|
|
105
|
-
expect(classModel.extendedClass, equals('ParentClass'));
|
|
106
|
-
expect(classModel.implementedInterfaces,
|
|
107
|
-
equals(['Interface1', 'Interface2']));
|
|
108
|
-
expect(classModel.accessModifiers,
|
|
109
|
-
equals(['namespaceaccessible', 'public']));
|
|
110
|
-
expect(classModel.fields, hasLength(1));
|
|
111
|
-
expect(classModel.properties, hasLength(1));
|
|
112
|
-
expect(classModel.constructors, hasLength(1));
|
|
113
|
-
expect(classModel.methods, hasLength(1));
|
|
114
|
-
expect(classModel.classes, hasLength(1));
|
|
115
|
-
expect(classModel.enums, hasLength(1));
|
|
116
|
-
expect(classModel.interfaces, hasLength(1));
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
group('Interface serialization', () {
|
|
121
|
-
test('Interfaces can be serialized', () {
|
|
122
|
-
var interfaceModel = InterfaceModel(
|
|
123
|
-
name: 'InterfaceName',
|
|
124
|
-
extendedInterfaces: ['Interface1', 'Interface2'],
|
|
125
|
-
accessModifiers: ['namespaceaccessible', 'public']);
|
|
126
|
-
interfaceModel.addMethod(Method(name: 'doSomething'));
|
|
127
|
-
|
|
128
|
-
String encodedClass = jsonEncode(interfaceModel);
|
|
129
|
-
expect(encodedClass, isNotNull);
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
test('Interfaces can be deserialized', () {
|
|
133
|
-
final interfaceAsJson = '''
|
|
134
|
-
{
|
|
135
|
-
"name": "InterfaceName",
|
|
136
|
-
"extended_interfaces": [
|
|
137
|
-
"Interface1",
|
|
138
|
-
"Interface2"
|
|
139
|
-
],
|
|
140
|
-
"access_modifiers": [
|
|
141
|
-
"namespaceaccessible",
|
|
142
|
-
"public"
|
|
143
|
-
],
|
|
144
|
-
"methods": [
|
|
145
|
-
{
|
|
146
|
-
"name": "doSomething",
|
|
147
|
-
"type": "void",
|
|
148
|
-
"access_modifiers": [],
|
|
149
|
-
"parameters": []
|
|
150
|
-
}
|
|
151
|
-
]
|
|
152
|
-
}
|
|
153
|
-
''';
|
|
154
|
-
|
|
155
|
-
final interfaceModel =
|
|
156
|
-
InterfaceModel.fromJson(jsonDecode(interfaceAsJson));
|
|
157
|
-
expect(interfaceModel.name, equals('InterfaceName'));
|
|
158
|
-
expect(interfaceModel.accessModifiers,
|
|
159
|
-
equals(['namespaceaccessible', 'public']));
|
|
160
|
-
expect(interfaceModel.methods, hasLength(1));
|
|
161
|
-
expect(interfaceModel.methods.first.name, 'doSomething');
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
group('Enum serialization', () {
|
|
166
|
-
test('Enums can be serialized', () {
|
|
167
|
-
var enumModel = EnumModel(
|
|
168
|
-
name: 'EnumName', accessModifiers: ['namespaceaccessible', 'public']);
|
|
169
|
-
|
|
170
|
-
String encodedEnum = jsonEncode(enumModel);
|
|
171
|
-
expect(encodedEnum, isNotNull);
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
test('Fields can be deserialized', () {
|
|
175
|
-
final enumAsJson = '''
|
|
176
|
-
{
|
|
177
|
-
"name": "EnumName",
|
|
178
|
-
"access_modifiers": [
|
|
179
|
-
"namespaceaccessible",
|
|
180
|
-
"public"
|
|
181
|
-
]
|
|
182
|
-
}
|
|
183
|
-
''';
|
|
184
|
-
|
|
185
|
-
final enumModel = EnumModel.fromJson(jsonDecode(enumAsJson));
|
|
186
|
-
expect(enumModel.name, equals('EnumName'));
|
|
187
|
-
expect(
|
|
188
|
-
enumModel.accessModifiers, equals(['namespaceaccessible', 'public']));
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
}
|
package/test/types_test.dart
DELETED
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
import 'package:apexdocs_dart/src/model/members.dart';
|
|
2
|
-
import 'package:test/test.dart';
|
|
3
|
-
|
|
4
|
-
import 'package:apexdocs_dart/src/model/types.dart';
|
|
5
|
-
|
|
6
|
-
void main() {
|
|
7
|
-
group('Class Model Tests', () {
|
|
8
|
-
test('Has a name', () {
|
|
9
|
-
final expectedClassName = 'ClassName';
|
|
10
|
-
final classModel = ClassModel(name: expectedClassName);
|
|
11
|
-
expect(classModel.name, expectedClassName);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
test('Does not have access modifiers by default', () {
|
|
15
|
-
final classModel = ClassModel(name: 'AnyName');
|
|
16
|
-
expect(classModel.accessModifiers.length, 0);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test('Can receive access modifiers', () {
|
|
20
|
-
final classModel =
|
|
21
|
-
ClassModel(name: 'AnyName', accessModifiers: ['public']);
|
|
22
|
-
expect(classModel.accessModifiers.length, 1);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
test('Does not have doc comments by default', () {
|
|
26
|
-
final classModel = ClassModel(name: 'AnyName');
|
|
27
|
-
expect(classModel.rawDocComment, isNull);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test('Can receive doc comments', () {
|
|
31
|
-
final classModel = ClassModel(
|
|
32
|
-
name: 'AnyName', docComment: '@description Some description');
|
|
33
|
-
expect(classModel.rawDocComment, isNotNull);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test('Does not extend another class by default', () {
|
|
37
|
-
final classModel = ClassModel(name: 'AnyName');
|
|
38
|
-
expect(classModel.extendedClass, null);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
test('Can extend another class', () {
|
|
42
|
-
final classModel =
|
|
43
|
-
ClassModel(name: 'AnyName', extendedClass: 'ParentClass');
|
|
44
|
-
expect(classModel.extendedClass, 'ParentClass');
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
test('Does not implement interfaces by default', () {
|
|
48
|
-
final classModel = ClassModel(name: 'AnyName');
|
|
49
|
-
expect(classModel.implementedInterfaces.length, 0);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
test('Can implement interfaces', () {
|
|
53
|
-
final classModel = ClassModel(
|
|
54
|
-
name: 'AnyName', implementedInterfaces: ['InterfaceA', 'InterfaceB']);
|
|
55
|
-
expect(classModel.implementedInterfaces.length, 2);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
test('Can determine if is private', () {
|
|
59
|
-
final classModel =
|
|
60
|
-
ClassModel(name: 'AnyName', accessModifiers: ['private']);
|
|
61
|
-
expect(classModel.isPrivate, isTrue);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
test('Can determine if is public', () {
|
|
65
|
-
final classModel =
|
|
66
|
-
ClassModel(name: 'AnyName', accessModifiers: ['public']);
|
|
67
|
-
expect(classModel.isPublic, isTrue);
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
test('Can determine if is global', () {
|
|
71
|
-
final classModel =
|
|
72
|
-
ClassModel(name: 'AnyName', accessModifiers: ['global']);
|
|
73
|
-
expect(classModel.isGlobal, isTrue);
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
test('Can determine if is protected', () {
|
|
77
|
-
final classModel =
|
|
78
|
-
ClassModel(name: 'AnyName', accessModifiers: ['protected']);
|
|
79
|
-
expect(classModel.isProtected, isTrue);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
test('Can determine if is virtual', () {
|
|
83
|
-
final classModel =
|
|
84
|
-
ClassModel(name: 'AnyName', accessModifiers: ['public', 'virtual']);
|
|
85
|
-
expect(classModel.isVirtual, isTrue);
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
test('Can determine if is NamespaceAccessible', () {
|
|
89
|
-
final classModel =
|
|
90
|
-
ClassModel(name: 'AnyName', accessModifiers: ['namespaceaccessible']);
|
|
91
|
-
expect(classModel.isNamespaceAccessible, isTrue);
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
test('Can determine if is test', () {
|
|
95
|
-
final classModel =
|
|
96
|
-
ClassModel(name: 'AnyName', accessModifiers: ['istest']);
|
|
97
|
-
expect(classModel.isTest, isTrue);
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
test('Can determine if is deprecated', () {
|
|
101
|
-
final classModel =
|
|
102
|
-
ClassModel(name: 'AnyName', accessModifiers: ['deprecated']);
|
|
103
|
-
expect(classModel.isDeprecated, isTrue);
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
test('Does not have any properties by default', () {
|
|
107
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
108
|
-
expect(classModel.properties.isEmpty, isTrue);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
test('Can have a list of properties', () {
|
|
112
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
113
|
-
var property1 = Property(name: 'Prop1', type: 'String');
|
|
114
|
-
var property2 = Property(name: 'Prop2', type: 'String');
|
|
115
|
-
|
|
116
|
-
classModel.addProperty(property1);
|
|
117
|
-
classModel.addProperty(property2);
|
|
118
|
-
|
|
119
|
-
expect(classModel.properties.length, equals(2));
|
|
120
|
-
expect(classModel.properties.contains(property1), isTrue);
|
|
121
|
-
expect(classModel.properties.contains(property2), isTrue);
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
test('Does not have any fields by default', () {
|
|
125
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
126
|
-
expect(classModel.fields.isEmpty, isTrue);
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
test('Can have a list of fields', () {
|
|
130
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
131
|
-
var field1 = Field(name: 'Field1', type: 'String');
|
|
132
|
-
var field2 = Field(name: 'Field2', type: 'String');
|
|
133
|
-
|
|
134
|
-
classModel.addField(field1);
|
|
135
|
-
classModel.addField(field2);
|
|
136
|
-
|
|
137
|
-
expect(classModel.fields.length, equals(2));
|
|
138
|
-
expect(classModel.fields.contains(field1), isTrue);
|
|
139
|
-
expect(classModel.fields.contains(field2), isTrue);
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
test('Can have a list of methods', () {
|
|
143
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
144
|
-
var method1 = Method(name: 'method1', type: 'String');
|
|
145
|
-
var method2 = Method(name: 'method2', type: 'String');
|
|
146
|
-
|
|
147
|
-
classModel.addMethod(method1);
|
|
148
|
-
classModel.addMethod(method2);
|
|
149
|
-
|
|
150
|
-
expect(classModel.methods.length, equals(2));
|
|
151
|
-
expect(classModel.methods.contains(method1), isTrue);
|
|
152
|
-
expect(classModel.methods.contains(method2), isTrue);
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
test('Has no constructor by default', () {
|
|
156
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
157
|
-
expect(classModel.constructors, isEmpty);
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
test('Can receive a constructor', () {
|
|
161
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
162
|
-
var constructor = Constructor();
|
|
163
|
-
classModel.addConstructor(constructor);
|
|
164
|
-
expect(classModel.constructors.length, equals(1));
|
|
165
|
-
expect(classModel.constructors.first, equals(constructor));
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
test('Do not have inner enums by default', () {
|
|
169
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
170
|
-
expect(classModel.enums.length, equals(0));
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
test('Can have inner enums', () {
|
|
174
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
175
|
-
var innerEnum = EnumModel(name: 'AnyEnumName');
|
|
176
|
-
classModel.addEnum(innerEnum);
|
|
177
|
-
expect(classModel.enums.length, equals(1));
|
|
178
|
-
expect(classModel.enums.first, equals(innerEnum));
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
test('Do not have inner interfaces by default', () {
|
|
182
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
183
|
-
expect(classModel.interfaces.length, equals(0));
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
test('Can have inner interfaces', () {
|
|
187
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
188
|
-
var innerInterface = InterfaceModel(name: 'AnyEnumName');
|
|
189
|
-
classModel.addInterface(innerInterface);
|
|
190
|
-
expect(classModel.interfaces.length, equals(1));
|
|
191
|
-
expect(classModel.interfaces.first, equals(innerInterface));
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
test('Do not have inner classes by default', () {
|
|
195
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
196
|
-
expect(classModel.classes.length, equals(0));
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
test('Can have inner classes', () {
|
|
200
|
-
var classModel = ClassModel(name: 'AnyName');
|
|
201
|
-
var innerClass = ClassModel(name: 'InnerClass');
|
|
202
|
-
classModel.addClass(innerClass);
|
|
203
|
-
expect(classModel.classes.length, equals(1));
|
|
204
|
-
expect(classModel.classes.first, equals(innerClass));
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
group('Interface Model Tests', () {
|
|
209
|
-
test('Has a name', () {
|
|
210
|
-
final expectedClassName = 'ClassName';
|
|
211
|
-
final interfaceModel = InterfaceModel(name: expectedClassName);
|
|
212
|
-
expect(interfaceModel.name, expectedClassName);
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
test('Does not have doc comments by default', () {
|
|
216
|
-
final interfaceModel = InterfaceModel(name: 'AnyName');
|
|
217
|
-
expect(interfaceModel.rawDocComment, isNull);
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
test('Can receive doc comments', () {
|
|
221
|
-
final interfaceModel = InterfaceModel(
|
|
222
|
-
name: 'AnyName', docComment: '@description Some description');
|
|
223
|
-
expect(interfaceModel.rawDocComment, isNotNull);
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
test('Does not have access modifiers by default', () {
|
|
227
|
-
final interfaceModel = InterfaceModel(name: 'AnyName');
|
|
228
|
-
expect(interfaceModel.accessModifiers.length, 0);
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
test('Can receive access modifiers', () {
|
|
232
|
-
final interfaceModel =
|
|
233
|
-
InterfaceModel(name: 'AnyName', accessModifiers: ['public']);
|
|
234
|
-
expect(interfaceModel.accessModifiers.length, 1);
|
|
235
|
-
});
|
|
236
|
-
|
|
237
|
-
test('Does not extend another interface by default', () {
|
|
238
|
-
final interfaceModel = InterfaceModel(name: 'AnyName');
|
|
239
|
-
expect(interfaceModel.extendedInterfaces, isEmpty);
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
test('Can extend other interfaces', () {
|
|
243
|
-
final interfaceModel = InterfaceModel(
|
|
244
|
-
name: 'AnyName', extendedInterfaces: ['Interface1', 'Interface2']);
|
|
245
|
-
expect(interfaceModel.extendedInterfaces, isNotEmpty);
|
|
246
|
-
expect(interfaceModel.extendedInterfaces[0], 'Interface1');
|
|
247
|
-
expect(interfaceModel.extendedInterfaces[1], 'Interface2');
|
|
248
|
-
});
|
|
249
|
-
|
|
250
|
-
test('Can determine if is private', () {
|
|
251
|
-
final interfaceModel =
|
|
252
|
-
InterfaceModel(name: 'AnyName', accessModifiers: ['private']);
|
|
253
|
-
expect(interfaceModel.isPrivate, isTrue);
|
|
254
|
-
});
|
|
255
|
-
|
|
256
|
-
test('Can determine if is public', () {
|
|
257
|
-
final interfaceModel =
|
|
258
|
-
InterfaceModel(name: 'AnyName', accessModifiers: ['public']);
|
|
259
|
-
expect(interfaceModel.isPublic, isTrue);
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
test('Can determine if is global', () {
|
|
263
|
-
final interfaceModel =
|
|
264
|
-
InterfaceModel(name: 'AnyName', accessModifiers: ['global']);
|
|
265
|
-
expect(interfaceModel.isGlobal, isTrue);
|
|
266
|
-
});
|
|
267
|
-
|
|
268
|
-
test('Can determine if is protected', () {
|
|
269
|
-
final interfaceModel =
|
|
270
|
-
InterfaceModel(name: 'AnyName', accessModifiers: ['protected']);
|
|
271
|
-
expect(interfaceModel.isProtected, isTrue);
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
test('Can determine if is virtual', () {
|
|
275
|
-
final interfaceModel = InterfaceModel(
|
|
276
|
-
name: 'AnyName', accessModifiers: ['public', 'virtual']);
|
|
277
|
-
expect(interfaceModel.isVirtual, isTrue);
|
|
278
|
-
});
|
|
279
|
-
|
|
280
|
-
test('Can determine if is NamespaceAccessible', () {
|
|
281
|
-
final interfaceModel = InterfaceModel(
|
|
282
|
-
name: 'AnyName', accessModifiers: ['namespaceaccessible']);
|
|
283
|
-
expect(interfaceModel.isNamespaceAccessible, isTrue);
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
test('Can determine if is test', () {
|
|
287
|
-
final interfaceModel =
|
|
288
|
-
InterfaceModel(name: 'AnyName', accessModifiers: ['istest']);
|
|
289
|
-
expect(interfaceModel.isTest, isTrue);
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
test('Can determine if is deprecated', () {
|
|
293
|
-
final interfaceModel =
|
|
294
|
-
InterfaceModel(name: 'AnyName', accessModifiers: ['deprecated']);
|
|
295
|
-
expect(interfaceModel.isDeprecated, isTrue);
|
|
296
|
-
});
|
|
297
|
-
|
|
298
|
-
test('Can have a list of methods', () {
|
|
299
|
-
var interfaceModel = InterfaceModel(name: 'AnyName');
|
|
300
|
-
var method1 = Method(name: 'method1', type: 'String');
|
|
301
|
-
var method2 = Method(name: 'method2', type: 'String');
|
|
302
|
-
|
|
303
|
-
interfaceModel.addMethod(method1);
|
|
304
|
-
interfaceModel.addMethod(method2);
|
|
305
|
-
|
|
306
|
-
expect(interfaceModel.methods.length, equals(2));
|
|
307
|
-
expect(interfaceModel.methods.contains(method1), isTrue);
|
|
308
|
-
expect(interfaceModel.methods.contains(method2), isTrue);
|
|
309
|
-
});
|
|
310
|
-
});
|
|
311
|
-
}
|
package/test/walker_test.dart
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
// Disabling null safety since this test relies on the antrl4 package
|
|
2
|
-
// @dart=2.10
|
|
3
|
-
|
|
4
|
-
import 'package:antlr4/antlr4.dart';
|
|
5
|
-
import 'package:apexdocs_dart/src/antlr/lib/apex/ApexLexer.dart';
|
|
6
|
-
import 'package:apexdocs_dart/src/antlr/lib/apex/ApexParser.dart';
|
|
7
|
-
import 'package:test/test.dart';
|
|
8
|
-
|
|
9
|
-
import 'package:apexdocs_dart/src/antlr/lib/apex/ApexParserBaseListener.dart';
|
|
10
|
-
import 'package:apexdocs_dart/src/service/walker.dart';
|
|
11
|
-
|
|
12
|
-
class TestListener extends ParseTreeListener {
|
|
13
|
-
int enterEveryRuleCalled = 0;
|
|
14
|
-
|
|
15
|
-
@override
|
|
16
|
-
void enterEveryRule(ParserRuleContext ctx) {
|
|
17
|
-
enterEveryRuleCalled++;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@override
|
|
21
|
-
void exitEveryRule(ParserRuleContext _) {}
|
|
22
|
-
|
|
23
|
-
@override
|
|
24
|
-
void visitErrorNode(ErrorNode _) {}
|
|
25
|
-
|
|
26
|
-
@override
|
|
27
|
-
void visitTerminal(TerminalNode _) {}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
class TestDefinition extends WalkerDefinition {
|
|
31
|
-
final ParseTreeListener listener;
|
|
32
|
-
|
|
33
|
-
TestDefinition(this.listener);
|
|
34
|
-
|
|
35
|
-
@override
|
|
36
|
-
Lexer getLexer(InputStream input) {
|
|
37
|
-
return ApexLexer(input);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@override
|
|
41
|
-
ParserRuleContext initializeTree(TokenStream stream) {
|
|
42
|
-
return ApexParser(stream).compilationUnit();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@override
|
|
46
|
-
ParseTreeListener getListener() {
|
|
47
|
-
return listener;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
void main() {
|
|
52
|
-
test('Walks through the input', () {
|
|
53
|
-
var listener = TestListener();
|
|
54
|
-
Walker.walk(
|
|
55
|
-
InputStream.fromString('class MyClass{}'), TestDefinition(listener));
|
|
56
|
-
expect(listener.enterEveryRuleCalled, greaterThan(0));
|
|
57
|
-
});
|
|
58
|
-
}
|
package/tool/grind.dart
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import 'dart:io';
|
|
2
|
-
|
|
3
|
-
import 'package:grinder/grinder.dart';
|
|
4
|
-
|
|
5
|
-
main(args) => grind(args);
|
|
6
|
-
|
|
7
|
-
@Task('Converts Dart code to Node compatible JS code')
|
|
8
|
-
toJs() async {
|
|
9
|
-
log("Converting to JS");
|
|
10
|
-
final file = FilePath('./lib/apexdocs_dart.dart');
|
|
11
|
-
const outputDir = './js';
|
|
12
|
-
const compiledOutputJsPath = '$outputDir/dart2jsout.js';
|
|
13
|
-
Dart2js.compile(file.asFile, outFile: FilePath(compiledOutputJsPath).asFile);
|
|
14
|
-
|
|
15
|
-
final preambleContents = await File('$outputDir/preamble.js').readAsString();
|
|
16
|
-
final nodeOutputFile = File('$outputDir/out.js');
|
|
17
|
-
nodeOutputFile.writeAsString(preambleContents, mode: FileMode.write);
|
|
18
|
-
final compiledJsContents = await File(compiledOutputJsPath).readAsString();
|
|
19
|
-
nodeOutputFile.writeAsString(compiledJsContents, mode: FileMode.append);
|
|
20
|
-
}
|