@@ -22,7 +22,7 @@ class TestProfile {
22
22
final List <TestPackage > importedPackages;
23
23
24
24
/// Packages that will be generated locally using the provided parameters and semi-random templates.
25
- final List <TestPackage > generatedPackages;
25
+ final List <GeneratedTestPackage > generatedPackages;
26
26
final List <TestPublisher > publishers;
27
27
final List <TestUser > users;
28
28
@@ -31,12 +31,12 @@ class TestProfile {
31
31
32
32
TestProfile ({
33
33
List <TestPackage >? importedPackages,
34
- List <TestPackage >? generatedPackages,
34
+ List <GeneratedTestPackage >? generatedPackages,
35
35
List <TestPublisher >? publishers,
36
36
List <TestUser >? users,
37
37
this .defaultUser,
38
38
}) : importedPackages = importedPackages ?? < TestPackage > [],
39
- generatedPackages = generatedPackages ?? < TestPackage > [],
39
+ generatedPackages = generatedPackages ?? < GeneratedTestPackage > [],
40
40
publishers = publishers ?? < TestPublisher > [],
41
41
users = users ?? < TestUser > [];
42
42
@@ -98,14 +98,7 @@ class TestPackage {
98
98
});
99
99
100
100
factory TestPackage .fromJson (Map <String , dynamic > json) {
101
- // convert simple String versions to objects
102
- final versions = json['versions' ] as List ? ;
103
- json = {
104
- ...json,
105
- 'versions' :
106
- versions? .map ((v) => v is String ? {'version' : v} : v).toList (),
107
- };
108
- return _$TestPackageFromJson (json);
101
+ return _$TestPackageFromJson (_expandPackageJson (json));
109
102
}
110
103
111
104
Map <String , dynamic > toJson () => _$TestPackageToJson (this );
@@ -130,6 +123,86 @@ class TestVersion {
130
123
String toString () => '$version ' ;
131
124
}
132
125
126
+ @JsonSerializable (explicitToJson: true , includeIfNull: false )
127
+ class GeneratedTestPackage extends TestPackage {
128
+ @override
129
+ // ignore: overridden_fields
130
+ final List <GeneratedTestVersion >? versions;
131
+
132
+ final TestArchiveTemplate ? template;
133
+
134
+ GeneratedTestPackage ({
135
+ required super .name,
136
+ super .uploaders,
137
+ super .publisher,
138
+ this .versions,
139
+ super .isDiscontinued,
140
+ super .replacedBy,
141
+ super .isUnlisted,
142
+ super .isFlutterFavorite,
143
+ super .retractedVersions,
144
+ super .likeCount,
145
+ this .template,
146
+ });
147
+
148
+ factory GeneratedTestPackage .fromJson (Map <String , dynamic > json) {
149
+ return _$GeneratedTestPackageFromJson (_expandPackageJson (json));
150
+ }
151
+
152
+ @override
153
+ Map <String , dynamic > toJson () => _$GeneratedTestPackageToJson (this );
154
+ }
155
+
156
+ Map <String , dynamic > _expandPackageJson (Map <String , dynamic > json) {
157
+ // convert simple String versions to objects
158
+ final versions = json['versions' ] as List ? ;
159
+ return {
160
+ ...json,
161
+ 'versions' : versions? .map ((v) => v is String ? {'version' : v} : v).toList (),
162
+ };
163
+ }
164
+
165
+ @JsonSerializable (explicitToJson: true , includeIfNull: false )
166
+ class GeneratedTestVersion extends TestVersion {
167
+ final TestArchiveTemplate ? template;
168
+
169
+ GeneratedTestVersion ({
170
+ required super .version,
171
+ super .created,
172
+ this .template,
173
+ });
174
+
175
+ factory GeneratedTestVersion .fromJson (Map <String , dynamic > json) =>
176
+ _$GeneratedTestVersionFromJson (json);
177
+
178
+ @override
179
+ Map <String , dynamic > toJson () => _$GeneratedTestVersionToJson (this );
180
+
181
+ @override
182
+ String toString () => '$version ' ;
183
+ }
184
+
185
+ @JsonSerializable (explicitToJson: true , includeIfNull: false )
186
+ class TestArchiveTemplate {
187
+ final String ? sdkConstraint;
188
+
189
+ TestArchiveTemplate ({
190
+ this .sdkConstraint,
191
+ });
192
+
193
+ factory TestArchiveTemplate .fromJson (Map <String , dynamic > json) =>
194
+ _$TestArchiveTemplateFromJson (json);
195
+
196
+ TestArchiveTemplate overrideWith (TestArchiveTemplate ? other) {
197
+ if (other == null ) return this ;
198
+ return TestArchiveTemplate (
199
+ sdkConstraint: other.sdkConstraint ?? sdkConstraint,
200
+ );
201
+ }
202
+
203
+ Map <String , dynamic > toJson () => _$TestArchiveTemplateToJson (this );
204
+ }
205
+
133
206
@JsonSerializable (explicitToJson: true , includeIfNull: false )
134
207
class TestPublisher {
135
208
final String name;
0 commit comments