Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
StarProxima committed Oct 25, 2023
1 parent 652455a commit 1d01d01
Showing 1 changed file with 120 additions and 59 deletions.
179 changes: 120 additions & 59 deletions swagger_parser/test/generator/data_classes_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1097,7 +1097,7 @@ class ClassName with _$ClassName {
),
];

const fillController = FillController();
const fillController = FillController(unknownEnumValue: false);
final files = <GeneratedFile>[];
for (final enumClass in dataClasses) {
files.add(fillController.fillDtoContent(enumClass));
Expand All @@ -1109,8 +1109,10 @@ import 'package:json_annotation/json_annotation.dart';
enum EnumName {
@JsonValue(1)
value1,
@JsonValue(2)
value2,
@JsonValue(3)
value3;
}
Expand All @@ -1123,10 +1125,13 @@ import 'package:json_annotation/json_annotation.dart';
enum EnumNameString {
@JsonValue('itemOne')
itemOne,
@JsonValue('ItemTwo')
itemTwo,
@JsonValue('item_three')
itemThree,
@JsonValue('ITEM-FOUR')
itemFour,
Expand Down Expand Up @@ -1161,10 +1166,13 @@ import 'package:json_annotation/json_annotation.dart';
enum EnumNameStringWithLeadingNumbers {
@JsonValue('1itemOne')
value1itemOne,
@JsonValue('2ItemTwo')
value2ItemTwo,
@JsonValue('3item_three')
value3itemThree,
@JsonValue('4ITEM-FOUR')
value4ItemFour,
Expand Down Expand Up @@ -1196,56 +1204,57 @@ enum EnumNameStringWithLeadingNumbers {
),
];

const fillController = FillController(enumsToJson: true);
const fillController =
FillController(enumsToJson: true, unknownEnumValue: false);
final files = <GeneratedFile>[];
for (final enumClass in dataClasses) {
files.add(fillController.fillDtoContent(enumClass));
}
const expectedContent0 = r'''
const expectedContent0 = '''
import 'package:json_annotation/json_annotation.dart';
@JsonEnum()
enum EnumName {
@JsonValue(1)
value1,
value1(1),
@JsonValue(2)
value2,
value2(2),
@JsonValue(3)
value3;
value3(3);
int toJson() => _$EnumNameEnumMap[this]!;
}
const EnumName(this.json);
final int? json;
const _$EnumNameEnumMap = {
EnumName.value1: 1,
EnumName.value2: 2,
EnumName.value3: 3,
};
int? toJson() => json;
}
''';

const expectedContent1 = r'''
const expectedContent1 = '''
import 'package:json_annotation/json_annotation.dart';
@JsonEnum()
enum EnumNameString {
@JsonValue('itemOne')
itemOne,
itemOne('itemOne'),
@JsonValue('ItemTwo')
itemTwo,
itemTwo('ItemTwo'),
@JsonValue('item_three')
itemThree,
itemThree('item_three'),
@JsonValue('ITEM-FOUR')
itemFour;
itemFour('ITEM-FOUR');
String toJson() => _$EnumNameStringEnumMap[this]!;
}
const EnumNameString(this.json);
const _$EnumNameStringEnumMap = {
EnumNameString.itemOne: 'itemOne',
EnumNameString.itemTwo: 'ItemTwo',
EnumNameString.itemThree: 'item_three',
EnumNameString.itemFour: 'ITEM-FOUR',
};
final String? json;
String? toJson() => json;
}
''';

expect(files[0].contents, expectedContent0);
Expand Down Expand Up @@ -1274,7 +1283,8 @@ const _$EnumNameStringEnumMap = {
items: UniversalEnumItem.listFromNames({'FALSE', 'for', 'do'}),
),
];
const fillController = FillController(freezed: true);
const fillController =
FillController(freezed: true, unknownEnumValue: false);
final files = <GeneratedFile>[];
for (final enumClass in dataClasses) {
files.add(fillController.fillDtoContent(enumClass));
Expand All @@ -1286,8 +1296,10 @@ import 'package:freezed_annotation/freezed_annotation.dart';
enum EnumName {
@JsonValue(1)
value1,
@JsonValue(2)
value2,
@JsonValue(3)
value3;
}
Expand All @@ -1300,10 +1312,13 @@ import 'package:freezed_annotation/freezed_annotation.dart';
enum EnumNameString {
@JsonValue('itemOne')
itemOne,
@JsonValue('ItemTwo')
itemTwo,
@JsonValue('item_three')
itemThree,
@JsonValue('ITEM-FOUR')
itemFour;
}
Expand Down Expand Up @@ -1358,20 +1373,28 @@ import 'package:freezed_annotation/freezed_annotation.dart';
@JsonEnum()
enum EnumName {
@JsonValue(1)
value1,
value1(1),
@JsonValue(2)
value2,
value2(2),
@JsonValue(3)
value3;
value3(3),
int toJson() => _$EnumNameEnumMap[this]!;
}
/// Default value for all unparsed values, allows backward compatibility when adding new values on the backend.
$unknown(null);
const EnumName(this.json);
factory EnumName.fromJson(int json) => values.firstWhere(
(e) => e.json == json,
orElse: () => $unknown,
);
const _$EnumNameEnumMap = {
EnumName.value1: 1,
EnumName.value2: 2,
EnumName.value3: 3,
};
final int? json;
int? toJson() => json;
}
''';

const expectedContent1 = r'''
Expand All @@ -1380,23 +1403,31 @@ import 'package:freezed_annotation/freezed_annotation.dart';
@JsonEnum()
enum EnumNameString {
@JsonValue('itemOne')
itemOne,
itemOne('itemOne'),
@JsonValue('ItemTwo')
itemTwo,
itemTwo('ItemTwo'),
@JsonValue('item_three')
itemThree,
itemThree('item_three'),
@JsonValue('ITEM-FOUR')
itemFour;
itemFour('ITEM-FOUR'),
String toJson() => _$EnumNameStringEnumMap[this]!;
}
/// Default value for all unparsed values, allows backward compatibility when adding new values on the backend.
$unknown(null);
const EnumNameString(this.json);
factory EnumNameString.fromJson(String json) => values.firstWhere(
(e) => e.json == json,
orElse: () => $unknown,
);
final String? json;
const _$EnumNameStringEnumMap = {
EnumNameString.itemOne: 'itemOne',
EnumNameString.itemTwo: 'ItemTwo',
EnumNameString.itemThree: 'item_three',
EnumNameString.itemFour: 'ITEM-FOUR',
};
String? toJson() => json;
}
''';
expect(files[0].contents, expectedContent0);
expect(files[1].contents, expectedContent1);
Expand Down Expand Up @@ -1495,19 +1526,34 @@ enum class KeywordsName {
const fillController = FillController();
final file = fillController.fillDtoContent(dataClass);

const expectedContent = '''
const expectedContent = r'''
import 'package:json_annotation/json_annotation.dart';
@JsonEnum()
enum EnumName {
@JsonValue(-2)
valueMinus2,
valueMinus2(-2),
@JsonValue(-1)
valueMinus1,
valueMinus1(-1),
@JsonValue(0)
value0,
value0(0),
@JsonValue(1)
value1;
value1(1),
/// Default value for all unparsed values, allows backward compatibility when adding new values on the backend.
$unknown(null);
const EnumName(this.json);
factory EnumName.fromJson(int json) => values.firstWhere(
(e) => e.json == json,
orElse: () => $unknown,
);
final int? json;
}
''';

Expand All @@ -1523,19 +1569,34 @@ enum EnumName {
const fillController = FillController(freezed: true);
final file = fillController.fillDtoContent(dataClass);

const expectedContent = '''
const expectedContent = r'''
import 'package:freezed_annotation/freezed_annotation.dart';
@JsonEnum()
enum EnumName {
@JsonValue(-2)
valueMinus2,
valueMinus2(-2),
@JsonValue(-1)
valueMinus1,
valueMinus1(-1),
@JsonValue(0)
value0,
value0(0),
@JsonValue(1)
value1;
value1(1),
/// Default value for all unparsed values, allows backward compatibility when adding new values on the backend.
$unknown(null);
const EnumName(this.json);
factory EnumName.fromJson(int json) => values.firstWhere(
(e) => e.json == json,
orElse: () => $unknown,
);
final int? json;
}
''';

Expand Down

0 comments on commit 1d01d01

Please sign in to comment.