WIP: Update generateGithubToken method to have a readwritelock so that only one token is generated during simultaneous calls
diff --git a/app_dart/bin/server.dart b/app_dart/bin/server.dart index 0d10fec..aba7ac5 100644 --- a/app_dart/bin/server.dart +++ b/app_dart/bin/server.dart
@@ -8,6 +8,7 @@ import 'package:appengine/appengine.dart'; import 'package:cocoon_service/cocoon_service.dart'; import 'package:gcloud/db.dart'; +import 'package:mutex/mutex.dart'; /// For local development, you might want to set this to true. const String _kCocoonUseInMemoryCache = 'COCOON_USE_IN_MEMORY_CACHE'; @@ -18,8 +19,9 @@ final bool inMemoryCache = Platform.environment[_kCocoonUseInMemoryCache] == 'true'; final CacheService cache = CacheService(inMemory: inMemoryCache); + final ReadWriteMutex readWriteMutex = ReadWriteMutex(); - final Config config = Config(dbService, cache); + final Config config = Config(dbService, cache, readWriteMutex); final AuthenticationProvider authProvider = AuthenticationProvider(config: config); final AuthenticationProvider swarmingAuthProvider = SwarmingAuthenticationProvider(config: config); final BuildBucketClient buildBucketClient = BuildBucketClient(
diff --git a/app_dart/lib/src/service/config.dart b/app_dart/lib/src/service/config.dart index 5b1a89f..2a77d09 100644 --- a/app_dart/lib/src/service/config.dart +++ b/app_dart/lib/src/service/config.dart
@@ -15,6 +15,7 @@ import 'package:graphql/client.dart'; import 'package:http/http.dart' as http; import 'package:meta/meta.dart'; +import 'package:mutex/mutex.dart'; import 'package:retry/retry.dart'; import '../../cocoon_service.dart'; @@ -30,12 +31,14 @@ const String kDefaultBranchName = 'master'; class Config { - Config(this._db, this._cache); + Config(this._db, this._cache, this._mutex); final DatastoreDB _db; final CacheService _cache; + final ReadWriteMutex _mutex; + /// List of Github presubmit supported repos. /// /// This adds support for the `waiting for tree to go green label` to the repo. @@ -325,15 +328,23 @@ } Future<String> generateGithubToken(gh.RepositorySlug slug) async { - // GitHub's secondary rate limits are run into very frequently when making auth tokens. - final Uint8List? cacheValue = await _cache.getOrCreate( - configCacheName, - 'githubToken-${slug.fullName}', - createFn: () => _generateGithubToken(slug), - // Tokens are minted for 10 minutes - ttl: const Duration(minutes: 8), - ); - + Uint8List? cacheValue; + // This is a read-write lock that prevents multiple Github tokens from + // being generated simultaneously, which would cause a rate limit. + await _mutex.acquireWrite(); + try { + // GitHub's secondary rate limits are run into very frequently when making auth tokens. + cacheValue = await _cache.getOrCreate( + configCacheName, + 'githubToken-${slug.fullName}', + createFn: () => _generateGithubToken(slug), + // Tokens are minted for 10 minutes + ttl: const Duration(minutes: 8), + ); + } + finally { + _mutex.release(); + } return String.fromCharCodes(cacheValue!); }
diff --git a/app_dart/pubspec.lock b/app_dart/pubspec.lock index 9de9a13..8e134f5 100644 --- a/app_dart/pubspec.lock +++ b/app_dart/pubspec.lock
@@ -497,6 +497,14 @@ url: "https://pub.dev" source: hosted version: "5.3.2" + mutex: + dependency: "direct main" + description: + name: mutex + sha256: "03116a4e46282a671b46c12de649d72c0ed18188ffe12a8d0fc63e83f4ad88f4" + url: "https://pub.dev" + source: hosted + version: "3.0.1" neat_cache: dependency: "direct main" description:
diff --git a/app_dart/pubspec.yaml b/app_dart/pubspec.yaml index dcd383e..a6eecbf 100644 --- a/app_dart/pubspec.yaml +++ b/app_dart/pubspec.yaml
@@ -31,6 +31,7 @@ logging: ^1.1.0 meta: ^1.8.0 mime: ^1.0.2 + mutex: ^3.0.1 neat_cache: ^2.0.2 path: ^1.8.2 process: ^4.2.4
diff --git a/app_dart/test/service/config_test.dart b/app_dart/test/service/config_test.dart index c653139..0e0c425 100644 --- a/app_dart/test/service/config_test.dart +++ b/app_dart/test/service/config_test.dart
@@ -6,19 +6,29 @@ import 'package:cocoon_service/cocoon_service.dart'; import 'package:github/github.dart'; +import 'package:mockito/mockito.dart'; +import 'package:mutex/mutex.dart'; import 'package:test/test.dart'; import '../src/datastore/fake_datastore.dart'; +import '../src/utilities/mocks.mocks.dart'; void main() { group('Config', () { FakeDatastoreDB datastore; late CacheService cacheService; late Config config; + late ReadWriteMutex readWriteMutex; + late MockReadWriteMutex mockReadWriteMutex; setUp(() { datastore = FakeDatastoreDB(); cacheService = CacheService(inMemory: true); - config = Config(datastore, cacheService); + readWriteMutex = ReadWriteMutex(); + mockReadWriteMutex = MockReadWriteMutex(); + config = Config(datastore, cacheService, mockReadWriteMutex); + + when(mockReadWriteMutex.acquireWrite()).thenAnswer((realInvocation) => readWriteMutex.acquireWrite()); + when(mockReadWriteMutex.release()).thenAnswer((realInvocation) => readWriteMutex.release()); }); test('githubAppInstallations when builder config does not exist', () async { const String configValue = '{"godofredoc/cocoon":{"installation_id":"123"}}'; @@ -46,6 +56,30 @@ expect(githubToken, 'githubToken'); }); + test('generateGithubToken only tries to generate a github token one at a time', () async { + const String configValue = 'githubToken'; + final Uint8List cachedValue = Uint8List.fromList(configValue.codeUnits); + await cacheService.set( + Config.configCacheName, + 'githubToken-${Config.flutterSlug}', + cachedValue, + ); + + final futures = <Future<String>>[]; + futures.add(config.generateGithubToken(Config.flutterSlug)); + futures.add(config.generateGithubToken(Config.flutterSlug)); + + await Future.wait(futures); + verifyInOrder( + [ + mockReadWriteMutex.acquireWrite(), + mockReadWriteMutex.release(), + mockReadWriteMutex.acquireWrite(), + mockReadWriteMutex.release() + ] + ); + }); + test('Returns the right flutter gold alert', () { expect( config.flutterGoldAlertConstant(RepositorySlug.full('flutter/flutter')),
diff --git a/app_dart/test/src/utilities/mocks.dart b/app_dart/test/src/utilities/mocks.dart index 87c0686..b1a6b8e 100644 --- a/app_dart/test/src/utilities/mocks.dart +++ b/app_dart/test/src/utilities/mocks.dart
@@ -22,6 +22,7 @@ import 'package:http/http.dart' as http; import 'package:http/testing.dart'; import 'package:mockito/annotations.dart'; +import 'package:mutex/mutex.dart'; import 'package:neat_cache/neat_cache.dart'; import 'package:process/process.dart'; @@ -76,6 +77,7 @@ LuciBuildService, ProcessManager, PullRequestsService, + ReadWriteMutex, RepositoriesService, TabledataResource, UsersService,
diff --git a/app_dart/test/src/utilities/mocks.mocks.dart b/app_dart/test/src/utilities/mocks.mocks.dart index 0e33d34..d04c488 100644 --- a/app_dart/test/src/utilities/mocks.mocks.dart +++ b/app_dart/test/src/utilities/mocks.mocks.dart
@@ -38,12 +38,13 @@ import 'package:graphql/src/graphql_client.dart' as _i14; import 'package:http/http.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; +import 'package:mutex/mutex.dart' as _i39; import 'package:neat_cache/neat_cache.dart' as _i20; import 'package:process/src/interface/process_manager.dart' as _i38; import 'package:retry/retry.dart' as _i8; import '../../service/cache_service_test.dart' as _i26; -import 'mocks.dart' as _i39; +import 'mocks.dart' as _i40; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -86,7 +87,8 @@ ); } -class _FakeAccessClientProvider_3 extends _i1.SmartFake implements _i5.AccessClientProvider { +class _FakeAccessClientProvider_3 extends _i1.SmartFake + implements _i5.AccessClientProvider { _FakeAccessClientProvider_3( Object parent, Invocation parentInvocation, @@ -96,7 +98,8 @@ ); } -class _FakeTabledataResource_4 extends _i1.SmartFake implements _i6.TabledataResource { +class _FakeTabledataResource_4 extends _i1.SmartFake + implements _i6.TabledataResource { _FakeTabledataResource_4( Object parent, Invocation parentInvocation, @@ -146,7 +149,8 @@ ); } -class _FakeSearchBuildsResponse_9 extends _i1.SmartFake implements _i9.SearchBuildsResponse { +class _FakeSearchBuildsResponse_9 extends _i1.SmartFake + implements _i9.SearchBuildsResponse { _FakeSearchBuildsResponse_9( Object parent, Invocation parentInvocation, @@ -166,7 +170,8 @@ ); } -class _FakeListBuildersResponse_11 extends _i1.SmartFake implements _i9.ListBuildersResponse { +class _FakeListBuildersResponse_11 extends _i1.SmartFake + implements _i9.ListBuildersResponse { _FakeListBuildersResponse_11( Object parent, Invocation parentInvocation, @@ -226,7 +231,8 @@ ); } -class _FakeGithubChecksUtil_17 extends _i1.SmartFake implements _i11.GithubChecksUtil { +class _FakeGithubChecksUtil_17 extends _i1.SmartFake + implements _i11.GithubChecksUtil { _FakeGithubChecksUtil_17( Object parent, Invocation parentInvocation, @@ -236,7 +242,8 @@ ); } -class _FakeCheckRunConclusion_18 extends _i1.SmartFake implements _i10.CheckRunConclusion { +class _FakeCheckRunConclusion_18 extends _i1.SmartFake + implements _i10.CheckRunConclusion { _FakeCheckRunConclusion_18( Object parent, Invocation parentInvocation, @@ -246,7 +253,8 @@ ); } -class _FakeCheckRunStatus_19 extends _i1.SmartFake implements _i10.CheckRunStatus { +class _FakeCheckRunStatus_19 extends _i1.SmartFake + implements _i10.CheckRunStatus { _FakeCheckRunStatus_19( Object parent, Invocation parentInvocation, @@ -346,7 +354,8 @@ ); } -class _FakeDefaultPolicies_29 extends _i1.SmartFake implements _i12.DefaultPolicies { +class _FakeDefaultPolicies_29 extends _i1.SmartFake + implements _i12.DefaultPolicies { _FakeDefaultPolicies_29( Object parent, Invocation parentInvocation, @@ -386,7 +395,8 @@ ); } -class _FakeGraphQLClient_33 extends _i1.SmartFake implements _i14.GraphQLClient { +class _FakeGraphQLClient_33 extends _i1.SmartFake + implements _i14.GraphQLClient { _FakeGraphQLClient_33( Object parent, Invocation parentInvocation, @@ -396,7 +406,8 @@ ); } -class _FakeObservableQuery_34<TParsed> extends _i1.SmartFake implements _i12.ObservableQuery<TParsed> { +class _FakeObservableQuery_34<TParsed> extends _i1.SmartFake + implements _i12.ObservableQuery<TParsed> { _FakeObservableQuery_34( Object parent, Invocation parentInvocation, @@ -406,7 +417,8 @@ ); } -class _FakeQueryResult_35<TParsed extends Object?> extends _i1.SmartFake implements _i12.QueryResult<TParsed> { +class _FakeQueryResult_35<TParsed extends Object?> extends _i1.SmartFake + implements _i12.QueryResult<TParsed> { _FakeQueryResult_35( Object parent, Invocation parentInvocation, @@ -426,7 +438,8 @@ ); } -class _FakeHttpClientRequest_37 extends _i1.SmartFake implements _i15.HttpClientRequest { +class _FakeHttpClientRequest_37 extends _i1.SmartFake + implements _i15.HttpClientRequest { _FakeHttpClientRequest_37( Object parent, Invocation parentInvocation, @@ -456,7 +469,8 @@ ); } -class _FakeHttpClientResponse_40 extends _i1.SmartFake implements _i15.HttpClientResponse { +class _FakeHttpClientResponse_40 extends _i1.SmartFake + implements _i15.HttpClientResponse { _FakeHttpClientResponse_40( Object parent, Invocation parentInvocation, @@ -486,7 +500,8 @@ ); } -class _FakeStreamSubscription_43<T> extends _i1.SmartFake implements _i17.StreamSubscription<T> { +class _FakeStreamSubscription_43<T> extends _i1.SmartFake + implements _i17.StreamSubscription<T> { _FakeStreamSubscription_43( Object parent, Invocation parentInvocation, @@ -496,7 +511,8 @@ ); } -class _FakeJobCancelResponse_44 extends _i1.SmartFake implements _i6.JobCancelResponse { +class _FakeJobCancelResponse_44 extends _i1.SmartFake + implements _i6.JobCancelResponse { _FakeJobCancelResponse_44( Object parent, Invocation parentInvocation, @@ -516,7 +532,8 @@ ); } -class _FakeGetQueryResultsResponse_46 extends _i1.SmartFake implements _i6.GetQueryResultsResponse { +class _FakeGetQueryResultsResponse_46 extends _i1.SmartFake + implements _i6.GetQueryResultsResponse { _FakeGetQueryResultsResponse_46( Object parent, Invocation parentInvocation, @@ -546,7 +563,8 @@ ); } -class _FakeBuildBucketClient_49 extends _i1.SmartFake implements _i18.BuildBucketClient { +class _FakeBuildBucketClient_49 extends _i1.SmartFake + implements _i18.BuildBucketClient { _FakeBuildBucketClient_49( Object parent, Invocation parentInvocation, @@ -576,7 +594,8 @@ ); } -class _FakeProcessResult_52 extends _i1.SmartFake implements _i15.ProcessResult { +class _FakeProcessResult_52 extends _i1.SmartFake + implements _i15.ProcessResult { _FakeProcessResult_52( Object parent, Invocation parentInvocation, @@ -586,7 +605,8 @@ ); } -class _FakePullRequestMerge_53 extends _i1.SmartFake implements _i10.PullRequestMerge { +class _FakePullRequestMerge_53 extends _i1.SmartFake + implements _i10.PullRequestMerge { _FakePullRequestMerge_53( Object parent, Invocation parentInvocation, @@ -596,7 +616,8 @@ ); } -class _FakePullRequestComment_54 extends _i1.SmartFake implements _i10.PullRequestComment { +class _FakePullRequestComment_54 extends _i1.SmartFake + implements _i10.PullRequestComment { _FakePullRequestComment_54( Object parent, Invocation parentInvocation, @@ -606,7 +627,8 @@ ); } -class _FakePullRequestReview_55 extends _i1.SmartFake implements _i10.PullRequestReview { +class _FakePullRequestReview_55 extends _i1.SmartFake + implements _i10.PullRequestReview { _FakePullRequestReview_55( Object parent, Invocation parentInvocation, @@ -626,7 +648,8 @@ ); } -class _FakeLicenseDetails_57 extends _i1.SmartFake implements _i10.LicenseDetails { +class _FakeLicenseDetails_57 extends _i1.SmartFake + implements _i10.LicenseDetails { _FakeLicenseDetails_57( Object parent, Invocation parentInvocation, @@ -636,7 +659,8 @@ ); } -class _FakeLanguageBreakdown_58 extends _i1.SmartFake implements _i10.LanguageBreakdown { +class _FakeLanguageBreakdown_58 extends _i1.SmartFake + implements _i10.LanguageBreakdown { _FakeLanguageBreakdown_58( Object parent, Invocation parentInvocation, @@ -656,7 +680,8 @@ ); } -class _FakeCommitComment_60 extends _i1.SmartFake implements _i10.CommitComment { +class _FakeCommitComment_60 extends _i1.SmartFake + implements _i10.CommitComment { _FakeCommitComment_60( Object parent, Invocation parentInvocation, @@ -666,7 +691,8 @@ ); } -class _FakeRepositoryCommit_61 extends _i1.SmartFake implements _i10.RepositoryCommit { +class _FakeRepositoryCommit_61 extends _i1.SmartFake + implements _i10.RepositoryCommit { _FakeRepositoryCommit_61( Object parent, Invocation parentInvocation, @@ -676,7 +702,8 @@ ); } -class _FakeGitHubComparison_62 extends _i1.SmartFake implements _i10.GitHubComparison { +class _FakeGitHubComparison_62 extends _i1.SmartFake + implements _i10.GitHubComparison { _FakeGitHubComparison_62( Object parent, Invocation parentInvocation, @@ -696,7 +723,8 @@ ); } -class _FakeRepositoryContents_64 extends _i1.SmartFake implements _i10.RepositoryContents { +class _FakeRepositoryContents_64 extends _i1.SmartFake + implements _i10.RepositoryContents { _FakeRepositoryContents_64( Object parent, Invocation parentInvocation, @@ -706,7 +734,8 @@ ); } -class _FakeContentCreation_65 extends _i1.SmartFake implements _i10.ContentCreation { +class _FakeContentCreation_65 extends _i1.SmartFake + implements _i10.ContentCreation { _FakeContentCreation_65( Object parent, Invocation parentInvocation, @@ -736,7 +765,8 @@ ); } -class _FakeRepositoryPages_68 extends _i1.SmartFake implements _i10.RepositoryPages { +class _FakeRepositoryPages_68 extends _i1.SmartFake + implements _i10.RepositoryPages { _FakeRepositoryPages_68( Object parent, Invocation parentInvocation, @@ -776,7 +806,8 @@ ); } -class _FakeContributorParticipation_72 extends _i1.SmartFake implements _i10.ContributorParticipation { +class _FakeContributorParticipation_72 extends _i1.SmartFake + implements _i10.ContributorParticipation { _FakeContributorParticipation_72( Object parent, Invocation parentInvocation, @@ -786,7 +817,8 @@ ); } -class _FakeRepositoryStatus_73 extends _i1.SmartFake implements _i10.RepositoryStatus { +class _FakeRepositoryStatus_73 extends _i1.SmartFake + implements _i10.RepositoryStatus { _FakeRepositoryStatus_73( Object parent, Invocation parentInvocation, @@ -796,7 +828,8 @@ ); } -class _FakeCombinedRepositoryStatus_74 extends _i1.SmartFake implements _i10.CombinedRepositoryStatus { +class _FakeCombinedRepositoryStatus_74 extends _i1.SmartFake + implements _i10.CombinedRepositoryStatus { _FakeCombinedRepositoryStatus_74( Object parent, Invocation parentInvocation, @@ -816,7 +849,8 @@ ); } -class _FakeTableDataInsertAllResponse_76 extends _i1.SmartFake implements _i6.TableDataInsertAllResponse { +class _FakeTableDataInsertAllResponse_76 extends _i1.SmartFake + implements _i6.TableDataInsertAllResponse { _FakeTableDataInsertAllResponse_76( Object parent, Invocation parentInvocation, @@ -876,7 +910,8 @@ ); } -class _FakeActivityService_82 extends _i1.SmartFake implements _i10.ActivityService { +class _FakeActivityService_82 extends _i1.SmartFake + implements _i10.ActivityService { _FakeActivityService_82( Object parent, Invocation parentInvocation, @@ -886,7 +921,8 @@ ); } -class _FakeAuthorizationsService_83 extends _i1.SmartFake implements _i10.AuthorizationsService { +class _FakeAuthorizationsService_83 extends _i1.SmartFake + implements _i10.AuthorizationsService { _FakeAuthorizationsService_83( Object parent, Invocation parentInvocation, @@ -916,7 +952,8 @@ ); } -class _FakeIssuesService_86 extends _i1.SmartFake implements _i10.IssuesService { +class _FakeIssuesService_86 extends _i1.SmartFake + implements _i10.IssuesService { _FakeIssuesService_86( Object parent, Invocation parentInvocation, @@ -936,7 +973,8 @@ ); } -class _FakeOrganizationsService_88 extends _i1.SmartFake implements _i10.OrganizationsService { +class _FakeOrganizationsService_88 extends _i1.SmartFake + implements _i10.OrganizationsService { _FakeOrganizationsService_88( Object parent, Invocation parentInvocation, @@ -946,7 +984,8 @@ ); } -class _FakePullRequestsService_89 extends _i1.SmartFake implements _i10.PullRequestsService { +class _FakePullRequestsService_89 extends _i1.SmartFake + implements _i10.PullRequestsService { _FakePullRequestsService_89( Object parent, Invocation parentInvocation, @@ -956,7 +995,8 @@ ); } -class _FakeRepositoriesService_90 extends _i1.SmartFake implements _i10.RepositoriesService { +class _FakeRepositoriesService_90 extends _i1.SmartFake + implements _i10.RepositoriesService { _FakeRepositoriesService_90( Object parent, Invocation parentInvocation, @@ -966,7 +1006,8 @@ ); } -class _FakeSearchService_91 extends _i1.SmartFake implements _i10.SearchService { +class _FakeSearchService_91 extends _i1.SmartFake + implements _i10.SearchService { _FakeSearchService_91( Object parent, Invocation parentInvocation, @@ -976,7 +1017,8 @@ ); } -class _FakeUrlShortenerService_92 extends _i1.SmartFake implements _i10.UrlShortenerService { +class _FakeUrlShortenerService_92 extends _i1.SmartFake + implements _i10.UrlShortenerService { _FakeUrlShortenerService_92( Object parent, Invocation parentInvocation, @@ -996,7 +1038,8 @@ ); } -class _FakeChecksService_94 extends _i1.SmartFake implements _i10.ChecksService { +class _FakeChecksService_94 extends _i1.SmartFake + implements _i10.ChecksService { _FakeChecksService_94( Object parent, Invocation parentInvocation, @@ -1019,14 +1062,17 @@ /// A class which mocks [AccessClientProvider]. /// /// See the documentation for Mockito's code generation for more information. -class MockAccessClientProvider extends _i1.Mock implements _i5.AccessClientProvider { +class MockAccessClientProvider extends _i1.Mock + implements _i5.AccessClientProvider { MockAccessClientProvider() { _i1.throwOnMissingStub(this); } @override _i17.Future<_i2.Client> createAccessClient( - {List<String>? scopes = const [r'https://www.googleapis.com/auth/cloud-platform']}) => + {List<String>? scopes = const [ + r'https://www.googleapis.com/auth/cloud-platform' + ]}) => (super.noSuchMethod( Invocation.method( #createAccessClient, @@ -1047,7 +1093,8 @@ /// A class which mocks [AccessTokenService]. /// /// See the documentation for Mockito's code generation for more information. -class MockAccessTokenService extends _i1.Mock implements _i21.AccessTokenService { +class MockAccessTokenService extends _i1.Mock + implements _i21.AccessTokenService { MockAccessTokenService() { _i1.throwOnMissingStub(this); } @@ -1098,7 +1145,8 @@ #defaultTabledata, [], ), - returnValue: _i17.Future<_i6.TabledataResource>.value(_FakeTabledataResource_4( + returnValue: + _i17.Future<_i6.TabledataResource>.value(_FakeTabledataResource_4( this, Invocation.method( #defaultTabledata, @@ -1135,7 +1183,8 @@ #bucket: bucket, }, ), - returnValue: _i17.Future<List<_i22.BuilderStatistic>>.value(<_i22.BuilderStatistic>[]), + returnValue: _i17.Future<List<_i22.BuilderStatistic>>.value( + <_i22.BuilderStatistic>[]), ) as _i17.Future<List<_i22.BuilderStatistic>>); @override _i17.Future<List<_i22.BuilderRecord>> listRecentBuildRecordsForBuilder( @@ -1152,7 +1201,8 @@ #limit: limit, }, ), - returnValue: _i17.Future<List<_i22.BuilderRecord>>.value(<_i22.BuilderRecord>[]), + returnValue: + _i17.Future<List<_i22.BuilderRecord>>.value(<_i22.BuilderRecord>[]), ) as _i17.Future<List<_i22.BuilderRecord>>); } @@ -1189,7 +1239,8 @@ ), ) as _i8.RetryOptions); @override - _i17.Future<void> handleCreateRequest(_i24.CreateEvent? createEvent) => (super.noSuchMethod( + _i17.Future<void> handleCreateRequest(_i24.CreateEvent? createEvent) => + (super.noSuchMethod( Invocation.method( #handleCreateRequest, [createEvent], @@ -1220,7 +1271,8 @@ #slug: slug, }, ), - returnValue: _i17.Future<List<Map<String, String>>>.value(<Map<String, String>>[]), + returnValue: _i17.Future<List<Map<String, String>>>.value( + <Map<String, String>>[]), ) as _i17.Future<List<Map<String, String>>>); } @@ -1254,7 +1306,8 @@ @override _i17.Future<_i9.Build> scheduleBuild( _i9.ScheduleBuildRequest? request, { - String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', + String? buildBucketUri = + r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', }) => (super.noSuchMethod( Invocation.method( @@ -1274,7 +1327,8 @@ @override _i17.Future<_i9.SearchBuildsResponse> searchBuilds( _i9.SearchBuildsRequest? request, { - String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', + String? buildBucketUri = + r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', }) => (super.noSuchMethod( Invocation.method( @@ -1282,7 +1336,8 @@ [request], {#buildBucketUri: buildBucketUri}, ), - returnValue: _i17.Future<_i9.SearchBuildsResponse>.value(_FakeSearchBuildsResponse_9( + returnValue: _i17.Future<_i9.SearchBuildsResponse>.value( + _FakeSearchBuildsResponse_9( this, Invocation.method( #searchBuilds, @@ -1294,7 +1349,8 @@ @override _i17.Future<_i9.BatchResponse> batch( _i9.BatchRequest? request, { - String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', + String? buildBucketUri = + r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', }) => (super.noSuchMethod( Invocation.method( @@ -1314,7 +1370,8 @@ @override _i17.Future<_i9.Build> cancelBuild( _i9.CancelBuildRequest? request, { - String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', + String? buildBucketUri = + r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', }) => (super.noSuchMethod( Invocation.method( @@ -1334,7 +1391,8 @@ @override _i17.Future<_i9.Build> getBuild( _i9.GetBuildRequest? request, { - String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', + String? buildBucketUri = + r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds', }) => (super.noSuchMethod( Invocation.method( @@ -1354,7 +1412,8 @@ @override _i17.Future<_i9.ListBuildersResponse> listBuilders( _i9.ListBuildersRequest? request, { - String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builders', + String? buildBucketUri = + r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builders', }) => (super.noSuchMethod( Invocation.method( @@ -1362,7 +1421,8 @@ [request], {#buildBucketUri: buildBucketUri}, ), - returnValue: _i17.Future<_i9.ListBuildersResponse>.value(_FakeListBuildersResponse_11( + returnValue: _i17.Future<_i9.ListBuildersResponse>.value( + _FakeListBuildersResponse_11( this, Invocation.method( #listBuilders, @@ -1659,7 +1719,8 @@ )), ) as _i17.Future<_i10.Issue>); @override - _i17.Stream<_i10.User> listAssignees(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.User> listAssignees(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listAssignees, [slug], @@ -1697,7 +1758,9 @@ returnValue: _i17.Stream<_i10.IssueComment>.empty(), ) as _i17.Stream<_i10.IssueComment>); @override - _i17.Stream<_i10.IssueComment> listCommentsByRepo(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.IssueComment> listCommentsByRepo( + _i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listCommentsByRepo, [slug], @@ -1798,7 +1861,8 @@ returnValue: _i17.Future<bool>.value(false), ) as _i17.Future<bool>); @override - _i17.Stream<_i10.IssueLabel> listLabels(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.IssueLabel> listLabels(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listLabels, [slug], @@ -1928,7 +1992,8 @@ labels, ], ), - returnValue: _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]), + returnValue: + _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]), ) as _i17.Future<List<_i10.IssueLabel>>); @override _i17.Future<List<_i10.IssueLabel>> replaceLabelsForIssue( @@ -1945,7 +2010,8 @@ labels, ], ), - returnValue: _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]), + returnValue: + _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]), ) as _i17.Future<List<_i10.IssueLabel>>); @override _i17.Future<bool> removeLabelForIssue( @@ -1980,7 +2046,8 @@ returnValue: _i17.Future<bool>.value(false), ) as _i17.Future<bool>); @override - _i17.Stream<_i10.Milestone> listMilestones(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.Milestone> listMilestones(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listMilestones, [slug], @@ -2031,7 +2098,8 @@ /// A class which mocks [GithubChecksService]. /// /// See the documentation for Mockito's code generation for more information. -class MockGithubChecksService extends _i1.Mock implements _i28.GithubChecksService { +class MockGithubChecksService extends _i1.Mock + implements _i28.GithubChecksService { MockGithubChecksService() { _i1.throwOnMissingStub(this); } @@ -2061,7 +2129,8 @@ ), ) as _i11.GithubChecksUtil); @override - set githubChecksUtil(_i11.GithubChecksUtil? _githubChecksUtil) => super.noSuchMethod( + set githubChecksUtil(_i11.GithubChecksUtil? _githubChecksUtil) => + super.noSuchMethod( Invocation.setter( #githubChecksUtil, _githubChecksUtil, @@ -2112,7 +2181,8 @@ returnValue: '', ) as String); @override - _i10.CheckRunConclusion conclusionForResult(_i30.Result? result) => (super.noSuchMethod( + _i10.CheckRunConclusion conclusionForResult(_i30.Result? result) => + (super.noSuchMethod( Invocation.method( #conclusionForResult, [result], @@ -2126,7 +2196,8 @@ ), ) as _i10.CheckRunConclusion); @override - _i10.CheckRunStatus statusForResult(_i30.Status? status) => (super.noSuchMethod( + _i10.CheckRunStatus statusForResult(_i30.Status? status) => + (super.noSuchMethod( Invocation.method( #statusForResult, [status], @@ -2162,7 +2233,8 @@ checkSuiteEvent, ], ), - returnValue: _i17.Future<Map<String, _i10.CheckRun>>.value(<String, _i10.CheckRun>{}), + returnValue: _i17.Future<Map<String, _i10.CheckRun>>.value( + <String, _i10.CheckRun>{}), ) as _i17.Future<Map<String, _i10.CheckRun>>); @override _i17.Future<_i10.CheckSuite> getCheckSuite( @@ -2312,7 +2384,8 @@ lastCommitTimestampMills, ], ), - returnValue: _i17.Future<List<_i10.RepositoryCommit>>.value(<_i10.RepositoryCommit>[]), + returnValue: _i17.Future<List<_i10.RepositoryCommit>>.value( + <_i10.RepositoryCommit>[]), ) as _i17.Future<List<_i10.RepositoryCommit>>); @override _i17.Future<List<_i10.PullRequest>> listPullRequests( @@ -2327,7 +2400,8 @@ branch, ], ), - returnValue: _i17.Future<List<_i10.PullRequest>>.value(<_i10.PullRequest>[]), + returnValue: + _i17.Future<List<_i10.PullRequest>>.value(<_i10.PullRequest>[]), ) as _i17.Future<List<_i10.PullRequest>>); @override _i17.Future<_i10.PullRequest> createPullRequest( @@ -2493,10 +2567,12 @@ #labels: labels, }, ), - returnValue: _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]), + returnValue: + _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]), ) as _i17.Future<List<_i10.IssueLabel>>); @override - _i17.Future<List<String>> listFiles(_i10.PullRequest? pullRequest) => (super.noSuchMethod( + _i17.Future<List<String>> listFiles(_i10.PullRequest? pullRequest) => + (super.noSuchMethod( Invocation.method( #listFiles, [pullRequest], @@ -2899,7 +2975,8 @@ ), ) as _i12.DefaultPolicies); @override - set defaultPolicies(_i12.DefaultPolicies? _defaultPolicies) => super.noSuchMethod( + set defaultPolicies(_i12.DefaultPolicies? _defaultPolicies) => + super.noSuchMethod( Invocation.setter( #defaultPolicies, _defaultPolicies, @@ -2971,7 +3048,9 @@ ), ) as _i14.GraphQLClient); @override - _i12.ObservableQuery<TParsed> watchQuery<TParsed>(_i12.WatchQueryOptions<TParsed>? options) => (super.noSuchMethod( + _i12.ObservableQuery<TParsed> watchQuery<TParsed>( + _i12.WatchQueryOptions<TParsed>? options) => + (super.noSuchMethod( Invocation.method( #watchQuery, [options], @@ -2985,7 +3064,9 @@ ), ) as _i12.ObservableQuery<TParsed>); @override - _i12.ObservableQuery<TParsed> watchMutation<TParsed>(_i12.WatchQueryOptions<TParsed>? options) => (super.noSuchMethod( + _i12.ObservableQuery<TParsed> watchMutation<TParsed>( + _i12.WatchQueryOptions<TParsed>? options) => + (super.noSuchMethod( Invocation.method( #watchMutation, [options], @@ -2999,12 +3080,15 @@ ), ) as _i12.ObservableQuery<TParsed>); @override - _i17.Future<_i12.QueryResult<TParsed>> query<TParsed>(_i12.QueryOptions<TParsed>? options) => (super.noSuchMethod( + _i17.Future<_i12.QueryResult<TParsed>> query<TParsed>( + _i12.QueryOptions<TParsed>? options) => + (super.noSuchMethod( Invocation.method( #query, [options], ), - returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value(_FakeQueryResult_35<TParsed>( + returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value( + _FakeQueryResult_35<TParsed>( this, Invocation.method( #query, @@ -3013,12 +3097,15 @@ )), ) as _i17.Future<_i12.QueryResult<TParsed>>); @override - _i17.Future<_i12.QueryResult<TParsed>> mutate<TParsed>(_i12.MutationOptions<TParsed>? options) => (super.noSuchMethod( + _i17.Future<_i12.QueryResult<TParsed>> mutate<TParsed>( + _i12.MutationOptions<TParsed>? options) => + (super.noSuchMethod( Invocation.method( #mutate, [options], ), - returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value(_FakeQueryResult_35<TParsed>( + returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value( + _FakeQueryResult_35<TParsed>( this, Invocation.method( #mutate, @@ -3027,7 +3114,8 @@ )), ) as _i17.Future<_i12.QueryResult<TParsed>>); @override - _i17.Stream<_i12.QueryResult<TParsed>> subscribe<TParsed>(_i12.SubscriptionOptions<TParsed>? options) => + _i17.Stream<_i12.QueryResult<TParsed>> subscribe<TParsed>( + _i12.SubscriptionOptions<TParsed>? options) => (super.noSuchMethod( Invocation.method( #subscribe, @@ -3050,7 +3138,8 @@ #previousResult: previousResult, }, ), - returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value(_FakeQueryResult_35<TParsed>( + returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value( + _FakeQueryResult_35<TParsed>( this, Invocation.method( #fetchMore, @@ -3117,7 +3206,8 @@ returnValueForMissingStub: null, ); @override - _i17.Future<List<_i12.QueryResult<Object?>?>>? resetStore({bool? refetchQueries = true}) => + _i17.Future<List<_i12.QueryResult<Object?>?>>? resetStore( + {bool? refetchQueries = true}) => (super.noSuchMethod(Invocation.method( #resetStore, [], @@ -3280,7 +3370,8 @@ path, ], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #open, @@ -3306,7 +3397,8 @@ url, ], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #openUrl, @@ -3332,7 +3424,8 @@ path, ], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #get, @@ -3350,7 +3443,8 @@ #getUrl, [url], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #getUrl, @@ -3373,7 +3467,8 @@ path, ], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #post, @@ -3391,7 +3486,8 @@ #postUrl, [url], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #postUrl, @@ -3414,7 +3510,8 @@ path, ], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #put, @@ -3432,7 +3529,8 @@ #putUrl, [url], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #putUrl, @@ -3455,7 +3553,8 @@ path, ], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #delete, @@ -3468,12 +3567,14 @@ )), ) as _i17.Future<_i15.HttpClientRequest>); @override - _i17.Future<_i15.HttpClientRequest> deleteUrl(Uri? url) => (super.noSuchMethod( + _i17.Future<_i15.HttpClientRequest> deleteUrl(Uri? url) => + (super.noSuchMethod( Invocation.method( #deleteUrl, [url], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #deleteUrl, @@ -3496,7 +3597,8 @@ path, ], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #patch, @@ -3514,7 +3616,8 @@ #patchUrl, [url], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #patchUrl, @@ -3537,7 +3640,8 @@ path, ], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #head, @@ -3555,7 +3659,8 @@ #headUrl, [url], ), - returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( + returnValue: + _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37( this, Invocation.method( #headUrl, @@ -3712,7 +3817,8 @@ @override _i17.Future<_i15.HttpClientResponse> get done => (super.noSuchMethod( Invocation.getter(#done), - returnValue: _i17.Future<_i15.HttpClientResponse>.value(_FakeHttpClientResponse_40( + returnValue: _i17.Future<_i15.HttpClientResponse>.value( + _FakeHttpClientResponse_40( this, Invocation.getter(#done), )), @@ -3739,7 +3845,8 @@ #close, [], ), - returnValue: _i17.Future<_i15.HttpClientResponse>.value(_FakeHttpClientResponse_40( + returnValue: _i17.Future<_i15.HttpClientResponse>.value( + _FakeHttpClientResponse_40( this, Invocation.method( #close, @@ -3825,7 +3932,8 @@ returnValueForMissingStub: null, ); @override - _i17.Future<dynamic> addStream(_i17.Stream<List<int>>? stream) => (super.noSuchMethod( + _i17.Future<dynamic> addStream(_i17.Stream<List<int>>? stream) => + (super.noSuchMethod( Invocation.method( #addStream, [stream], @@ -3845,7 +3953,8 @@ /// A class which mocks [HttpClientResponse]. /// /// See the documentation for Mockito's code generation for more information. -class MockHttpClientResponse extends _i1.Mock implements _i15.HttpClientResponse { +class MockHttpClientResponse extends _i1.Mock + implements _i15.HttpClientResponse { MockHttpClientResponse() { _i1.throwOnMissingStub(this); } @@ -3866,7 +3975,8 @@ returnValue: 0, ) as int); @override - _i15.HttpClientResponseCompressionState get compressionState => (super.noSuchMethod( + _i15.HttpClientResponseCompressionState get compressionState => + (super.noSuchMethod( Invocation.getter(#compressionState), returnValue: _i15.HttpClientResponseCompressionState.notCompressed, ) as _i15.HttpClientResponseCompressionState); @@ -3943,7 +4053,8 @@ followLoops, ], ), - returnValue: _i17.Future<_i15.HttpClientResponse>.value(_FakeHttpClientResponse_40( + returnValue: _i17.Future<_i15.HttpClientResponse>.value( + _FakeHttpClientResponse_40( this, Invocation.method( #redirect, @@ -4016,7 +4127,8 @@ ), ) as _i17.StreamSubscription<List<int>>); @override - _i17.Stream<List<int>> where(bool Function(List<int>)? test) => (super.noSuchMethod( + _i17.Stream<List<int>> where(bool Function(List<int>)? test) => + (super.noSuchMethod( Invocation.method( #where, [test], @@ -4032,7 +4144,8 @@ returnValue: _i17.Stream<S>.empty(), ) as _i17.Stream<S>); @override - _i17.Stream<E> asyncMap<E>(_i17.FutureOr<E> Function(List<int>)? convert) => (super.noSuchMethod( + _i17.Stream<E> asyncMap<E>(_i17.FutureOr<E> Function(List<int>)? convert) => + (super.noSuchMethod( Invocation.method( #asyncMap, [convert], @@ -4040,7 +4153,8 @@ returnValue: _i17.Stream<E>.empty(), ) as _i17.Stream<E>); @override - _i17.Stream<E> asyncExpand<E>(_i17.Stream<E>? Function(List<int>)? convert) => (super.noSuchMethod( + _i17.Stream<E> asyncExpand<E>(_i17.Stream<E>? Function(List<int>)? convert) => + (super.noSuchMethod( Invocation.method( #asyncExpand, [convert], @@ -4061,7 +4175,8 @@ returnValue: _i17.Stream<List<int>>.empty(), ) as _i17.Stream<List<int>>); @override - _i17.Stream<S> expand<S>(Iterable<S> Function(List<int>)? convert) => (super.noSuchMethod( + _i17.Stream<S> expand<S>(Iterable<S> Function(List<int>)? convert) => + (super.noSuchMethod( Invocation.method( #expand, [convert], @@ -4069,7 +4184,8 @@ returnValue: _i17.Stream<S>.empty(), ) as _i17.Stream<S>); @override - _i17.Future<dynamic> pipe(_i17.StreamConsumer<List<int>>? streamConsumer) => (super.noSuchMethod( + _i17.Future<dynamic> pipe(_i17.StreamConsumer<List<int>>? streamConsumer) => + (super.noSuchMethod( Invocation.method( #pipe, [streamConsumer], @@ -4077,7 +4193,9 @@ returnValue: _i17.Future<dynamic>.value(), ) as _i17.Future<dynamic>); @override - _i17.Stream<S> transform<S>(_i17.StreamTransformer<List<int>, S>? streamTransformer) => (super.noSuchMethod( + _i17.Stream<S> transform<S>( + _i17.StreamTransformer<List<int>, S>? streamTransformer) => + (super.noSuchMethod( Invocation.method( #transform, [streamTransformer], @@ -4134,7 +4252,8 @@ returnValue: _i17.Future<bool>.value(false), ) as _i17.Future<bool>); @override - _i17.Future<dynamic> forEach(void Function(List<int>)? action) => (super.noSuchMethod( + _i17.Future<dynamic> forEach(void Function(List<int>)? action) => + (super.noSuchMethod( Invocation.method( #forEach, [action], @@ -4142,7 +4261,8 @@ returnValue: _i17.Future<dynamic>.value(), ) as _i17.Future<dynamic>); @override - _i17.Future<bool> every(bool Function(List<int>)? test) => (super.noSuchMethod( + _i17.Future<bool> every(bool Function(List<int>)? test) => + (super.noSuchMethod( Invocation.method( #every, [test], @@ -4198,7 +4318,8 @@ returnValue: _i17.Stream<List<int>>.empty(), ) as _i17.Stream<List<int>>); @override - _i17.Stream<List<int>> takeWhile(bool Function(List<int>)? test) => (super.noSuchMethod( + _i17.Stream<List<int>> takeWhile(bool Function(List<int>)? test) => + (super.noSuchMethod( Invocation.method( #takeWhile, [test], @@ -4214,7 +4335,8 @@ returnValue: _i17.Stream<List<int>>.empty(), ) as _i17.Stream<List<int>>); @override - _i17.Stream<List<int>> skipWhile(bool Function(List<int>)? test) => (super.noSuchMethod( + _i17.Stream<List<int>> skipWhile(bool Function(List<int>)? test) => + (super.noSuchMethod( Invocation.method( #skipWhile, [test], @@ -4324,7 +4446,8 @@ #$fields: $fields, }, ), - returnValue: _i17.Future<_i6.JobCancelResponse>.value(_FakeJobCancelResponse_44( + returnValue: + _i17.Future<_i6.JobCancelResponse>.value(_FakeJobCancelResponse_44( this, Invocation.method( #cancel, @@ -4422,7 +4545,8 @@ #$fields: $fields, }, ), - returnValue: _i17.Future<_i6.GetQueryResultsResponse>.value(_FakeGetQueryResultsResponse_46( + returnValue: _i17.Future<_i6.GetQueryResultsResponse>.value( + _FakeGetQueryResultsResponse_46( this, Invocation.method( #getQueryResults, @@ -4572,7 +4696,8 @@ ), ) as _i18.BuildBucketClient); @override - set buildBucketClient(_i18.BuildBucketClient? _buildBucketClient) => super.noSuchMethod( + set buildBucketClient(_i18.BuildBucketClient? _buildBucketClient) => + super.noSuchMethod( Invocation.setter( #buildBucketClient, _buildBucketClient, @@ -4604,7 +4729,8 @@ ), ) as _i11.GithubChecksUtil); @override - set githubChecksUtil(_i11.GithubChecksUtil? _githubChecksUtil) => super.noSuchMethod( + set githubChecksUtil(_i11.GithubChecksUtil? _githubChecksUtil) => + super.noSuchMethod( Invocation.setter( #githubChecksUtil, _githubChecksUtil, @@ -4648,7 +4774,8 @@ max, ], ), - returnValue: _i17.Future<List<List<_i9.Request>>>.value(<List<_i9.Request>>[]), + returnValue: + _i17.Future<List<List<_i9.Request>>>.value(<List<_i9.Request>>[]), ) as _i17.Future<List<List<_i9.Request>>>); @override _i17.Future<Iterable<_i9.Build>> getTryBuilds( @@ -4706,12 +4833,15 @@ returnValue: _i17.Future<Iterable<_i9.Build>>.value(<_i9.Build>[]), ) as _i17.Future<Iterable<_i9.Build>>); @override - _i17.Future<Map<String?, _i9.Build?>> tryBuildsForPullRequest(_i10.PullRequest? pullRequest) => (super.noSuchMethod( + _i17.Future<Map<String?, _i9.Build?>> tryBuildsForPullRequest( + _i10.PullRequest? pullRequest) => + (super.noSuchMethod( Invocation.method( #tryBuildsForPullRequest, [pullRequest], ), - returnValue: _i17.Future<Map<String?, _i9.Build?>>.value(<String?, _i9.Build?>{}), + returnValue: _i17.Future<Map<String?, _i9.Build?>>.value( + <String?, _i9.Build?>{}), ) as _i17.Future<Map<String?, _i9.Build?>>); @override _i17.Future<List<_i32.Target>> scheduleTryBuilds({ @@ -4792,7 +4922,9 @@ )), ) as _i17.Future<_i9.Build>); @override - _i17.Future<_i9.Build> rescheduleUsingCheckRunEvent(_i33.CheckRunEvent? checkRunEvent) => (super.noSuchMethod( + _i17.Future<_i9.Build> rescheduleUsingCheckRunEvent( + _i33.CheckRunEvent? checkRunEvent) => + (super.noSuchMethod( Invocation.method( #rescheduleUsingCheckRunEvent, [checkRunEvent], @@ -4969,7 +5101,8 @@ #stderrEncoding: stderrEncoding, }, ), - returnValue: _i17.Future<_i15.ProcessResult>.value(_FakeProcessResult_52( + returnValue: + _i17.Future<_i15.ProcessResult>.value(_FakeProcessResult_52( this, Invocation.method( #run, @@ -5057,7 +5190,8 @@ /// A class which mocks [PullRequestsService]. /// /// See the documentation for Mockito's code generation for more information. -class MockPullRequestsService extends _i1.Mock implements _i10.PullRequestsService { +class MockPullRequestsService extends _i1.Mock + implements _i10.PullRequestsService { MockPullRequestsService() { _i1.throwOnMissingStub(this); } @@ -5264,7 +5398,8 @@ #requestSha: requestSha, }, ), - returnValue: _i17.Future<_i10.PullRequestMerge>.value(_FakePullRequestMerge_53( + returnValue: + _i17.Future<_i10.PullRequestMerge>.value(_FakePullRequestMerge_53( this, Invocation.method( #merge, @@ -5296,7 +5431,9 @@ returnValue: _i17.Stream<_i10.PullRequestComment>.empty(), ) as _i17.Stream<_i10.PullRequestComment>); @override - _i17.Stream<_i10.PullRequestComment> listComments(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.PullRequestComment> listComments( + _i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listComments, [slug], @@ -5318,7 +5455,8 @@ comment, ], ), - returnValue: _i17.Future<_i10.PullRequestComment>.value(_FakePullRequestComment_54( + returnValue: _i17.Future<_i10.PullRequestComment>.value( + _FakePullRequestComment_54( this, Invocation.method( #createComment, @@ -5343,7 +5481,8 @@ review, ], ), - returnValue: _i17.Future<_i10.PullRequestReview>.value(_FakePullRequestReview_55( + returnValue: + _i17.Future<_i10.PullRequestReview>.value(_FakePullRequestReview_55( this, Invocation.method( #createReview, @@ -5356,10 +5495,78 @@ ) as _i17.Future<_i10.PullRequestReview>); } +/// A class which mocks [ReadWriteMutex]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockReadWriteMutex extends _i1.Mock implements _i39.ReadWriteMutex { + MockReadWriteMutex() { + _i1.throwOnMissingStub(this); + } + + @override + bool get isLocked => (super.noSuchMethod( + Invocation.getter(#isLocked), + returnValue: false, + ) as bool); + @override + bool get isWriteLocked => (super.noSuchMethod( + Invocation.getter(#isWriteLocked), + returnValue: false, + ) as bool); + @override + bool get isReadLocked => (super.noSuchMethod( + Invocation.getter(#isReadLocked), + returnValue: false, + ) as bool); + @override + _i17.Future<dynamic> acquireRead() => (super.noSuchMethod( + Invocation.method( + #acquireRead, + [], + ), + returnValue: _i17.Future<dynamic>.value(), + ) as _i17.Future<dynamic>); + @override + _i17.Future<dynamic> acquireWrite() => (super.noSuchMethod( + Invocation.method( + #acquireWrite, + [], + ), + returnValue: _i17.Future<dynamic>.value(), + ) as _i17.Future<dynamic>); + @override + void release() => super.noSuchMethod( + Invocation.method( + #release, + [], + ), + returnValueForMissingStub: null, + ); + @override + _i17.Future<T> protectRead<T>(_i17.Future<T> Function()? criticalSection) => + (super.noSuchMethod( + Invocation.method( + #protectRead, + [criticalSection], + ), + returnValue: _i17.Future<T>.value(null), + ) as _i17.Future<T>); + @override + _i17.Future<T> protectWrite<T>(_i17.Future<T> Function()? criticalSection) => + (super.noSuchMethod( + Invocation.method( + #protectWrite, + [criticalSection], + ), + returnValue: _i17.Future<T>.value(null), + ) as _i17.Future<T>); +} + /// A class which mocks [RepositoriesService]. /// /// See the documentation for Mockito's code generation for more information. -class MockRepositoriesService extends _i1.Mock implements _i10.RepositoriesService { +class MockRepositoriesService extends _i1.Mock + implements _i10.RepositoriesService { MockRepositoriesService() { _i1.throwOnMissingStub(this); } @@ -5459,12 +5666,14 @@ )), ) as _i17.Future<_i10.Repository>); @override - _i17.Future<_i10.LicenseDetails> getLicense(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<_i10.LicenseDetails> getLicense(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #getLicense, [slug], ), - returnValue: _i17.Future<_i10.LicenseDetails>.value(_FakeLicenseDetails_57( + returnValue: + _i17.Future<_i10.LicenseDetails>.value(_FakeLicenseDetails_57( this, Invocation.method( #getLicense, @@ -5473,7 +5682,8 @@ )), ) as _i17.Future<_i10.LicenseDetails>); @override - _i17.Future<_i10.Repository> getRepository(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<_i10.Repository> getRepository(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #getRepository, [slug], @@ -5487,7 +5697,9 @@ )), ) as _i17.Future<_i10.Repository>); @override - _i17.Stream<_i10.Repository> getRepositories(List<_i10.RepositorySlug>? slugs) => (super.noSuchMethod( + _i17.Stream<_i10.Repository> getRepositories( + List<_i10.RepositorySlug>? slugs) => + (super.noSuchMethod( Invocation.method( #getRepositories, [slugs], @@ -5537,7 +5749,8 @@ )), ) as _i17.Future<_i10.Repository>); @override - _i17.Future<bool> deleteRepository(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<bool> deleteRepository(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #deleteRepository, [slug], @@ -5558,7 +5771,8 @@ returnValue: _i17.Stream<_i10.Contributor>.empty(), ) as _i17.Stream<_i10.Contributor>); @override - _i17.Stream<_i10.Team> listTeams(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.Team> listTeams(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listTeams, [slug], @@ -5566,12 +5780,15 @@ returnValue: _i17.Stream<_i10.Team>.empty(), ) as _i17.Stream<_i10.Team>); @override - _i17.Future<_i10.LanguageBreakdown> listLanguages(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<_i10.LanguageBreakdown> listLanguages( + _i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listLanguages, [slug], ), - returnValue: _i17.Future<_i10.LanguageBreakdown>.value(_FakeLanguageBreakdown_58( + returnValue: + _i17.Future<_i10.LanguageBreakdown>.value(_FakeLanguageBreakdown_58( this, Invocation.method( #listLanguages, @@ -5599,7 +5816,8 @@ returnValue: _i17.Stream<_i10.Tag>.empty(), ) as _i17.Stream<_i10.Tag>); @override - _i17.Stream<_i10.Branch> listBranches(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.Branch> listBranches(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listBranches, [slug], @@ -5631,7 +5849,8 @@ )), ) as _i17.Future<_i10.Branch>); @override - _i17.Stream<_i10.Collaborator> listCollaborators(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.Collaborator> listCollaborators(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listCollaborators, [slug], @@ -5699,7 +5918,9 @@ returnValue: _i17.Stream<_i10.CommitComment>.empty(), ) as _i17.Stream<_i10.CommitComment>); @override - _i17.Stream<_i10.CommitComment> listCommitComments(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.CommitComment> listCommitComments( + _i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listCommitComments, [slug], @@ -5729,7 +5950,8 @@ #line: line, }, ), - returnValue: _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60( + returnValue: + _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60( this, Invocation.method( #createCommitComment, @@ -5757,7 +5979,8 @@ [slug], {#id: id}, ), - returnValue: _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60( + returnValue: + _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60( this, Invocation.method( #getCommitComment, @@ -5781,7 +6004,8 @@ #body: body, }, ), - returnValue: _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60( + returnValue: + _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60( this, Invocation.method( #updateCommitComment, @@ -5807,7 +6031,8 @@ returnValue: _i17.Future<bool>.value(false), ) as _i17.Future<bool>); @override - _i17.Stream<_i10.RepositoryCommit> listCommits(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.RepositoryCommit> listCommits(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listCommits, [slug], @@ -5827,7 +6052,8 @@ sha, ], ), - returnValue: _i17.Future<_i10.RepositoryCommit>.value(_FakeRepositoryCommit_61( + returnValue: + _i17.Future<_i10.RepositoryCommit>.value(_FakeRepositoryCommit_61( this, Invocation.method( #getCommit, @@ -5868,7 +6094,8 @@ refHead, ], ), - returnValue: _i17.Future<_i10.GitHubComparison>.value(_FakeGitHubComparison_62( + returnValue: + _i17.Future<_i10.GitHubComparison>.value(_FakeGitHubComparison_62( this, Invocation.method( #compareCommits, @@ -5915,7 +6142,8 @@ ], {#ref: ref}, ), - returnValue: _i17.Future<_i10.RepositoryContents>.value(_FakeRepositoryContents_64( + returnValue: _i17.Future<_i10.RepositoryContents>.value( + _FakeRepositoryContents_64( this, Invocation.method( #getContents, @@ -5940,7 +6168,8 @@ file, ], ), - returnValue: _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65( + returnValue: + _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65( this, Invocation.method( #createFile, @@ -5972,7 +6201,8 @@ ], {#branch: branch}, ), - returnValue: _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65( + returnValue: + _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65( this, Invocation.method( #updateFile, @@ -6006,7 +6236,8 @@ branch, ], ), - returnValue: _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65( + returnValue: + _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65( this, Invocation.method( #deleteFile, @@ -6038,7 +6269,8 @@ returnValue: _i17.Future<String?>.value(), ) as _i17.Future<String?>); @override - _i17.Stream<_i10.Repository> listForks(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.Repository> listForks(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listForks, [slug], @@ -6070,7 +6302,8 @@ )), ) as _i17.Future<_i10.Repository>); @override - _i17.Stream<_i10.Hook> listHooks(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.Hook> listHooks(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listHooks, [slug], @@ -6223,7 +6456,8 @@ returnValue: _i17.Future<bool>.value(false), ) as _i17.Future<bool>); @override - _i17.Stream<_i10.PublicKey> listDeployKeys(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.PublicKey> listDeployKeys(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listDeployKeys, [slug], @@ -6303,7 +6537,8 @@ merge, ], ), - returnValue: _i17.Future<_i10.RepositoryCommit>.value(_FakeRepositoryCommit_61( + returnValue: + _i17.Future<_i10.RepositoryCommit>.value(_FakeRepositoryCommit_61( this, Invocation.method( #merge, @@ -6315,12 +6550,14 @@ )), ) as _i17.Future<_i10.RepositoryCommit>); @override - _i17.Future<_i10.RepositoryPages> getPagesInfo(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<_i10.RepositoryPages> getPagesInfo(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #getPagesInfo, [slug], ), - returnValue: _i17.Future<_i10.RepositoryPages>.value(_FakeRepositoryPages_68( + returnValue: + _i17.Future<_i10.RepositoryPages>.value(_FakeRepositoryPages_68( this, Invocation.method( #getPagesInfo, @@ -6329,7 +6566,8 @@ )), ) as _i17.Future<_i10.RepositoryPages>); @override - _i17.Stream<_i10.PageBuild> listPagesBuilds(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.PageBuild> listPagesBuilds(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listPagesBuilds, [slug], @@ -6337,7 +6575,8 @@ returnValue: _i17.Stream<_i10.PageBuild>.empty(), ) as _i17.Stream<_i10.PageBuild>); @override - _i17.Future<_i10.PageBuild> getLatestPagesBuild(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<_i10.PageBuild> getLatestPagesBuild(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #getLatestPagesBuild, [slug], @@ -6351,7 +6590,8 @@ )), ) as _i17.Future<_i10.PageBuild>); @override - _i17.Stream<_i10.Release> listReleases(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.Release> listReleases(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listReleases, [slug], @@ -6359,7 +6599,8 @@ returnValue: _i17.Stream<_i10.Release>.empty(), ) as _i17.Stream<_i10.Release>); @override - _i17.Future<_i10.Release> getLatestRelease(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<_i10.Release> getLatestRelease(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #getLatestRelease, [slug], @@ -6612,18 +6853,24 @@ createReleaseAssets, ], ), - returnValue: _i17.Future<List<_i10.ReleaseAsset>>.value(<_i10.ReleaseAsset>[]), + returnValue: + _i17.Future<List<_i10.ReleaseAsset>>.value(<_i10.ReleaseAsset>[]), ) as _i17.Future<List<_i10.ReleaseAsset>>); @override - _i17.Future<List<_i10.ContributorStatistics>> listContributorStats(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<List<_i10.ContributorStatistics>> listContributorStats( + _i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listContributorStats, [slug], ), - returnValue: _i17.Future<List<_i10.ContributorStatistics>>.value(<_i10.ContributorStatistics>[]), + returnValue: _i17.Future<List<_i10.ContributorStatistics>>.value( + <_i10.ContributorStatistics>[]), ) as _i17.Future<List<_i10.ContributorStatistics>>); @override - _i17.Stream<_i10.YearCommitCountWeek> listCommitActivity(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.YearCommitCountWeek> listCommitActivity( + _i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listCommitActivity, [slug], @@ -6631,7 +6878,9 @@ returnValue: _i17.Stream<_i10.YearCommitCountWeek>.empty(), ) as _i17.Stream<_i10.YearCommitCountWeek>); @override - _i17.Stream<_i10.WeeklyChangesCount> listCodeFrequency(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.WeeklyChangesCount> listCodeFrequency( + _i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listCodeFrequency, [slug], @@ -6639,12 +6888,15 @@ returnValue: _i17.Stream<_i10.WeeklyChangesCount>.empty(), ) as _i17.Stream<_i10.WeeklyChangesCount>); @override - _i17.Future<_i10.ContributorParticipation> getParticipation(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Future<_i10.ContributorParticipation> getParticipation( + _i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #getParticipation, [slug], ), - returnValue: _i17.Future<_i10.ContributorParticipation>.value(_FakeContributorParticipation_72( + returnValue: _i17.Future<_i10.ContributorParticipation>.value( + _FakeContributorParticipation_72( this, Invocation.method( #getParticipation, @@ -6653,7 +6905,8 @@ )), ) as _i17.Future<_i10.ContributorParticipation>); @override - _i17.Stream<_i10.PunchcardEntry> listPunchcard(_i10.RepositorySlug? slug) => (super.noSuchMethod( + _i17.Stream<_i10.PunchcardEntry> listPunchcard(_i10.RepositorySlug? slug) => + (super.noSuchMethod( Invocation.method( #listPunchcard, [slug], @@ -6690,7 +6943,8 @@ request, ], ), - returnValue: _i17.Future<_i10.RepositoryStatus>.value(_FakeRepositoryStatus_73( + returnValue: + _i17.Future<_i10.RepositoryStatus>.value(_FakeRepositoryStatus_73( this, Invocation.method( #createStatus, @@ -6715,7 +6969,8 @@ ref, ], ), - returnValue: _i17.Future<_i10.CombinedRepositoryStatus>.value(_FakeCombinedRepositoryStatus_74( + returnValue: _i17.Future<_i10.CombinedRepositoryStatus>.value( + _FakeCombinedRepositoryStatus_74( this, Invocation.method( #getCombinedStatus, @@ -6727,7 +6982,9 @@ )), ) as _i17.Future<_i10.CombinedRepositoryStatus>); @override - _i17.Future<_i10.ReleaseNotes> generateReleaseNotes(_i10.CreateReleaseNotes? crn) => (super.noSuchMethod( + _i17.Future<_i10.ReleaseNotes> generateReleaseNotes( + _i10.CreateReleaseNotes? crn) => + (super.noSuchMethod( Invocation.method( #generateReleaseNotes, [crn], @@ -6769,7 +7026,8 @@ ], {#$fields: $fields}, ), - returnValue: _i17.Future<_i6.TableDataInsertAllResponse>.value(_FakeTableDataInsertAllResponse_76( + returnValue: _i17.Future<_i6.TableDataInsertAllResponse>.value( + _FakeTableDataInsertAllResponse_76( this, Invocation.method( #insertAll, @@ -6962,7 +7220,8 @@ returnValue: _i17.Stream<_i10.UserEmail>.empty(), ) as _i17.Stream<_i10.UserEmail>); @override - _i17.Stream<_i10.UserEmail> addEmails(List<String>? emails) => (super.noSuchMethod( + _i17.Stream<_i10.UserEmail> addEmails(List<String>? emails) => + (super.noSuchMethod( Invocation.method( #addEmails, [emails], @@ -7041,7 +7300,8 @@ returnValue: _i17.Stream<_i10.User>.empty(), ) as _i17.Stream<_i10.User>); @override - _i17.Stream<_i10.PublicKey> listPublicKeys([String? userLogin]) => (super.noSuchMethod( + _i17.Stream<_i10.PublicKey> listPublicKeys([String? userLogin]) => + (super.noSuchMethod( Invocation.method( #listPublicKeys, [userLogin], @@ -7049,7 +7309,8 @@ returnValue: _i17.Stream<_i10.PublicKey>.empty(), ) as _i17.Stream<_i10.PublicKey>); @override - _i17.Future<_i10.PublicKey> createPublicKey(_i10.CreatePublicKey? key) => (super.noSuchMethod( + _i17.Future<_i10.PublicKey> createPublicKey(_i10.CreatePublicKey? key) => + (super.noSuchMethod( Invocation.method( #createPublicKey, [key], @@ -7101,7 +7362,8 @@ ), ) as _i20.Cache<_i27.Uint8List>); @override - _i20.Cache<S> withCodec<S>(_i16.Codec<S, _i27.Uint8List>? codec) => (super.noSuchMethod( + _i20.Cache<S> withCodec<S>(_i16.Codec<S, _i27.Uint8List>? codec) => + (super.noSuchMethod( Invocation.method( #withCodec, [codec], @@ -7152,6 +7414,11 @@ returnValue: '', ) as String); @override + String get version => (super.noSuchMethod( + Invocation.getter(#version), + returnValue: '', + ) as String); + @override _i2.Client get client => (super.noSuchMethod( Invocation.getter(#client), returnValue: _FakeClient_0( @@ -7313,7 +7580,7 @@ #preview: preview, }, ), - returnValue: _i39.postJsonShim<S, T>( + returnValue: _i40.postJsonShim<S, T>( path, statusCode: statusCode, fail: fail,