@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,703 +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/model/members.dart';
|
|
6
|
-
import 'package:apexdocs_dart/src/model/types.dart';
|
|
7
|
-
import 'package:test/test.dart';
|
|
8
|
-
|
|
9
|
-
import 'package:apexdocs_dart/src/service/walker.dart';
|
|
10
|
-
|
|
11
|
-
void main() {
|
|
12
|
-
group('Parses Apex Classes', () {
|
|
13
|
-
test('Creates a simple class', () {
|
|
14
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
15
|
-
Walker.walk(
|
|
16
|
-
InputStream.fromString('class MyClass{}'), apexWalkerDefinition);
|
|
17
|
-
expect(apexWalkerDefinition.getGeneratedApexType(), isNotNull);
|
|
18
|
-
expect(apexWalkerDefinition.getGeneratedApexType().name, 'MyClass');
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test('Classes can have Apex docs', () {
|
|
22
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
23
|
-
const classBody = '''
|
|
24
|
-
/**
|
|
25
|
-
* @description Class description
|
|
26
|
-
*/
|
|
27
|
-
class MyClass{}
|
|
28
|
-
''';
|
|
29
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
30
|
-
expect(
|
|
31
|
-
apexWalkerDefinition.getGeneratedApexType().rawDocComment, isNotNull);
|
|
32
|
-
expect(apexWalkerDefinition.getGeneratedApexType().docDescription,
|
|
33
|
-
equals('Class description'));
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test('Classes without access modifiers are private by default', () {
|
|
37
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
38
|
-
Walker.walk(
|
|
39
|
-
InputStream.fromString('class MyClass{}'), apexWalkerDefinition);
|
|
40
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isTrue);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test('Classes with private access modifiers are private', () {
|
|
44
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
45
|
-
Walker.walk(InputStream.fromString('private class MyClass{}'),
|
|
46
|
-
apexWalkerDefinition);
|
|
47
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isTrue);
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
test('Classes with public access modifiers are public', () {
|
|
51
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
52
|
-
Walker.walk(InputStream.fromString('public class MyClass{}'),
|
|
53
|
-
apexWalkerDefinition);
|
|
54
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isFalse);
|
|
55
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPublic, isTrue);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
test('Classes with global access modifiers are global', () {
|
|
59
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
60
|
-
Walker.walk(InputStream.fromString('global class MyClass{}'),
|
|
61
|
-
apexWalkerDefinition);
|
|
62
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isFalse);
|
|
63
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPublic, isFalse);
|
|
64
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isGlobal, isTrue);
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
test('Classes with protected access modifiers are protected', () {
|
|
68
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
69
|
-
Walker.walk(InputStream.fromString('protected class MyClass{}'),
|
|
70
|
-
apexWalkerDefinition);
|
|
71
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isFalse);
|
|
72
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPublic, isFalse);
|
|
73
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isGlobal, isFalse);
|
|
74
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isProtected, isTrue);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
test('Classes with protected access modifiers are protected', () {
|
|
78
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
79
|
-
Walker.walk(InputStream.fromString('protected class MyClass{}'),
|
|
80
|
-
apexWalkerDefinition);
|
|
81
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isFalse);
|
|
82
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPublic, isFalse);
|
|
83
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isGlobal, isFalse);
|
|
84
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isProtected, isTrue);
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
test('Virtual classes are supported', () {
|
|
88
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
89
|
-
Walker.walk(InputStream.fromString('public virtual class MyClass{}'),
|
|
90
|
-
apexWalkerDefinition);
|
|
91
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isVirtual, isTrue);
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
test('Supports the NamespaceAccessible annotation', () {
|
|
95
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
96
|
-
Walker.walk(
|
|
97
|
-
InputStream.fromString(
|
|
98
|
-
'@NamespaceAccessible public virtual class MyClass{}'),
|
|
99
|
-
apexWalkerDefinition);
|
|
100
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isNamespaceAccessible,
|
|
101
|
-
isTrue);
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
test('Supports the IsTest annotation', () {
|
|
105
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
106
|
-
Walker.walk(InputStream.fromString('@IsTest private class MyClass{}'),
|
|
107
|
-
apexWalkerDefinition);
|
|
108
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isTest, isTrue);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
test('Supports annotations with extra parameters', () {
|
|
112
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
113
|
-
Walker.walk(
|
|
114
|
-
InputStream.fromString(
|
|
115
|
-
'@IsTest(Parallel=true) private class MyClass{}'),
|
|
116
|
-
apexWalkerDefinition);
|
|
117
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isTest, isTrue);
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
test('Does not extend any class by default', () {
|
|
121
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
122
|
-
Walker.walk(InputStream.fromString('public class MyClass{}'),
|
|
123
|
-
apexWalkerDefinition);
|
|
124
|
-
var generatedClass =
|
|
125
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
126
|
-
expect(generatedClass.extendedClass, isNull);
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
test('Classes can extend another class', () {
|
|
130
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
131
|
-
Walker.walk(
|
|
132
|
-
InputStream.fromString('public class MyClass extends ParentClass{}'),
|
|
133
|
-
apexWalkerDefinition);
|
|
134
|
-
var generatedClass =
|
|
135
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
136
|
-
expect(generatedClass.extendedClass, equals('ParentClass'));
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
test('Classes can have properties', () {
|
|
140
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
141
|
-
var classBody = '''
|
|
142
|
-
public class MyClass {
|
|
143
|
-
@NamespaceAccessible public String MyProperty1 { get; set; }
|
|
144
|
-
private Integer MyProperty2 { get; set; }
|
|
145
|
-
}
|
|
146
|
-
''';
|
|
147
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
148
|
-
var generatedClass =
|
|
149
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
150
|
-
expect(generatedClass.properties.length, equals(2));
|
|
151
|
-
expect(
|
|
152
|
-
generatedClass.properties
|
|
153
|
-
.any((element) => element.name == 'MyProperty1'),
|
|
154
|
-
isTrue);
|
|
155
|
-
expect(
|
|
156
|
-
generatedClass.properties
|
|
157
|
-
.any((element) => element.name == 'MyProperty2'),
|
|
158
|
-
isTrue);
|
|
159
|
-
|
|
160
|
-
Property property1 = generatedClass.properties
|
|
161
|
-
.firstWhere((element) => element.name == 'MyProperty1');
|
|
162
|
-
expect(property1.isNamespaceAccessible, isTrue);
|
|
163
|
-
expect(property1.type, equals('String'));
|
|
164
|
-
expect(property1.isPublic, isTrue);
|
|
165
|
-
|
|
166
|
-
Property property2 = generatedClass.properties
|
|
167
|
-
.firstWhere((element) => element.name == 'MyProperty2');
|
|
168
|
-
expect(property2.isPrivate, isTrue);
|
|
169
|
-
expect(property2.type, equals('Integer'));
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
test('Classes can have properties with apex docs', () {
|
|
173
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
174
|
-
var classBody = '''
|
|
175
|
-
public class MyClass {
|
|
176
|
-
/**
|
|
177
|
-
* @description Some description
|
|
178
|
-
*/
|
|
179
|
-
@NamespaceAccessible public String MyProperty1 { get; set; }
|
|
180
|
-
}
|
|
181
|
-
''';
|
|
182
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
183
|
-
var generatedClass =
|
|
184
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
185
|
-
expect(generatedClass.properties.length, equals(1));
|
|
186
|
-
expect(
|
|
187
|
-
generatedClass.properties
|
|
188
|
-
.any((element) => element.name == 'MyProperty1'),
|
|
189
|
-
isTrue);
|
|
190
|
-
|
|
191
|
-
Property property1 = generatedClass.properties
|
|
192
|
-
.firstWhere((element) => element.name == 'MyProperty1');
|
|
193
|
-
expect(property1.rawDocComment, isNotNull);
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
test('Classes can have fields', () {
|
|
197
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
198
|
-
var classBody = '''
|
|
199
|
-
public class MyClass {
|
|
200
|
-
private String myVar1, myVar2;
|
|
201
|
-
private Integer myVar3;
|
|
202
|
-
}
|
|
203
|
-
''';
|
|
204
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
205
|
-
var generatedClass =
|
|
206
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
207
|
-
expect(generatedClass.fields.length, equals(3));
|
|
208
|
-
expect(generatedClass.fields.any((element) => element.name == 'myVar1'),
|
|
209
|
-
isTrue);
|
|
210
|
-
expect(generatedClass.fields.any((element) => element.name == 'myVar2'),
|
|
211
|
-
isTrue);
|
|
212
|
-
expect(generatedClass.fields.any((element) => element.name == 'myVar3'),
|
|
213
|
-
isTrue);
|
|
214
|
-
|
|
215
|
-
Field field1 = generatedClass.fields
|
|
216
|
-
.firstWhere((element) => element.name == 'myVar1');
|
|
217
|
-
expect(field1.isPrivate, isTrue);
|
|
218
|
-
expect(field1.type, equals('String'));
|
|
219
|
-
|
|
220
|
-
Field field2 = generatedClass.fields
|
|
221
|
-
.firstWhere((element) => element.name == 'myVar2');
|
|
222
|
-
expect(field2.isPrivate, isTrue);
|
|
223
|
-
expect(field2.type, equals('String'));
|
|
224
|
-
|
|
225
|
-
Field field3 = generatedClass.fields
|
|
226
|
-
.firstWhere((element) => element.name == 'myVar3');
|
|
227
|
-
expect(field3.isPrivate, isTrue);
|
|
228
|
-
expect(field3.type, equals('Integer'));
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
test('Classes can have fields with doc comments', () {
|
|
232
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
233
|
-
var classBody = '''
|
|
234
|
-
public class MyClass {
|
|
235
|
-
/**
|
|
236
|
-
* @description Some description
|
|
237
|
-
*/
|
|
238
|
-
private String myVar1;
|
|
239
|
-
}
|
|
240
|
-
''';
|
|
241
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
242
|
-
var generatedClass =
|
|
243
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
244
|
-
expect(generatedClass.fields.length, equals(1));
|
|
245
|
-
expect(generatedClass.fields.any((element) => element.name == 'myVar1'),
|
|
246
|
-
isTrue);
|
|
247
|
-
|
|
248
|
-
Field field1 = generatedClass.fields
|
|
249
|
-
.firstWhere((element) => element.name == 'myVar1');
|
|
250
|
-
expect(field1.rawDocComment, isNotNull);
|
|
251
|
-
});
|
|
252
|
-
|
|
253
|
-
test('Classes can have methods', () {
|
|
254
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
255
|
-
var classBody = '''
|
|
256
|
-
public class MyClass {
|
|
257
|
-
@NamespaceAccessible
|
|
258
|
-
public void sayHi() {
|
|
259
|
-
System.debug(getGreeting());
|
|
260
|
-
}
|
|
261
|
-
public String getGreeting() {
|
|
262
|
-
return 'Hi!';
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
''';
|
|
266
|
-
|
|
267
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
268
|
-
var generatedClass =
|
|
269
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
270
|
-
expect(generatedClass.methods.length, equals(2));
|
|
271
|
-
expect(generatedClass.methods.any((element) => element.name == 'sayHi'),
|
|
272
|
-
isTrue);
|
|
273
|
-
expect(
|
|
274
|
-
generatedClass.methods
|
|
275
|
-
.any((element) => element.name == 'getGreeting'),
|
|
276
|
-
isTrue);
|
|
277
|
-
|
|
278
|
-
Method method1 = generatedClass.methods
|
|
279
|
-
.firstWhere((element) => element.name == 'sayHi');
|
|
280
|
-
expect(method1.isPublic, isTrue);
|
|
281
|
-
expect(method1.isNamespaceAccessible, isTrue);
|
|
282
|
-
expect(method1.isVoid, isTrue);
|
|
283
|
-
|
|
284
|
-
Method method2 = generatedClass.methods
|
|
285
|
-
.firstWhere((element) => element.name == 'getGreeting');
|
|
286
|
-
expect(method2.isPublic, isTrue);
|
|
287
|
-
expect(method2.isNamespaceAccessible, isFalse);
|
|
288
|
-
expect(method2.isVoid, isFalse);
|
|
289
|
-
expect(method2.type, equals('String'));
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
test('Classes can have methods with doc comments', () {
|
|
293
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
294
|
-
var classBody = '''
|
|
295
|
-
public class MyClass {
|
|
296
|
-
/**
|
|
297
|
-
* @description Some description
|
|
298
|
-
*/
|
|
299
|
-
@NamespaceAccessible
|
|
300
|
-
public void sayHi() {
|
|
301
|
-
System.debug(getGreeting());
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
''';
|
|
305
|
-
|
|
306
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
307
|
-
var generatedClass =
|
|
308
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
309
|
-
expect(generatedClass.methods.length, equals(1));
|
|
310
|
-
expect(generatedClass.methods.any((element) => element.name == 'sayHi'),
|
|
311
|
-
isTrue);
|
|
312
|
-
|
|
313
|
-
Method method1 = generatedClass.methods
|
|
314
|
-
.firstWhere((element) => element.name == 'sayHi');
|
|
315
|
-
expect(method1.rawDocComment, isNotNull);
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
test('Classes can have methods with doc comments and parameters', () {
|
|
319
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
320
|
-
var classBody = '''
|
|
321
|
-
public class MyClass {
|
|
322
|
-
/**
|
|
323
|
-
* @description Some description
|
|
324
|
-
* @param param1 The description for param1
|
|
325
|
-
*/
|
|
326
|
-
@NamespaceAccessible
|
|
327
|
-
public void sayHi(String param1) {
|
|
328
|
-
System.debug(getGreeting());
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
''';
|
|
332
|
-
|
|
333
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
334
|
-
var generatedClass =
|
|
335
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
336
|
-
expect(generatedClass.methods.length, equals(1));
|
|
337
|
-
expect(generatedClass.methods.any((element) => element.name == 'sayHi'),
|
|
338
|
-
isTrue);
|
|
339
|
-
|
|
340
|
-
Method method1 = generatedClass.methods
|
|
341
|
-
.firstWhere((element) => element.name == 'sayHi');
|
|
342
|
-
expect(method1.docDescription, 'Some description');
|
|
343
|
-
expect(method1.parameters.first.docDescription,
|
|
344
|
-
'The description for param1');
|
|
345
|
-
});
|
|
346
|
-
|
|
347
|
-
test('Classes can have constructors', () {
|
|
348
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
349
|
-
var classBody = '''
|
|
350
|
-
public class MyClass {
|
|
351
|
-
private final String var1;
|
|
352
|
-
@NamespaceAccessible
|
|
353
|
-
public MyClass() {
|
|
354
|
-
this.var1 = 'Hello!';
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
public MyClass(String greeting) {
|
|
358
|
-
this.var1 = greeting;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
''';
|
|
362
|
-
|
|
363
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
364
|
-
var generatedClass =
|
|
365
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
366
|
-
expect(generatedClass.constructors.length, equals(2));
|
|
367
|
-
expect(
|
|
368
|
-
generatedClass.constructors
|
|
369
|
-
.any((element) => element.isNamespaceAccessible),
|
|
370
|
-
isTrue);
|
|
371
|
-
expect(
|
|
372
|
-
generatedClass.constructors
|
|
373
|
-
.any((element) => !element.isNamespaceAccessible),
|
|
374
|
-
isTrue);
|
|
375
|
-
|
|
376
|
-
Constructor constructor1 = generatedClass.constructors
|
|
377
|
-
.firstWhere((element) => element.isNamespaceAccessible);
|
|
378
|
-
expect(constructor1.isPublic, isTrue);
|
|
379
|
-
expect(constructor1.parameters.isEmpty, isTrue);
|
|
380
|
-
|
|
381
|
-
Constructor constructor2 = generatedClass.constructors
|
|
382
|
-
.firstWhere((element) => !element.isNamespaceAccessible);
|
|
383
|
-
expect(constructor2.isPublic, isTrue);
|
|
384
|
-
expect(constructor2.parameters.length, equals(1));
|
|
385
|
-
});
|
|
386
|
-
|
|
387
|
-
test('Classes can have constructors with doc comments', () {
|
|
388
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
389
|
-
var classBody = '''
|
|
390
|
-
public class MyClass {
|
|
391
|
-
private final String var1;
|
|
392
|
-
/**
|
|
393
|
-
* @description Some description
|
|
394
|
-
*/
|
|
395
|
-
@NamespaceAccessible
|
|
396
|
-
public MyClass() {
|
|
397
|
-
this.var1 = 'Hello!';
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
''';
|
|
401
|
-
|
|
402
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
403
|
-
var generatedClass =
|
|
404
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
405
|
-
expect(generatedClass.constructors.length, equals(1));
|
|
406
|
-
expect(
|
|
407
|
-
generatedClass.constructors
|
|
408
|
-
.any((element) => element.isNamespaceAccessible),
|
|
409
|
-
isTrue);
|
|
410
|
-
|
|
411
|
-
Constructor constructor1 = generatedClass.constructors
|
|
412
|
-
.firstWhere((element) => element.isNamespaceAccessible);
|
|
413
|
-
expect(constructor1.rawDocComment, isNotNull);
|
|
414
|
-
});
|
|
415
|
-
|
|
416
|
-
test('Classes can have inner enums', () {
|
|
417
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
418
|
-
var classBody = '''
|
|
419
|
-
public class MyClass {
|
|
420
|
-
@NamespaceAccessible
|
|
421
|
-
public enum MyEnum {
|
|
422
|
-
A,B,C
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
''';
|
|
426
|
-
|
|
427
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
428
|
-
var generatedClass =
|
|
429
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
430
|
-
expect(generatedClass.enums.length, equals(1));
|
|
431
|
-
expect(generatedClass.enums.first.name, equals('MyEnum'));
|
|
432
|
-
expect(generatedClass.enums.first.isNamespaceAccessible, isTrue);
|
|
433
|
-
expect(generatedClass.enums.first.isPublic, isTrue);
|
|
434
|
-
});
|
|
435
|
-
|
|
436
|
-
test('Classes can have inner enums with documents', () {
|
|
437
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
438
|
-
var classBody = '''
|
|
439
|
-
public class MyClass {
|
|
440
|
-
/**
|
|
441
|
-
* @description Some description
|
|
442
|
-
*/
|
|
443
|
-
@NamespaceAccessible
|
|
444
|
-
public enum MyEnum {
|
|
445
|
-
A,B,C
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
''';
|
|
449
|
-
|
|
450
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
451
|
-
var generatedClass =
|
|
452
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
453
|
-
expect(generatedClass.enums.length, equals(1));
|
|
454
|
-
expect(generatedClass.enums.first.rawDocComment, isNotNull);
|
|
455
|
-
});
|
|
456
|
-
|
|
457
|
-
test('Classes can have inner interfaces', () {
|
|
458
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
459
|
-
var classBody = '''
|
|
460
|
-
public class MyClass {
|
|
461
|
-
@NamespaceAccessible
|
|
462
|
-
public interface MyInterface {
|
|
463
|
-
String sampleMethod(String prop1, String prop2);
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
''';
|
|
467
|
-
|
|
468
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
469
|
-
var generatedClass =
|
|
470
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
471
|
-
expect(generatedClass.interfaces.length, equals(1));
|
|
472
|
-
|
|
473
|
-
var innerInterface = generatedClass.interfaces.first;
|
|
474
|
-
expect(innerInterface.name, equals('MyInterface'));
|
|
475
|
-
expect(innerInterface.isNamespaceAccessible, isTrue);
|
|
476
|
-
expect(innerInterface.isPublic, isTrue);
|
|
477
|
-
expect(innerInterface.methods.length, equals(1));
|
|
478
|
-
expect(innerInterface.methods.first.type, 'String');
|
|
479
|
-
});
|
|
480
|
-
|
|
481
|
-
test('Classes can have inner interfaces with doc comments', () {
|
|
482
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
483
|
-
var classBody = '''
|
|
484
|
-
public class MyClass {
|
|
485
|
-
/**
|
|
486
|
-
* @description Some description
|
|
487
|
-
*/
|
|
488
|
-
@NamespaceAccessible
|
|
489
|
-
public interface MyInterface {
|
|
490
|
-
String sampleMethod(String prop1, String prop2);
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
''';
|
|
494
|
-
|
|
495
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
496
|
-
var generatedClass =
|
|
497
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
498
|
-
expect(generatedClass.interfaces.length, equals(1));
|
|
499
|
-
|
|
500
|
-
var innerInterface = generatedClass.interfaces.first;
|
|
501
|
-
expect(innerInterface.rawDocComment, isNotNull);
|
|
502
|
-
});
|
|
503
|
-
|
|
504
|
-
test('Classes can have inner classes', () {
|
|
505
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
506
|
-
var classBody = '''
|
|
507
|
-
public class MyClass {
|
|
508
|
-
public class InnerClass {
|
|
509
|
-
public String innerMethod(String prop1, String prop2) {
|
|
510
|
-
return '';
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
''';
|
|
515
|
-
|
|
516
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
517
|
-
var generatedClass =
|
|
518
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
519
|
-
expect(generatedClass.classes.length, equals(1));
|
|
520
|
-
|
|
521
|
-
var innerClass = generatedClass.classes.first;
|
|
522
|
-
expect(innerClass.name, equals('InnerClass'));
|
|
523
|
-
expect(innerClass.isNamespaceAccessible, isFalse);
|
|
524
|
-
expect(innerClass.isPublic, isTrue);
|
|
525
|
-
expect(innerClass.methods.length, equals(1));
|
|
526
|
-
expect(innerClass.methods.first.type, 'String');
|
|
527
|
-
expect(innerClass.methods.first.parameters.length, equals(2));
|
|
528
|
-
});
|
|
529
|
-
|
|
530
|
-
test('Classes can have inner classes with doc comments', () {
|
|
531
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
532
|
-
var classBody = '''
|
|
533
|
-
public class MyClass {
|
|
534
|
-
/**
|
|
535
|
-
* @description Some description
|
|
536
|
-
*/
|
|
537
|
-
public class InnerClass {
|
|
538
|
-
public String innerMethod(String prop1, String prop2) {
|
|
539
|
-
return '';
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
''';
|
|
544
|
-
|
|
545
|
-
Walker.walk(InputStream.fromString(classBody), apexWalkerDefinition);
|
|
546
|
-
var generatedClass =
|
|
547
|
-
apexWalkerDefinition.getGeneratedApexType() as ClassModel;
|
|
548
|
-
expect(generatedClass.classes.length, equals(1));
|
|
549
|
-
|
|
550
|
-
var innerClass = generatedClass.classes.first;
|
|
551
|
-
expect(innerClass.rawDocComment, isNotNull);
|
|
552
|
-
});
|
|
553
|
-
});
|
|
554
|
-
|
|
555
|
-
group('Parses Apex Interfaces', () {
|
|
556
|
-
test('Creates a simple interface', () {
|
|
557
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
558
|
-
Walker.walk(InputStream.fromString('interface MyInterface{}'),
|
|
559
|
-
apexWalkerDefinition);
|
|
560
|
-
expect(apexWalkerDefinition.getGeneratedApexType(), isNotNull);
|
|
561
|
-
expect(apexWalkerDefinition.getGeneratedApexType().name, 'MyInterface');
|
|
562
|
-
});
|
|
563
|
-
|
|
564
|
-
test('Interfaces can have doc comments', () {
|
|
565
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
566
|
-
const interfaceBody = '''
|
|
567
|
-
/**
|
|
568
|
-
* @description Some description
|
|
569
|
-
*/
|
|
570
|
-
interface MyInterface{}
|
|
571
|
-
''';
|
|
572
|
-
Walker.walk(InputStream.fromString(interfaceBody), apexWalkerDefinition);
|
|
573
|
-
expect(apexWalkerDefinition.getGeneratedApexType(), isNotNull);
|
|
574
|
-
expect(
|
|
575
|
-
apexWalkerDefinition.getGeneratedApexType().rawDocComment, isNotNull);
|
|
576
|
-
});
|
|
577
|
-
|
|
578
|
-
test('Interfaces without access modifiers are private by default', () {
|
|
579
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
580
|
-
Walker.walk(
|
|
581
|
-
InputStream.fromString('interface MyClass{}'), apexWalkerDefinition);
|
|
582
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isTrue);
|
|
583
|
-
});
|
|
584
|
-
|
|
585
|
-
test('Interfaces with private access modifiers are private', () {
|
|
586
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
587
|
-
Walker.walk(InputStream.fromString('private interface MyClass{}'),
|
|
588
|
-
apexWalkerDefinition);
|
|
589
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isTrue);
|
|
590
|
-
});
|
|
591
|
-
|
|
592
|
-
test('Interfaces can extend other interfaces', () {
|
|
593
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
594
|
-
Walker.walk(
|
|
595
|
-
InputStream.fromString(
|
|
596
|
-
'public interface MyInterface extends Interface1, Interface2{}'),
|
|
597
|
-
apexWalkerDefinition);
|
|
598
|
-
var generatedInterface =
|
|
599
|
-
apexWalkerDefinition.getGeneratedApexType() as InterfaceModel;
|
|
600
|
-
expect(generatedInterface.extendedInterfaces, isNotEmpty);
|
|
601
|
-
expect(generatedInterface.extendedInterfaces[0], 'Interface1');
|
|
602
|
-
expect(generatedInterface.extendedInterfaces[1], 'Interface2');
|
|
603
|
-
});
|
|
604
|
-
|
|
605
|
-
test('Interfaces can have methods', () {
|
|
606
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
607
|
-
var interfaceBody = '''
|
|
608
|
-
@NamespaceAccessible
|
|
609
|
-
public interface MyInterface {
|
|
610
|
-
void sayHi();
|
|
611
|
-
String getGreeting();
|
|
612
|
-
}
|
|
613
|
-
''';
|
|
614
|
-
|
|
615
|
-
Walker.walk(InputStream.fromString(interfaceBody), apexWalkerDefinition);
|
|
616
|
-
var generatedInterface =
|
|
617
|
-
apexWalkerDefinition.getGeneratedApexType() as InterfaceModel;
|
|
618
|
-
expect(generatedInterface.methods.length, equals(2));
|
|
619
|
-
expect(
|
|
620
|
-
generatedInterface.methods.any((element) => element.name == 'sayHi'),
|
|
621
|
-
isTrue);
|
|
622
|
-
expect(
|
|
623
|
-
generatedInterface.methods
|
|
624
|
-
.any((element) => element.name == 'getGreeting'),
|
|
625
|
-
isTrue);
|
|
626
|
-
|
|
627
|
-
Method method1 = generatedInterface.methods
|
|
628
|
-
.firstWhere((element) => element.name == 'sayHi');
|
|
629
|
-
// Interface methods must inherit the access modifiers of the parent interface
|
|
630
|
-
expect(method1.isPublic, isTrue);
|
|
631
|
-
expect(method1.isNamespaceAccessible, isTrue);
|
|
632
|
-
expect(method1.isVoid, isTrue);
|
|
633
|
-
|
|
634
|
-
Method method2 = generatedInterface.methods
|
|
635
|
-
.firstWhere((element) => element.name == 'getGreeting');
|
|
636
|
-
expect(method2.isPublic, isTrue);
|
|
637
|
-
expect(method2.isNamespaceAccessible, isTrue);
|
|
638
|
-
expect(method2.isVoid, isFalse);
|
|
639
|
-
expect(method2.type, equals('String'));
|
|
640
|
-
});
|
|
641
|
-
|
|
642
|
-
test('Interfaces can have methods with doc comments', () {
|
|
643
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
644
|
-
var interfaceBody = '''
|
|
645
|
-
@NamespaceAccessible
|
|
646
|
-
public interface MyInterface {
|
|
647
|
-
/**
|
|
648
|
-
* @description Some description
|
|
649
|
-
*/
|
|
650
|
-
void sayHi();
|
|
651
|
-
}
|
|
652
|
-
''';
|
|
653
|
-
|
|
654
|
-
Walker.walk(InputStream.fromString(interfaceBody), apexWalkerDefinition);
|
|
655
|
-
var generatedInterface =
|
|
656
|
-
apexWalkerDefinition.getGeneratedApexType() as InterfaceModel;
|
|
657
|
-
expect(generatedInterface.methods.length, equals(1));
|
|
658
|
-
expect(
|
|
659
|
-
generatedInterface.methods.any((element) => element.name == 'sayHi'),
|
|
660
|
-
isTrue);
|
|
661
|
-
|
|
662
|
-
Method method1 = generatedInterface.methods
|
|
663
|
-
.firstWhere((element) => element.name == 'sayHi');
|
|
664
|
-
expect(method1.rawDocComment, isNotNull);
|
|
665
|
-
});
|
|
666
|
-
});
|
|
667
|
-
|
|
668
|
-
group('Parses Apex enums', () {
|
|
669
|
-
test('Creates a simple enum', () {
|
|
670
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
671
|
-
Walker.walk(
|
|
672
|
-
InputStream.fromString('enum MyEnum{}'), apexWalkerDefinition);
|
|
673
|
-
expect(apexWalkerDefinition.getGeneratedApexType(), isNotNull);
|
|
674
|
-
expect(apexWalkerDefinition.getGeneratedApexType().name, 'MyEnum');
|
|
675
|
-
});
|
|
676
|
-
|
|
677
|
-
test('Enums can have doc comments', () {
|
|
678
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
679
|
-
const enumBody = '''
|
|
680
|
-
/**
|
|
681
|
-
* @description Some description
|
|
682
|
-
*/
|
|
683
|
-
enum MyEnum{}
|
|
684
|
-
''';
|
|
685
|
-
Walker.walk(InputStream.fromString(enumBody), apexWalkerDefinition);
|
|
686
|
-
expect(apexWalkerDefinition.getGeneratedApexType(), isNotNull);
|
|
687
|
-
expect(
|
|
688
|
-
apexWalkerDefinition.getGeneratedApexType().rawDocComment, isNotNull);
|
|
689
|
-
});
|
|
690
|
-
|
|
691
|
-
test('Supports enums with access modifiers', () {
|
|
692
|
-
final apexWalkerDefinition = ApexWalkerDefinition();
|
|
693
|
-
Walker.walk(
|
|
694
|
-
InputStream.fromString('@NamespaceAccessible public enum MyEnum{}'),
|
|
695
|
-
apexWalkerDefinition);
|
|
696
|
-
expect(apexWalkerDefinition.getGeneratedApexType(), isNotNull);
|
|
697
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPublic, isTrue);
|
|
698
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isNamespaceAccessible,
|
|
699
|
-
isTrue);
|
|
700
|
-
expect(apexWalkerDefinition.getGeneratedApexType().isPrivate, isFalse);
|
|
701
|
-
});
|
|
702
|
-
});
|
|
703
|
-
}
|