@@ -22,7 +22,7 @@ class TestProfile {
2222 final List <TestPackage > importedPackages;
2323
2424 /// Packages that will be generated locally using the provided parameters and semi-random templates.
25- final List <TestPackage > generatedPackages;
25+ final List <GeneratedTestPackage > generatedPackages;
2626 final List <TestPublisher > publishers;
2727 final List <TestUser > users;
2828
@@ -31,12 +31,12 @@ class TestProfile {
3131
3232 TestProfile ({
3333 List <TestPackage >? importedPackages,
34- List <TestPackage >? generatedPackages,
34+ List <GeneratedTestPackage >? generatedPackages,
3535 List <TestPublisher >? publishers,
3636 List <TestUser >? users,
3737 this .defaultUser,
3838 }) : importedPackages = importedPackages ?? < TestPackage > [],
39- generatedPackages = generatedPackages ?? < TestPackage > [],
39+ generatedPackages = generatedPackages ?? < GeneratedTestPackage > [],
4040 publishers = publishers ?? < TestPublisher > [],
4141 users = users ?? < TestUser > [];
4242
@@ -98,14 +98,7 @@ class TestPackage {
9898 });
9999
100100 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));
109102 }
110103
111104 Map <String , dynamic > toJson () => _$TestPackageToJson (this );
@@ -130,6 +123,86 @@ class TestVersion {
130123 String toString () => '$version ' ;
131124}
132125
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+
133206@JsonSerializable (explicitToJson: true , includeIfNull: false )
134207class TestPublisher {
135208 final String name;
0 commit comments