@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.
Files changed (158) hide show
  1. package/__tests__/end-to-end.test.ts +256 -0
  2. package/coverage/clover.xml +12857 -0
  3. package/coverage/coverage-final.json +3 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +79 -0
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +126 -0
  8. package/coverage/lcov-report/index.js.html +104 -0
  9. package/coverage/lcov-report/out.js.html +41126 -0
  10. package/coverage/lcov-report/prettify.css +1 -0
  11. package/coverage/lcov-report/prettify.js +2 -0
  12. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  13. package/coverage/lcov-report/sorter.js +170 -0
  14. package/coverage/lcov.info +24801 -0
  15. package/index.d.ts +118 -0
  16. package/index.js +8 -0
  17. package/index.ts +141 -0
  18. package/jest.config.js +11 -0
  19. package/out.js +13708 -0
  20. package/package.json +22 -17
  21. package/tsconfig.json +5 -3
  22. package/.idea/apexdocs-dart.iml +0 -18
  23. package/.idea/jsLibraryMappings.xml +0 -6
  24. package/.idea/libraries/Dart_Packages.xml +0 -556
  25. package/.idea/libraries/Dart_SDK.xml +0 -28
  26. package/.idea/misc.xml +0 -6
  27. package/.idea/modules.xml +0 -8
  28. package/.idea/runConfigurations/_template__of_Dart_Test.xml +0 -6
  29. package/.idea/vcs.xml +0 -6
  30. package/CHANGELOG.md +0 -3
  31. package/README.md +0 -26
  32. package/TODO.md +0 -5
  33. package/analysis_options.yaml +0 -30
  34. package/antlr4-4.9.2/CHANGELOG.md +0 -4
  35. package/antlr4-4.9.2/LICENSE +0 -52
  36. package/antlr4-4.9.2/README.md +0 -11
  37. package/antlr4-4.9.2/analysis_options.yaml +0 -1
  38. package/antlr4-4.9.2/lib/antlr4.dart +0 -21
  39. package/antlr4-4.9.2/lib/src/atn/atn.dart +0 -18
  40. package/antlr4-4.9.2/lib/src/atn/src/atn.dart +0 -170
  41. package/antlr4-4.9.2/lib/src/atn/src/atn_config.dart +0 -242
  42. package/antlr4-4.9.2/lib/src/atn/src/atn_config_set.dart +0 -283
  43. package/antlr4-4.9.2/lib/src/atn/src/atn_deserializer.dart +0 -809
  44. package/antlr4-4.9.2/lib/src/atn/src/atn_simulator.dart +0 -95
  45. package/antlr4-4.9.2/lib/src/atn/src/atn_state.dart +0 -296
  46. package/antlr4-4.9.2/lib/src/atn/src/atn_type.dart +0 -14
  47. package/antlr4-4.9.2/lib/src/atn/src/info.dart +0 -553
  48. package/antlr4-4.9.2/lib/src/atn/src/lexer_action.dart +0 -601
  49. package/antlr4-4.9.2/lib/src/atn/src/lexer_action_executor.dart +0 -167
  50. package/antlr4-4.9.2/lib/src/atn/src/lexer_atn_simulator.dart +0 -731
  51. package/antlr4-4.9.2/lib/src/atn/src/parser_atn_simulator.dart +0 -2630
  52. package/antlr4-4.9.2/lib/src/atn/src/profiling_atn_simulator.dart +0 -229
  53. package/antlr4-4.9.2/lib/src/atn/src/semantic_context.dart +0 -404
  54. package/antlr4-4.9.2/lib/src/atn/src/transition.dart +0 -305
  55. package/antlr4-4.9.2/lib/src/dfa/dfa.dart +0 -8
  56. package/antlr4-4.9.2/lib/src/dfa/src/dfa.dart +0 -138
  57. package/antlr4-4.9.2/lib/src/dfa/src/dfa_serializer.dart +0 -76
  58. package/antlr4-4.9.2/lib/src/dfa/src/dfa_state.dart +0 -151
  59. package/antlr4-4.9.2/lib/src/error/error.dart +0 -10
  60. package/antlr4-4.9.2/lib/src/error/src/diagnostic_error_listener.dart +0 -116
  61. package/antlr4-4.9.2/lib/src/error/src/error_listener.dart +0 -241
  62. package/antlr4-4.9.2/lib/src/error/src/error_strategy.dart +0 -902
  63. package/antlr4-4.9.2/lib/src/error/src/errors.dart +0 -204
  64. package/antlr4-4.9.2/lib/src/input_stream.dart +0 -335
  65. package/antlr4-4.9.2/lib/src/interval_set.dart +0 -735
  66. package/antlr4-4.9.2/lib/src/lexer.dart +0 -343
  67. package/antlr4-4.9.2/lib/src/ll1_analyzer.dart +0 -204
  68. package/antlr4-4.9.2/lib/src/misc/multi_map.dart +0 -32
  69. package/antlr4-4.9.2/lib/src/misc/pair.dart +0 -34
  70. package/antlr4-4.9.2/lib/src/parser.dart +0 -777
  71. package/antlr4-4.9.2/lib/src/parser_interpreter.dart +0 -393
  72. package/antlr4-4.9.2/lib/src/parser_rule_context.dart +0 -275
  73. package/antlr4-4.9.2/lib/src/prediction_context.dart +0 -877
  74. package/antlr4-4.9.2/lib/src/recognizer.dart +0 -182
  75. package/antlr4-4.9.2/lib/src/rule_context.dart +0 -192
  76. package/antlr4-4.9.2/lib/src/runtime_meta_data.dart +0 -188
  77. package/antlr4-4.9.2/lib/src/token.dart +0 -431
  78. package/antlr4-4.9.2/lib/src/token_factory.dart +0 -88
  79. package/antlr4-4.9.2/lib/src/token_source.dart +0 -241
  80. package/antlr4-4.9.2/lib/src/token_stream.dart +0 -627
  81. package/antlr4-4.9.2/lib/src/tree/src/pattern/chunk.dart +0 -90
  82. package/antlr4-4.9.2/lib/src/tree/src/pattern/parse_tree_match.dart +0 -635
  83. package/antlr4-4.9.2/lib/src/tree/src/tree.dart +0 -370
  84. package/antlr4-4.9.2/lib/src/tree/src/trees.dart +0 -226
  85. package/antlr4-4.9.2/lib/src/tree/tree.dart +0 -10
  86. package/antlr4-4.9.2/lib/src/util/bit_set.dart +0 -308
  87. package/antlr4-4.9.2/lib/src/util/murmur_hash.dart +0 -77
  88. package/antlr4-4.9.2/lib/src/util/utils.dart +0 -31
  89. package/antlr4-4.9.2/lib/src/vocabulary.dart +0 -254
  90. package/antlr4-4.9.2/pubspec.yaml +0 -13
  91. package/example/node_example/index.js +0 -8
  92. package/example/node_example/package.json +0 -12
  93. package/example/node_example_ts/package-lock.json +0 -70
  94. package/example/node_example_ts/package.json +0 -19
  95. package/example/node_example_ts/src/index.js +0 -5
  96. package/example/node_example_ts/src/index.ts +0 -9
  97. package/example/node_example_ts/tsconfig.json +0 -79
  98. package/js/dart2jsout.js +0 -25898
  99. package/js/dart2jsout.js.map +0 -16
  100. package/js/index.d.ts +0 -1
  101. package/js/index.js +0 -4
  102. package/js/out.js +0 -26023
  103. package/js/out.js.map +0 -16
  104. package/js/package-lock.json +0 -57
  105. package/js/preamble.js +0 -125
  106. package/lib/apexdocs_dart.dart +0 -28
  107. package/lib/src/antlr/grammars/Apexdoc/ApexdocLexer.g4 +0 -120
  108. package/lib/src/antlr/grammars/Apexdoc/ApexdocParser.g4 +0 -158
  109. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.interp +0 -95
  110. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.java +0 -238
  111. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.tokens +0 -23
  112. package/lib/src/antlr/grammars/apex/ApexLexer.g4 +0 -255
  113. package/lib/src/antlr/grammars/apex/ApexParser.g4 +0 -567
  114. package/lib/src/antlr/grammars/apex/examples/ApexClass.cls +0 -6
  115. package/lib/src/antlr/lib/apex/ApexLexer.dart +0 -1223
  116. package/lib/src/antlr/lib/apex/ApexLexer.interp +0 -393
  117. package/lib/src/antlr/lib/apex/ApexLexer.tokens +0 -212
  118. package/lib/src/antlr/lib/apex/ApexParser.dart +0 -9349
  119. package/lib/src/antlr/lib/apex/ApexParser.interp +0 -326
  120. package/lib/src/antlr/lib/apex/ApexParser.tokens +0 -212
  121. package/lib/src/antlr/lib/apex/ApexParserBaseListener.dart +0 -1036
  122. package/lib/src/antlr/lib/apex/ApexParserListener.dart +0 -975
  123. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.dart +0 -373
  124. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.interp +0 -95
  125. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.tokens +0 -23
  126. package/lib/src/antlr/lib/apexdoc/ApexdocParser.dart +0 -2471
  127. package/lib/src/antlr/lib/apexdoc/ApexdocParser.interp +0 -69
  128. package/lib/src/antlr/lib/apexdoc/ApexdocParser.tokens +0 -23
  129. package/lib/src/antlr/lib/apexdoc/ApexdocParserBaseListener.dart +0 -252
  130. package/lib/src/antlr/lib/apexdoc/ApexdocParserListener.dart +0 -215
  131. package/lib/src/builders/builders.dart +0 -32
  132. package/lib/src/model/apex_file_manifest.dart +0 -37
  133. package/lib/src/model/apex_file_manifest.g.dart +0 -18
  134. package/lib/src/model/declaration.dart +0 -50
  135. package/lib/src/model/doc_comment.dart +0 -117
  136. package/lib/src/model/doc_comment.g.dart +0 -118
  137. package/lib/src/model/members.dart +0 -143
  138. package/lib/src/model/members.g.dart +0 -105
  139. package/lib/src/model/types.dart +0 -159
  140. package/lib/src/model/types.g.dart +0 -111
  141. package/lib/src/service/apex_listener.dart +0 -226
  142. package/lib/src/service/apexdoc_listener.dart +0 -82
  143. package/lib/src/service/parsers.dart +0 -33
  144. package/lib/src/service/utils/parsing/access_modifiers_parser.dart +0 -33
  145. package/lib/src/service/utils/parsing/parameters_parser.dart +0 -18
  146. package/lib/src/service/utils/parsing/parsing_utils.dart +0 -2
  147. package/lib/src/service/walker.dart +0 -82
  148. package/pubspec.yaml +0 -19
  149. package/test/apex_file_manifest_test.dart +0 -16
  150. package/test/apex_listener_test.dart +0 -703
  151. package/test/apexdoc_parser_test.dart +0 -179
  152. package/test/doc_comment_test.dart +0 -89
  153. package/test/members_serialization_test.dart +0 -158
  154. package/test/members_test.dart +0 -178
  155. package/test/types_serialization_test.dart +0 -191
  156. package/test/types_test.dart +0 -311
  157. package/test/walker_test.dart +0 -58
  158. 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
- }
@@ -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
- }
@@ -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
- }