Skip to content

Commit f2be6b6

Browse files
committed
feat(annotations): fixed issue with DioSerializationLibrary and updated tests
fixes #152
1 parent b0340df commit f2be6b6

File tree

4 files changed

+35
-5
lines changed

4 files changed

+35
-5
lines changed

openapi-generator-annotations/lib/src/openapi_generator_annotations_base.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,6 @@ class InputSpec {
165165
const InputSpec.yaml({bool shortExtension = false})
166166
: this(path: 'openapi.y${shortExtension ? '' : 'a'}ml');
167167

168-
Map<String, dynamic> toJsonMap() => {'path': path};
169-
170168
InputSpec.fromMap(Map<String, dynamic> map) : this(path: map['path']);
171169
}
172170

@@ -545,6 +543,12 @@ class DioAltProperties extends AdditionalProperties {
545543

546544
/// Anything in this will be split on a command added to the dependencies section of your generated code.
547545
/// pubspec-dependencies
546+
///
547+
/// this allows a user to specify additional dependencies required for this artifact, it spits
548+
/// the comma separated list into a proper list, removing empty ones and makes it available in the appropriate
549+
/// vendor-prefix to allow the mustache template to pick it up.
550+
///
551+
/// dependencies should be comma separated
548552
final String? pubspecDependencies;
549553

550554
/// pubspec-dev-dependencies
@@ -668,8 +672,10 @@ class EnumTransformer {
668672
static DioSerializationLibrary? dioSerializationLibrary(String? name) {
669673
switch (name) {
670674
case 'json_serializable':
675+
case 'jsonSerializable':
671676
return DioSerializationLibrary.jsonSerializable;
672677
case 'built_value':
678+
case 'builtValue':
673679
return DioSerializationLibrary.builtValue;
674680
}
675681
return null;

openapi-generator/test/generator_arguments_test.dart

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,12 @@ void main() {
225225
expect(args.additionalProperties?.useEnumExtension, isTrue);
226226
expect((args.additionalProperties as DioProperties?)?.nullableFields,
227227
isTrue);
228+
expect((args.additionalProperties as DioProperties).dateLibrary,
229+
DioDateLibrary.core);
230+
expect(
231+
(args.additionalProperties as DioProperties).serializationLibrary,
232+
DioSerializationLibrary.jsonSerializable);
233+
228234
expect(await args.jarArgs, [
229235
'generate',
230236
'-o=${args.outputDirectory}',
@@ -275,6 +281,16 @@ void main() {
275281
expect(args.shouldGenerateSources, isTrue);
276282
expect(args.updateAnnotatedFile, isTrue);
277283
expect(args.additionalProperties?.useEnumExtension, isTrue);
284+
expect(
285+
(args.additionalProperties as DioAltProperties).pubspecDependencies,
286+
'path: 1.0.0');
287+
expect(
288+
(args.additionalProperties as DioAltProperties)
289+
.pubspecDevDependencies,
290+
'pedantic: 1.0.0');
291+
expect((await args.jarArgs).last, contains('path: 1.0.0'));
292+
expect((await args.jarArgs).last, contains('pedantic: 1.0.0'));
293+
expect(args.additionalProperties.runtimeType, DioAltProperties);
278294

279295
expect(await args.jarArgs, [
280296
'generate',
@@ -290,8 +306,9 @@ void main() {
290306
'--import-mappings=${args.importMappings!.entries.fold('', foldStringMap())}',
291307
if (args.typeMappings?.isNotEmpty ?? false)
292308
'--type-mappings=${args.typeMappings!.entries.fold('', foldStringMap())}',
293-
if (args.additionalProperties != null)
294-
'--additional-properties=${args.additionalProperties!.toMap().entries.fold('', foldStringMap(keyModifier: convertToPropertyKey))}'
309+
if (args.additionalProperties != null) ...[
310+
'--additional-properties=${(args.additionalProperties as DioAltProperties).toMap().entries.fold('', foldStringMap(keyModifier: convertToPropertyKey))}'
311+
]
295312
]);
296313
});
297314
test(

openapi-generator/test/specs/dio_alt_properties_test_config.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@ import 'package:openapi_generator_annotations/openapi_generator_annotations.dart
1515
importMappings: {'package': 'test'},
1616
reservedWordsMappings: {'const': 'final'},
1717
additionalProperties: DioAltProperties(
18-
wrapper: Wrapper.fvm, useEnumExtension: true, pubAuthor: 'test author'),
18+
wrapper: Wrapper.fvm,
19+
useEnumExtension: true,
20+
pubAuthor: 'test author',
21+
pubspecDependencies: 'path: 1.0.0',
22+
pubspecDevDependencies: 'pedantic: 1.0.0',
23+
),
1924
inlineSchemaNameMappings: {'200resp': 'OkResp'},
2025
projectPubspecPath: './test/specs/dart_pubspec.test.yaml',
2126
updateAnnotatedFile: true,

openapi-generator/test/specs/dio_properties_test_config.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import 'package:openapi_generator_annotations/openapi_generator_annotations.dart
1818
wrapper: Wrapper.fvm,
1919
useEnumExtension: true,
2020
pubAuthor: 'test author',
21+
dateLibrary: DioDateLibrary.core,
22+
serializationLibrary: DioSerializationLibrary.jsonSerializable,
2123
nullableFields: true),
2224
inlineSchemaNameMappings: {'200resp': 'OkResp'},
2325
projectPubspecPath: './test/specs/dart_pubspec.test.yaml',

0 commit comments

Comments
 (0)