content: // Mocks generated by Mockito 5.4.2 from annotations
  // in recipes/test/data/database/db_repository_test.dart.
  // Do not manually edit this file.
  
  // ignore_for_file: no_leading_underscores_for_library_prefixes
  import 'dart:async' as _i5;
  
  import 'package:drift/drift.dart' as _i3;
  import 'package:drift/src/runtime/executor/stream_queries.dart' as _i4;
  import 'package:mockito/mockito.dart' as _i1;
  import 'package:mockito/src/dummies.dart' as _i6;
  import 'package:recipes/data/database/recipe_db.dart' as _i2;
  import 'package:recipes/data/models/models.dart' as _i7;
  
  // ignore_for_file: type=lint
  // ignore_for_file: avoid_redundant_argument_values
  // ignore_for_file: avoid_setters_without_getters
  // ignore_for_file: comment_references
  // ignore_for_file: implementation_imports
  // ignore_for_file: invalid_use_of_visible_for_testing_member
  // ignore_for_file: prefer_const_constructors
  // ignore_for_file: unnecessary_parenthesis
  // ignore_for_file: camel_case_types
  // ignore_for_file: subtype_of_sealed_class
  
  class _Fake$DbRecipeTable_0 extends _i1.SmartFake
      implements _i2.$DbRecipeTable {
    _Fake$DbRecipeTable_0(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _Fake$DbIngredientTable_1 extends _i1.SmartFake
      implements _i2.$DbIngredientTable {
    _Fake$DbIngredientTable_1(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeRecipeDao_2 extends _i1.SmartFake implements _i2.RecipeDao {
    _FakeRecipeDao_2(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeIngredientDao_3 extends _i1.SmartFake implements _i2.IngredientDao {
    _FakeIngredientDao_3(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeGeneratedDatabase_4 extends _i1.SmartFake
      implements _i3.GeneratedDatabase {
    _FakeGeneratedDatabase_4(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeDriftDatabaseOptions_5 extends _i1.SmartFake
      implements _i3.DriftDatabaseOptions {
    _FakeDriftDatabaseOptions_5(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeMigrationStrategy_6 extends _i1.SmartFake
      implements _i3.MigrationStrategy {
    _FakeMigrationStrategy_6(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeStreamQueryUpdateRules_7 extends _i1.SmartFake
      implements _i3.StreamQueryUpdateRules {
    _FakeStreamQueryUpdateRules_7(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeDatabaseConnection_8 extends _i1.SmartFake
      implements _i3.DatabaseConnection {
    _FakeDatabaseConnection_8(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeQueryExecutor_9 extends _i1.SmartFake implements _i3.QueryExecutor {
    _FakeQueryExecutor_9(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeStreamQueryStore_10 extends _i1.SmartFake
      implements _i4.StreamQueryStore {
    _FakeStreamQueryStore_10(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeDatabaseConnectionUser_11 extends _i1.SmartFake
      implements _i3.DatabaseConnectionUser {
    _FakeDatabaseConnectionUser_11(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeMigrator_12 extends _i1.SmartFake implements _i3.Migrator {
    _FakeMigrator_12(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeFuture_13<T1> extends _i1.SmartFake implements _i5.Future<T1> {
    _FakeFuture_13(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeInsertStatement_14<T1 extends _i3.Table, D1> extends _i1.SmartFake
      implements _i3.InsertStatement<T1, D1> {
    _FakeInsertStatement_14(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeUpdateStatement_15<T extends _i3.Table, D> extends _i1.SmartFake
      implements _i3.UpdateStatement<T, D> {
    _FakeUpdateStatement_15(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeSimpleSelectStatement_16<T1 extends _i3.HasResultSet, D>
      extends _i1.SmartFake implements _i3.SimpleSelectStatement<T1, D> {
    _FakeSimpleSelectStatement_16(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeJoinedSelectStatement_17<FirstT extends _i3.HasResultSet, FirstD>
      extends _i1.SmartFake implements _i3.JoinedSelectStatement<FirstT, FirstD> {
    _FakeJoinedSelectStatement_17(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeDeleteStatement_18<T1 extends _i3.Table, D1> extends _i1.SmartFake
      implements _i3.DeleteStatement<T1, D1> {
    _FakeDeleteStatement_18(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeSelectable_19<T> extends _i1.SmartFake implements _i3.Selectable<T> {
    _FakeSelectable_19(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeGenerationContext_20 extends _i1.SmartFake
      implements _i3.GenerationContext {
    _FakeGenerationContext_20(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  class _FakeRecipeDatabase_21 extends _i1.SmartFake
      implements _i2.RecipeDatabase {
    _FakeRecipeDatabase_21(
      Object parent,
      Invocation parentInvocation,
    ) : super(
            parent,
            parentInvocation,
          );
  }
  
  /// A class which mocks [RecipeDatabase].
  ///
  /// See the documentation for Mockito's code generation for more information.
  class MockRecipeDatabase extends _i1.Mock implements _i2.RecipeDatabase {
    @override
    int get schemaVersion => (super.noSuchMethod(
          Invocation.getter(#schemaVersion),
          returnValue: 0,
          returnValueForMissingStub: 0,
        ) as int);
  
    @override
    _i2.$DbRecipeTable get dbRecipe => (super.noSuchMethod(
          Invocation.getter(#dbRecipe),
          returnValue: _Fake$DbRecipeTable_0(
            this,
            Invocation.getter(#dbRecipe),
          ),
          returnValueForMissingStub: _Fake$DbRecipeTable_0(
            this,
            Invocation.getter(#dbRecipe),
          ),
        ) as _i2.$DbRecipeTable);
  
    @override
    _i2.$DbIngredientTable get dbIngredient => (super.noSuchMethod(
          Invocation.getter(#dbIngredient),
          returnValue: _Fake$DbIngredientTable_1(
            this,
            Invocation.getter(#dbIngredient),
          ),
          returnValueForMissingStub: _Fake$DbIngredientTable_1(
            this,
            Invocation.getter(#dbIngredient),
          ),
        ) as _i2.$DbIngredientTable);
  
    @override
    _i2.RecipeDao get recipeDao => (super.noSuchMethod(
          Invocation.getter(#recipeDao),
          returnValue: _FakeRecipeDao_2(
            this,
            Invocation.getter(#recipeDao),
          ),
          returnValueForMissingStub: _FakeRecipeDao_2(
            this,
            Invocation.getter(#recipeDao),
          ),
        ) as _i2.RecipeDao);
  
    @override
    _i2.IngredientDao get ingredientDao => (super.noSuchMethod(
          Invocation.getter(#ingredientDao),
          returnValue: _FakeIngredientDao_3(
            this,
            Invocation.getter(#ingredientDao),
          ),
          returnValueForMissingStub: _FakeIngredientDao_3(
            this,
            Invocation.getter(#ingredientDao),
          ),
        ) as _i2.IngredientDao);
  
    @override
    Iterable<_i3.TableInfo<_i3.Table, Object?>> get allTables =>
        (super.noSuchMethod(
          Invocation.getter(#allTables),
          returnValue: <_i3.TableInfo<_i3.Table, Object?>>[],
          returnValueForMissingStub: <_i3.TableInfo<_i3.Table, Object?>>[],
        ) as Iterable<_i3.TableInfo<_i3.Table, Object?>>);
  
    @override
    List<_i3.DatabaseSchemaEntity> get allSchemaEntities => (super.noSuchMethod(
          Invocation.getter(#allSchemaEntities),
          returnValue: <_i3.DatabaseSchemaEntity>[],
          returnValueForMissingStub: <_i3.DatabaseSchemaEntity>[],
        ) as List<_i3.DatabaseSchemaEntity>);
  
    @override
    _i3.GeneratedDatabase get attachedDatabase => (super.noSuchMethod(
          Invocation.getter(#attachedDatabase),
          returnValue: _FakeGeneratedDatabase_4(
            this,
            Invocation.getter(#attachedDatabase),
          ),
          returnValueForMissingStub: _FakeGeneratedDatabase_4(
            this,
            Invocation.getter(#attachedDatabase),
          ),
        ) as _i3.GeneratedDatabase);
  
    @override
    _i3.DriftDatabaseOptions get options => (super.noSuchMethod(
          Invocation.getter(#options),
          returnValue: _FakeDriftDatabaseOptions_5(
            this,
            Invocation.getter(#options),
          ),
          returnValueForMissingStub: _FakeDriftDatabaseOptions_5(
            this,
            Invocation.getter(#options),
          ),
        ) as _i3.DriftDatabaseOptions);
  
    @override
    _i3.MigrationStrategy get migration => (super.noSuchMethod(
          Invocation.getter(#migration),
          returnValue: _FakeMigrationStrategy_6(
            this,
            Invocation.getter(#migration),
          ),
          returnValueForMissingStub: _FakeMigrationStrategy_6(
            this,
            Invocation.getter(#migration),
          ),
        ) as _i3.MigrationStrategy);
  
    @override
    _i3.StreamQueryUpdateRules get streamUpdateRules => (super.noSuchMethod(
          Invocation.getter(#streamUpdateRules),
          returnValue: _FakeStreamQueryUpdateRules_7(
            this,
            Invocation.getter(#streamUpdateRules),
          ),
          returnValueForMissingStub: _FakeStreamQueryUpdateRules_7(
            this,
            Invocation.getter(#streamUpdateRules),
          ),
        ) as _i3.StreamQueryUpdateRules);
  
    @override
    _i3.DatabaseConnection get connection => (super.noSuchMethod(
          Invocation.getter(#connection),
          returnValue: _FakeDatabaseConnection_8(
            this,
            Invocation.getter(#connection),
          ),
          returnValueForMissingStub: _FakeDatabaseConnection_8(
            this,
            Invocation.getter(#connection),
          ),
        ) as _i3.DatabaseConnection);
  
    @override
    _i3.SqlTypes get typeMapping => (super.noSuchMethod(
          Invocation.getter(#typeMapping),
          returnValue: _i6.dummyValue<_i3.SqlTypes>(
            this,
            Invocation.getter(#typeMapping),
          ),
          returnValueForMissingStub: _i6.dummyValue<_i3.SqlTypes>(
            this,
            Invocation.getter(#typeMapping),
          ),
        ) as _i3.SqlTypes);
  
    @override
    _i3.QueryExecutor get executor => (super.noSuchMethod(
          Invocation.getter(#executor),
          returnValue: _FakeQueryExecutor_9(
            this,
            Invocation.getter(#executor),
          ),
          returnValueForMissingStub: _FakeQueryExecutor_9(
            this,
            Invocation.getter(#executor),
          ),
        ) as _i3.QueryExecutor);
  
    @override
    _i4.StreamQueryStore get streamQueries => (super.noSuchMethod(
          Invocation.getter(#streamQueries),
          returnValue: _FakeStreamQueryStore_10(
            this,
            Invocation.getter(#streamQueries),
          ),
          returnValueForMissingStub: _FakeStreamQueryStore_10(
            this,
            Invocation.getter(#streamQueries),
          ),
        ) as _i4.StreamQueryStore);
  
    @override
    _i3.DatabaseConnectionUser get resolvedEngine => (super.noSuchMethod(
          Invocation.getter(#resolvedEngine),
          returnValue: _FakeDatabaseConnectionUser_11(
            this,
            Invocation.getter(#resolvedEngine),
          ),
          returnValueForMissingStub: _FakeDatabaseConnectionUser_11(
            this,
            Invocation.getter(#resolvedEngine),
          ),
        ) as _i3.DatabaseConnectionUser);
  
    @override
    _i3.Migrator createMigrator() => (super.noSuchMethod(
          Invocation.method(
            #createMigrator,
            [],
          ),
          returnValue: _FakeMigrator_12(
            this,
            Invocation.method(
              #createMigrator,
              [],
            ),
          ),
          returnValueForMissingStub: _FakeMigrator_12(
            this,
            Invocation.method(
              #createMigrator,
              [],
            ),
          ),
        ) as _i3.Migrator);
  
    @override
    _i5.Future<void> beforeOpen(
      _i3.QueryExecutor? executor,
      _i3.OpeningDetails? details,
    ) =>
        (super.noSuchMethod(
          Invocation.method(
            #beforeOpen,
            [
              executor,
              details,
            ],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  
    @override
    _i5.Future<void> close() => (super.noSuchMethod(
          Invocation.method(
            #close,
            [],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  
    @override
    _i5.Stream<List<Map<String, Object?>>> createStream(
            _i4.QueryStreamFetcher? stmt) =>
        (super.noSuchMethod(
          Invocation.method(
            #createStream,
            [stmt],
          ),
          returnValue: _i5.Stream<List<Map<String, Object?>>>.empty(),
          returnValueForMissingStub:
              _i5.Stream<List<Map<String, Object?>>>.empty(),
        ) as _i5.Stream<List<Map<String, Object?>>>);
  
    @override
    T alias<T, D>(
      _i3.ResultSetImplementation<T, D>? table,
      String? alias,
    ) =>
        (super.noSuchMethod(
          Invocation.method(
            #alias,
            [
              table,
              alias,
            ],
          ),
          returnValue: _i6.dummyValue<T>(
            this,
            Invocation.method(
              #alias,
              [
                table,
                alias,
              ],
            ),
          ),
          returnValueForMissingStub: _i6.dummyValue<T>(
            this,
            Invocation.method(
              #alias,
              [
                table,
                alias,
              ],
            ),
          ),
        ) as T);
  
    @override
    void markTablesUpdated(Iterable<_i3.TableInfo<_i3.Table, dynamic>>? tables) =>
        super.noSuchMethod(
          Invocation.method(
            #markTablesUpdated,
            [tables],
          ),
          returnValueForMissingStub: null,
        );
  
    @override
    void notifyUpdates(Set<_i3.TableUpdate>? updates) => super.noSuchMethod(
          Invocation.method(
            #notifyUpdates,
            [updates],
          ),
          returnValueForMissingStub: null,
        );
  
    @override
    _i5.Stream<Set<_i3.TableUpdate>> tableUpdates(
            [_i3.TableUpdateQuery? query = const _i3.TableUpdateQuery.any()]) =>
        (super.noSuchMethod(
          Invocation.method(
            #tableUpdates,
            [query],
          ),
          returnValue: _i5.Stream<Set<_i3.TableUpdate>>.empty(),
          returnValueForMissingStub: _i5.Stream<Set<_i3.TableUpdate>>.empty(),
        ) as _i5.Stream<Set<_i3.TableUpdate>>);
  
    @override
    _i5.Future<T> doWhenOpened<T>(
            _i5.FutureOr<T> Function(_i3.QueryExecutor)? fn) =>
        (super.noSuchMethod(
          Invocation.method(
            #doWhenOpened,
            [fn],
          ),
          returnValue: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #doWhenOpened,
                    [fn],
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #doWhenOpened,
                  [fn],
                ),
              ),
          returnValueForMissingStub: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #doWhenOpened,
                    [fn],
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #doWhenOpened,
                  [fn],
                ),
              ),
        ) as _i5.Future<T>);
  
    @override
    _i3.InsertStatement<T, D> into<T extends _i3.Table, D>(
            _i3.TableInfo<T, D>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #into,
            [table],
          ),
          returnValue: _FakeInsertStatement_14<T, D>(
            this,
            Invocation.method(
              #into,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeInsertStatement_14<T, D>(
            this,
            Invocation.method(
              #into,
              [table],
            ),
          ),
        ) as _i3.InsertStatement<T, D>);
  
    @override
    _i3.UpdateStatement<Tbl, R> update<Tbl extends _i3.Table, R>(
            _i3.TableInfo<Tbl, R>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #update,
            [table],
          ),
          returnValue: _FakeUpdateStatement_15<Tbl, R>(
            this,
            Invocation.method(
              #update,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeUpdateStatement_15<Tbl, R>(
            this,
            Invocation.method(
              #update,
              [table],
            ),
          ),
        ) as _i3.UpdateStatement<Tbl, R>);
  
    @override
    _i3.SimpleSelectStatement<T, R> select<T extends _i3.HasResultSet, R>(
      _i3.ResultSetImplementation<T, R>? table, {
      bool? distinct = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #select,
            [table],
            {#distinct: distinct},
          ),
          returnValue: _FakeSimpleSelectStatement_16<T, R>(
            this,
            Invocation.method(
              #select,
              [table],
              {#distinct: distinct},
            ),
          ),
          returnValueForMissingStub: _FakeSimpleSelectStatement_16<T, R>(
            this,
            Invocation.method(
              #select,
              [table],
              {#distinct: distinct},
            ),
          ),
        ) as _i3.SimpleSelectStatement<T, R>);
  
    @override
    _i3.JoinedSelectStatement<T, R> selectOnly<T extends _i3.HasResultSet, R>(
      _i3.ResultSetImplementation<T, R>? table, {
      bool? distinct = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #selectOnly,
            [table],
            {#distinct: distinct},
          ),
          returnValue: _FakeJoinedSelectStatement_17<T, R>(
            this,
            Invocation.method(
              #selectOnly,
              [table],
              {#distinct: distinct},
            ),
          ),
          returnValueForMissingStub: _FakeJoinedSelectStatement_17<T, R>(
            this,
            Invocation.method(
              #selectOnly,
              [table],
              {#distinct: distinct},
            ),
          ),
        ) as _i3.JoinedSelectStatement<T, R>);
  
    @override
    _i3.DeleteStatement<T, D> delete<T extends _i3.Table, D>(
            _i3.TableInfo<T, D>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #delete,
            [table],
          ),
          returnValue: _FakeDeleteStatement_18<T, D>(
            this,
            Invocation.method(
              #delete,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeDeleteStatement_18<T, D>(
            this,
            Invocation.method(
              #delete,
              [table],
            ),
          ),
        ) as _i3.DeleteStatement<T, D>);
  
    @override
    _i5.Future<int> customUpdate(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
      _i3.UpdateKind? updateKind,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customUpdate,
            [query],
            {
              #variables: variables,
              #updates: updates,
              #updateKind: updateKind,
            },
          ),
          returnValue: _i5.Future<int>.value(0),
          returnValueForMissingStub: _i5.Future<int>.value(0),
        ) as _i5.Future<int>);
  
    @override
    _i5.Future<int> customInsert(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customInsert,
            [query],
            {
              #variables: variables,
              #updates: updates,
            },
          ),
          returnValue: _i5.Future<int>.value(0),
          returnValueForMissingStub: _i5.Future<int>.value(0),
        ) as _i5.Future<int>);
  
    @override
    _i5.Future<List<_i3.QueryRow>> customWriteReturning(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
      _i3.UpdateKind? updateKind,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customWriteReturning,
            [query],
            {
              #variables: variables,
              #updates: updates,
              #updateKind: updateKind,
            },
          ),
          returnValue: _i5.Future<List<_i3.QueryRow>>.value(<_i3.QueryRow>[]),
          returnValueForMissingStub:
              _i5.Future<List<_i3.QueryRow>>.value(<_i3.QueryRow>[]),
        ) as _i5.Future<List<_i3.QueryRow>>);
  
    @override
    _i3.Selectable<_i3.QueryRow> customSelect(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.ResultSetImplementation<dynamic, dynamic>>? readsFrom = const {},
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customSelect,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
          returnValue: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelect,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
          returnValueForMissingStub: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelect,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
        ) as _i3.Selectable<_i3.QueryRow>);
  
    @override
    _i3.Selectable<_i3.QueryRow> customSelectQuery(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.ResultSetImplementation<dynamic, dynamic>>? readsFrom = const {},
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customSelectQuery,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
          returnValue: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelectQuery,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
          returnValueForMissingStub: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelectQuery,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
        ) as _i3.Selectable<_i3.QueryRow>);
  
    @override
    _i5.Future<void> customStatement(
      String? statement, [
      List<dynamic>? args,
    ]) =>
        (super.noSuchMethod(
          Invocation.method(
            #customStatement,
            [
              statement,
              args,
            ],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  
    @override
    _i5.Future<T> transaction<T>(
      _i5.Future<T> Function()? action, {
      bool? requireNew = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #transaction,
            [action],
            {#requireNew: requireNew},
          ),
          returnValue: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #transaction,
                    [action],
                    {#requireNew: requireNew},
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #transaction,
                  [action],
                  {#requireNew: requireNew},
                ),
              ),
          returnValueForMissingStub: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #transaction,
                    [action],
                    {#requireNew: requireNew},
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #transaction,
                  [action],
                  {#requireNew: requireNew},
                ),
              ),
        ) as _i5.Future<T>);
  
    @override
    _i5.Future<void> batch(_i5.FutureOr<void> Function(_i3.Batch)? runInBatch) =>
        (super.noSuchMethod(
          Invocation.method(
            #batch,
            [runInBatch],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  
    @override
    _i3.GenerationContext $write(
      _i3.Component? component, {
      bool? hasMultipleTables,
      int? startIndex,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #$write,
            [component],
            {
              #hasMultipleTables: hasMultipleTables,
              #startIndex: startIndex,
            },
          ),
          returnValue: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$write,
              [component],
              {
                #hasMultipleTables: hasMultipleTables,
                #startIndex: startIndex,
              },
            ),
          ),
          returnValueForMissingStub: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$write,
              [component],
              {
                #hasMultipleTables: hasMultipleTables,
                #startIndex: startIndex,
              },
            ),
          ),
        ) as _i3.GenerationContext);
  
    @override
    _i3.GenerationContext $writeInsertable(
      _i3.TableInfo<_i3.Table, dynamic>? table,
      _i3.Insertable<dynamic>? insertable, {
      int? startIndex,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #$writeInsertable,
            [
              table,
              insertable,
            ],
            {#startIndex: startIndex},
          ),
          returnValue: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$writeInsertable,
              [
                table,
                insertable,
              ],
              {#startIndex: startIndex},
            ),
          ),
          returnValueForMissingStub: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$writeInsertable,
              [
                table,
                insertable,
              ],
              {#startIndex: startIndex},
            ),
          ),
        ) as _i3.GenerationContext);
  
    @override
    String $expandVar(
      int? start,
      int? amount,
    ) =>
        (super.noSuchMethod(
          Invocation.method(
            #$expandVar,
            [
              start,
              amount,
            ],
          ),
          returnValue: '',
          returnValueForMissingStub: '',
        ) as String);
  }
  
  /// A class which mocks [RecipeDao].
  ///
  /// See the documentation for Mockito's code generation for more information.
  class MockRecipeDao extends _i1.Mock implements _i2.RecipeDao {
    @override
    _i2.RecipeDatabase get db => (super.noSuchMethod(
          Invocation.getter(#db),
          returnValue: _FakeRecipeDatabase_21(
            this,
            Invocation.getter(#db),
          ),
          returnValueForMissingStub: _FakeRecipeDatabase_21(
            this,
            Invocation.getter(#db),
          ),
        ) as _i2.RecipeDatabase);
  
    @override
    _i2.RecipeDatabase get attachedDatabase => (super.noSuchMethod(
          Invocation.getter(#attachedDatabase),
          returnValue: _FakeRecipeDatabase_21(
            this,
            Invocation.getter(#attachedDatabase),
          ),
          returnValueForMissingStub: _FakeRecipeDatabase_21(
            this,
            Invocation.getter(#attachedDatabase),
          ),
        ) as _i2.RecipeDatabase);
  
    @override
    _i3.DatabaseConnection get connection => (super.noSuchMethod(
          Invocation.getter(#connection),
          returnValue: _FakeDatabaseConnection_8(
            this,
            Invocation.getter(#connection),
          ),
          returnValueForMissingStub: _FakeDatabaseConnection_8(
            this,
            Invocation.getter(#connection),
          ),
        ) as _i3.DatabaseConnection);
  
    @override
    _i3.DriftDatabaseOptions get options => (super.noSuchMethod(
          Invocation.getter(#options),
          returnValue: _FakeDriftDatabaseOptions_5(
            this,
            Invocation.getter(#options),
          ),
          returnValueForMissingStub: _FakeDriftDatabaseOptions_5(
            this,
            Invocation.getter(#options),
          ),
        ) as _i3.DriftDatabaseOptions);
  
    @override
    _i3.SqlTypes get typeMapping => (super.noSuchMethod(
          Invocation.getter(#typeMapping),
          returnValue: _i6.dummyValue<_i3.SqlTypes>(
            this,
            Invocation.getter(#typeMapping),
          ),
          returnValueForMissingStub: _i6.dummyValue<_i3.SqlTypes>(
            this,
            Invocation.getter(#typeMapping),
          ),
        ) as _i3.SqlTypes);
  
    @override
    _i3.QueryExecutor get executor => (super.noSuchMethod(
          Invocation.getter(#executor),
          returnValue: _FakeQueryExecutor_9(
            this,
            Invocation.getter(#executor),
          ),
          returnValueForMissingStub: _FakeQueryExecutor_9(
            this,
            Invocation.getter(#executor),
          ),
        ) as _i3.QueryExecutor);
  
    @override
    _i4.StreamQueryStore get streamQueries => (super.noSuchMethod(
          Invocation.getter(#streamQueries),
          returnValue: _FakeStreamQueryStore_10(
            this,
            Invocation.getter(#streamQueries),
          ),
          returnValueForMissingStub: _FakeStreamQueryStore_10(
            this,
            Invocation.getter(#streamQueries),
          ),
        ) as _i4.StreamQueryStore);
  
    @override
    _i3.DatabaseConnectionUser get resolvedEngine => (super.noSuchMethod(
          Invocation.getter(#resolvedEngine),
          returnValue: _FakeDatabaseConnectionUser_11(
            this,
            Invocation.getter(#resolvedEngine),
          ),
          returnValueForMissingStub: _FakeDatabaseConnectionUser_11(
            this,
            Invocation.getter(#resolvedEngine),
          ),
        ) as _i3.DatabaseConnectionUser);
  
    @override
    _i2.$DbRecipeTable get dbRecipe => (super.noSuchMethod(
          Invocation.getter(#dbRecipe),
          returnValue: _Fake$DbRecipeTable_0(
            this,
            Invocation.getter(#dbRecipe),
          ),
          returnValueForMissingStub: _Fake$DbRecipeTable_0(
            this,
            Invocation.getter(#dbRecipe),
          ),
        ) as _i2.$DbRecipeTable);
  
    @override
    _i5.Future<List<_i2.DbRecipeData>> findAllRecipes() => (super.noSuchMethod(
          Invocation.method(
            #findAllRecipes,
            [],
          ),
          returnValue:
              _i5.Future<List<_i2.DbRecipeData>>.value(<_i2.DbRecipeData>[]),
          returnValueForMissingStub:
              _i5.Future<List<_i2.DbRecipeData>>.value(<_i2.DbRecipeData>[]),
        ) as _i5.Future<List<_i2.DbRecipeData>>);
  
    @override
    _i5.Stream<List<_i7.Recipe>> watchAllRecipes() => (super.noSuchMethod(
          Invocation.method(
            #watchAllRecipes,
            [],
          ),
          returnValue: _i5.Stream<List<_i7.Recipe>>.empty(),
          returnValueForMissingStub: _i5.Stream<List<_i7.Recipe>>.empty(),
        ) as _i5.Stream<List<_i7.Recipe>>);
  
    @override
    _i5.Future<List<_i2.DbRecipeData>> findRecipeById(int? id) =>
        (super.noSuchMethod(
          Invocation.method(
            #findRecipeById,
            [id],
          ),
          returnValue:
              _i5.Future<List<_i2.DbRecipeData>>.value(<_i2.DbRecipeData>[]),
          returnValueForMissingStub:
              _i5.Future<List<_i2.DbRecipeData>>.value(<_i2.DbRecipeData>[]),
        ) as _i5.Future<List<_i2.DbRecipeData>>);
  
    @override
    _i5.Future<int> insertRecipe(_i3.Insertable<_i2.DbRecipeData>? recipe) =>
        (super.noSuchMethod(
          Invocation.method(
            #insertRecipe,
            [recipe],
          ),
          returnValue: _i5.Future<int>.value(0),
          returnValueForMissingStub: _i5.Future<int>.value(0),
        ) as _i5.Future<int>);
  
    @override
    _i5.Future<dynamic> deleteRecipe(int? id) => (super.noSuchMethod(
          Invocation.method(
            #deleteRecipe,
            [id],
          ),
          returnValue: _i5.Future<dynamic>.value(),
          returnValueForMissingStub: _i5.Future<dynamic>.value(),
        ) as _i5.Future<dynamic>);
  
    @override
    _i5.Stream<List<Map<String, Object?>>> createStream(
            _i4.QueryStreamFetcher? stmt) =>
        (super.noSuchMethod(
          Invocation.method(
            #createStream,
            [stmt],
          ),
          returnValue: _i5.Stream<List<Map<String, Object?>>>.empty(),
          returnValueForMissingStub:
              _i5.Stream<List<Map<String, Object?>>>.empty(),
        ) as _i5.Stream<List<Map<String, Object?>>>);
  
    @override
    T alias<T, D>(
      _i3.ResultSetImplementation<T, D>? table,
      String? alias,
    ) =>
        (super.noSuchMethod(
          Invocation.method(
            #alias,
            [
              table,
              alias,
            ],
          ),
          returnValue: _i6.dummyValue<T>(
            this,
            Invocation.method(
              #alias,
              [
                table,
                alias,
              ],
            ),
          ),
          returnValueForMissingStub: _i6.dummyValue<T>(
            this,
            Invocation.method(
              #alias,
              [
                table,
                alias,
              ],
            ),
          ),
        ) as T);
  
    @override
    void markTablesUpdated(Iterable<_i3.TableInfo<_i3.Table, dynamic>>? tables) =>
        super.noSuchMethod(
          Invocation.method(
            #markTablesUpdated,
            [tables],
          ),
          returnValueForMissingStub: null,
        );
  
    @override
    void notifyUpdates(Set<_i3.TableUpdate>? updates) => super.noSuchMethod(
          Invocation.method(
            #notifyUpdates,
            [updates],
          ),
          returnValueForMissingStub: null,
        );
  
    @override
    _i5.Stream<Set<_i3.TableUpdate>> tableUpdates(
            [_i3.TableUpdateQuery? query = const _i3.TableUpdateQuery.any()]) =>
        (super.noSuchMethod(
          Invocation.method(
            #tableUpdates,
            [query],
          ),
          returnValue: _i5.Stream<Set<_i3.TableUpdate>>.empty(),
          returnValueForMissingStub: _i5.Stream<Set<_i3.TableUpdate>>.empty(),
        ) as _i5.Stream<Set<_i3.TableUpdate>>);
  
    @override
    _i5.Future<T> doWhenOpened<T>(
            _i5.FutureOr<T> Function(_i3.QueryExecutor)? fn) =>
        (super.noSuchMethod(
          Invocation.method(
            #doWhenOpened,
            [fn],
          ),
          returnValue: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #doWhenOpened,
                    [fn],
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #doWhenOpened,
                  [fn],
                ),
              ),
          returnValueForMissingStub: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #doWhenOpened,
                    [fn],
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #doWhenOpened,
                  [fn],
                ),
              ),
        ) as _i5.Future<T>);
  
    @override
    _i3.InsertStatement<T, D> into<T extends _i3.Table, D>(
            _i3.TableInfo<T, D>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #into,
            [table],
          ),
          returnValue: _FakeInsertStatement_14<T, D>(
            this,
            Invocation.method(
              #into,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeInsertStatement_14<T, D>(
            this,
            Invocation.method(
              #into,
              [table],
            ),
          ),
        ) as _i3.InsertStatement<T, D>);
  
    @override
    _i3.UpdateStatement<Tbl, R> update<Tbl extends _i3.Table, R>(
            _i3.TableInfo<Tbl, R>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #update,
            [table],
          ),
          returnValue: _FakeUpdateStatement_15<Tbl, R>(
            this,
            Invocation.method(
              #update,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeUpdateStatement_15<Tbl, R>(
            this,
            Invocation.method(
              #update,
              [table],
            ),
          ),
        ) as _i3.UpdateStatement<Tbl, R>);
  
    @override
    _i3.SimpleSelectStatement<T, R> select<T extends _i3.HasResultSet, R>(
      _i3.ResultSetImplementation<T, R>? table, {
      bool? distinct = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #select,
            [table],
            {#distinct: distinct},
          ),
          returnValue: _FakeSimpleSelectStatement_16<T, R>(
            this,
            Invocation.method(
              #select,
              [table],
              {#distinct: distinct},
            ),
          ),
          returnValueForMissingStub: _FakeSimpleSelectStatement_16<T, R>(
            this,
            Invocation.method(
              #select,
              [table],
              {#distinct: distinct},
            ),
          ),
        ) as _i3.SimpleSelectStatement<T, R>);
  
    @override
    _i3.JoinedSelectStatement<T, R> selectOnly<T extends _i3.HasResultSet, R>(
      _i3.ResultSetImplementation<T, R>? table, {
      bool? distinct = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #selectOnly,
            [table],
            {#distinct: distinct},
          ),
          returnValue: _FakeJoinedSelectStatement_17<T, R>(
            this,
            Invocation.method(
              #selectOnly,
              [table],
              {#distinct: distinct},
            ),
          ),
          returnValueForMissingStub: _FakeJoinedSelectStatement_17<T, R>(
            this,
            Invocation.method(
              #selectOnly,
              [table],
              {#distinct: distinct},
            ),
          ),
        ) as _i3.JoinedSelectStatement<T, R>);
  
    @override
    _i3.DeleteStatement<T, D> delete<T extends _i3.Table, D>(
            _i3.TableInfo<T, D>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #delete,
            [table],
          ),
          returnValue: _FakeDeleteStatement_18<T, D>(
            this,
            Invocation.method(
              #delete,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeDeleteStatement_18<T, D>(
            this,
            Invocation.method(
              #delete,
              [table],
            ),
          ),
        ) as _i3.DeleteStatement<T, D>);
  
    @override
    _i5.Future<int> customUpdate(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
      _i3.UpdateKind? updateKind,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customUpdate,
            [query],
            {
              #variables: variables,
              #updates: updates,
              #updateKind: updateKind,
            },
          ),
          returnValue: _i5.Future<int>.value(0),
          returnValueForMissingStub: _i5.Future<int>.value(0),
        ) as _i5.Future<int>);
  
    @override
    _i5.Future<int> customInsert(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customInsert,
            [query],
            {
              #variables: variables,
              #updates: updates,
            },
          ),
          returnValue: _i5.Future<int>.value(0),
          returnValueForMissingStub: _i5.Future<int>.value(0),
        ) as _i5.Future<int>);
  
    @override
    _i5.Future<List<_i3.QueryRow>> customWriteReturning(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
      _i3.UpdateKind? updateKind,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customWriteReturning,
            [query],
            {
              #variables: variables,
              #updates: updates,
              #updateKind: updateKind,
            },
          ),
          returnValue: _i5.Future<List<_i3.QueryRow>>.value(<_i3.QueryRow>[]),
          returnValueForMissingStub:
              _i5.Future<List<_i3.QueryRow>>.value(<_i3.QueryRow>[]),
        ) as _i5.Future<List<_i3.QueryRow>>);
  
    @override
    _i3.Selectable<_i3.QueryRow> customSelect(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.ResultSetImplementation<dynamic, dynamic>>? readsFrom = const {},
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customSelect,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
          returnValue: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelect,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
          returnValueForMissingStub: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelect,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
        ) as _i3.Selectable<_i3.QueryRow>);
  
    @override
    _i3.Selectable<_i3.QueryRow> customSelectQuery(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.ResultSetImplementation<dynamic, dynamic>>? readsFrom = const {},
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customSelectQuery,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
          returnValue: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelectQuery,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
          returnValueForMissingStub: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelectQuery,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
        ) as _i3.Selectable<_i3.QueryRow>);
  
    @override
    _i5.Future<void> customStatement(
      String? statement, [
      List<dynamic>? args,
    ]) =>
        (super.noSuchMethod(
          Invocation.method(
            #customStatement,
            [
              statement,
              args,
            ],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  
    @override
    _i5.Future<T> transaction<T>(
      _i5.Future<T> Function()? action, {
      bool? requireNew = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #transaction,
            [action],
            {#requireNew: requireNew},
          ),
          returnValue: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #transaction,
                    [action],
                    {#requireNew: requireNew},
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #transaction,
                  [action],
                  {#requireNew: requireNew},
                ),
              ),
          returnValueForMissingStub: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #transaction,
                    [action],
                    {#requireNew: requireNew},
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #transaction,
                  [action],
                  {#requireNew: requireNew},
                ),
              ),
        ) as _i5.Future<T>);
  
    @override
    _i5.Future<void> batch(_i5.FutureOr<void> Function(_i3.Batch)? runInBatch) =>
        (super.noSuchMethod(
          Invocation.method(
            #batch,
            [runInBatch],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  
    @override
    _i3.GenerationContext $write(
      _i3.Component? component, {
      bool? hasMultipleTables,
      int? startIndex,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #$write,
            [component],
            {
              #hasMultipleTables: hasMultipleTables,
              #startIndex: startIndex,
            },
          ),
          returnValue: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$write,
              [component],
              {
                #hasMultipleTables: hasMultipleTables,
                #startIndex: startIndex,
              },
            ),
          ),
          returnValueForMissingStub: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$write,
              [component],
              {
                #hasMultipleTables: hasMultipleTables,
                #startIndex: startIndex,
              },
            ),
          ),
        ) as _i3.GenerationContext);
  
    @override
    _i3.GenerationContext $writeInsertable(
      _i3.TableInfo<_i3.Table, dynamic>? table,
      _i3.Insertable<dynamic>? insertable, {
      int? startIndex,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #$writeInsertable,
            [
              table,
              insertable,
            ],
            {#startIndex: startIndex},
          ),
          returnValue: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$writeInsertable,
              [
                table,
                insertable,
              ],
              {#startIndex: startIndex},
            ),
          ),
          returnValueForMissingStub: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$writeInsertable,
              [
                table,
                insertable,
              ],
              {#startIndex: startIndex},
            ),
          ),
        ) as _i3.GenerationContext);
  
    @override
    String $expandVar(
      int? start,
      int? amount,
    ) =>
        (super.noSuchMethod(
          Invocation.method(
            #$expandVar,
            [
              start,
              amount,
            ],
          ),
          returnValue: '',
          returnValueForMissingStub: '',
        ) as String);
  
    @override
    _i5.Future<void> close() => (super.noSuchMethod(
          Invocation.method(
            #close,
            [],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  }
  
  /// A class which mocks [IngredientDao].
  ///
  /// See the documentation for Mockito's code generation for more information.
  class MockIngredientDao extends _i1.Mock implements _i2.IngredientDao {
    @override
    _i2.RecipeDatabase get db => (super.noSuchMethod(
          Invocation.getter(#db),
          returnValue: _FakeRecipeDatabase_21(
            this,
            Invocation.getter(#db),
          ),
          returnValueForMissingStub: _FakeRecipeDatabase_21(
            this,
            Invocation.getter(#db),
          ),
        ) as _i2.RecipeDatabase);
  
    @override
    _i2.RecipeDatabase get attachedDatabase => (super.noSuchMethod(
          Invocation.getter(#attachedDatabase),
          returnValue: _FakeRecipeDatabase_21(
            this,
            Invocation.getter(#attachedDatabase),
          ),
          returnValueForMissingStub: _FakeRecipeDatabase_21(
            this,
            Invocation.getter(#attachedDatabase),
          ),
        ) as _i2.RecipeDatabase);
  
    @override
    _i3.DatabaseConnection get connection => (super.noSuchMethod(
          Invocation.getter(#connection),
          returnValue: _FakeDatabaseConnection_8(
            this,
            Invocation.getter(#connection),
          ),
          returnValueForMissingStub: _FakeDatabaseConnection_8(
            this,
            Invocation.getter(#connection),
          ),
        ) as _i3.DatabaseConnection);
  
    @override
    _i3.DriftDatabaseOptions get options => (super.noSuchMethod(
          Invocation.getter(#options),
          returnValue: _FakeDriftDatabaseOptions_5(
            this,
            Invocation.getter(#options),
          ),
          returnValueForMissingStub: _FakeDriftDatabaseOptions_5(
            this,
            Invocation.getter(#options),
          ),
        ) as _i3.DriftDatabaseOptions);
  
    @override
    _i3.SqlTypes get typeMapping => (super.noSuchMethod(
          Invocation.getter(#typeMapping),
          returnValue: _i6.dummyValue<_i3.SqlTypes>(
            this,
            Invocation.getter(#typeMapping),
          ),
          returnValueForMissingStub: _i6.dummyValue<_i3.SqlTypes>(
            this,
            Invocation.getter(#typeMapping),
          ),
        ) as _i3.SqlTypes);
  
    @override
    _i3.QueryExecutor get executor => (super.noSuchMethod(
          Invocation.getter(#executor),
          returnValue: _FakeQueryExecutor_9(
            this,
            Invocation.getter(#executor),
          ),
          returnValueForMissingStub: _FakeQueryExecutor_9(
            this,
            Invocation.getter(#executor),
          ),
        ) as _i3.QueryExecutor);
  
    @override
    _i4.StreamQueryStore get streamQueries => (super.noSuchMethod(
          Invocation.getter(#streamQueries),
          returnValue: _FakeStreamQueryStore_10(
            this,
            Invocation.getter(#streamQueries),
          ),
          returnValueForMissingStub: _FakeStreamQueryStore_10(
            this,
            Invocation.getter(#streamQueries),
          ),
        ) as _i4.StreamQueryStore);
  
    @override
    _i3.DatabaseConnectionUser get resolvedEngine => (super.noSuchMethod(
          Invocation.getter(#resolvedEngine),
          returnValue: _FakeDatabaseConnectionUser_11(
            this,
            Invocation.getter(#resolvedEngine),
          ),
          returnValueForMissingStub: _FakeDatabaseConnectionUser_11(
            this,
            Invocation.getter(#resolvedEngine),
          ),
        ) as _i3.DatabaseConnectionUser);
  
    @override
    _i2.$DbIngredientTable get dbIngredient => (super.noSuchMethod(
          Invocation.getter(#dbIngredient),
          returnValue: _Fake$DbIngredientTable_1(
            this,
            Invocation.getter(#dbIngredient),
          ),
          returnValueForMissingStub: _Fake$DbIngredientTable_1(
            this,
            Invocation.getter(#dbIngredient),
          ),
        ) as _i2.$DbIngredientTable);
  
    @override
    _i5.Future<List<_i2.DbIngredientData>> findAllIngredients() =>
        (super.noSuchMethod(
          Invocation.method(
            #findAllIngredients,
            [],
          ),
          returnValue: _i5.Future<List<_i2.DbIngredientData>>.value(
              <_i2.DbIngredientData>[]),
          returnValueForMissingStub: _i5.Future<List<_i2.DbIngredientData>>.value(
              <_i2.DbIngredientData>[]),
        ) as _i5.Future<List<_i2.DbIngredientData>>);
  
    @override
    _i5.Stream<List<_i2.DbIngredientData>> watchAllIngredients() =>
        (super.noSuchMethod(
          Invocation.method(
            #watchAllIngredients,
            [],
          ),
          returnValue: _i5.Stream<List<_i2.DbIngredientData>>.empty(),
          returnValueForMissingStub:
              _i5.Stream<List<_i2.DbIngredientData>>.empty(),
        ) as _i5.Stream<List<_i2.DbIngredientData>>);
  
    @override
    _i5.Future<List<_i2.DbIngredientData>> findRecipeIngredients(int? id) =>
        (super.noSuchMethod(
          Invocation.method(
            #findRecipeIngredients,
            [id],
          ),
          returnValue: _i5.Future<List<_i2.DbIngredientData>>.value(
              <_i2.DbIngredientData>[]),
          returnValueForMissingStub: _i5.Future<List<_i2.DbIngredientData>>.value(
              <_i2.DbIngredientData>[]),
        ) as _i5.Future<List<_i2.DbIngredientData>>);
  
    @override
    _i5.Future<int> insertIngredient(
            _i3.Insertable<_i2.DbIngredientData>? ingredient) =>
        (super.noSuchMethod(
          Invocation.method(
            #insertIngredient,
            [ingredient],
          ),
          returnValue: _i5.Future<int>.value(0),
          returnValueForMissingStub: _i5.Future<int>.value(0),
        ) as _i5.Future<int>);
  
    @override
    _i5.Future<dynamic> deleteIngredient(int? id) => (super.noSuchMethod(
          Invocation.method(
            #deleteIngredient,
            [id],
          ),
          returnValue: _i5.Future<dynamic>.value(),
          returnValueForMissingStub: _i5.Future<dynamic>.value(),
        ) as _i5.Future<dynamic>);
  
    @override
    _i5.Stream<List<Map<String, Object?>>> createStream(
            _i4.QueryStreamFetcher? stmt) =>
        (super.noSuchMethod(
          Invocation.method(
            #createStream,
            [stmt],
          ),
          returnValue: _i5.Stream<List<Map<String, Object?>>>.empty(),
          returnValueForMissingStub:
              _i5.Stream<List<Map<String, Object?>>>.empty(),
        ) as _i5.Stream<List<Map<String, Object?>>>);
  
    @override
    T alias<T, D>(
      _i3.ResultSetImplementation<T, D>? table,
      String? alias,
    ) =>
        (super.noSuchMethod(
          Invocation.method(
            #alias,
            [
              table,
              alias,
            ],
          ),
          returnValue: _i6.dummyValue<T>(
            this,
            Invocation.method(
              #alias,
              [
                table,
                alias,
              ],
            ),
          ),
          returnValueForMissingStub: _i6.dummyValue<T>(
            this,
            Invocation.method(
              #alias,
              [
                table,
                alias,
              ],
            ),
          ),
        ) as T);
  
    @override
    void markTablesUpdated(Iterable<_i3.TableInfo<_i3.Table, dynamic>>? tables) =>
        super.noSuchMethod(
          Invocation.method(
            #markTablesUpdated,
            [tables],
          ),
          returnValueForMissingStub: null,
        );
  
    @override
    void notifyUpdates(Set<_i3.TableUpdate>? updates) => super.noSuchMethod(
          Invocation.method(
            #notifyUpdates,
            [updates],
          ),
          returnValueForMissingStub: null,
        );
  
    @override
    _i5.Stream<Set<_i3.TableUpdate>> tableUpdates(
            [_i3.TableUpdateQuery? query = const _i3.TableUpdateQuery.any()]) =>
        (super.noSuchMethod(
          Invocation.method(
            #tableUpdates,
            [query],
          ),
          returnValue: _i5.Stream<Set<_i3.TableUpdate>>.empty(),
          returnValueForMissingStub: _i5.Stream<Set<_i3.TableUpdate>>.empty(),
        ) as _i5.Stream<Set<_i3.TableUpdate>>);
  
    @override
    _i5.Future<T> doWhenOpened<T>(
            _i5.FutureOr<T> Function(_i3.QueryExecutor)? fn) =>
        (super.noSuchMethod(
          Invocation.method(
            #doWhenOpened,
            [fn],
          ),
          returnValue: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #doWhenOpened,
                    [fn],
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #doWhenOpened,
                  [fn],
                ),
              ),
          returnValueForMissingStub: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #doWhenOpened,
                    [fn],
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #doWhenOpened,
                  [fn],
                ),
              ),
        ) as _i5.Future<T>);
  
    @override
    _i3.InsertStatement<T, D> into<T extends _i3.Table, D>(
            _i3.TableInfo<T, D>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #into,
            [table],
          ),
          returnValue: _FakeInsertStatement_14<T, D>(
            this,
            Invocation.method(
              #into,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeInsertStatement_14<T, D>(
            this,
            Invocation.method(
              #into,
              [table],
            ),
          ),
        ) as _i3.InsertStatement<T, D>);
  
    @override
    _i3.UpdateStatement<Tbl, R> update<Tbl extends _i3.Table, R>(
            _i3.TableInfo<Tbl, R>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #update,
            [table],
          ),
          returnValue: _FakeUpdateStatement_15<Tbl, R>(
            this,
            Invocation.method(
              #update,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeUpdateStatement_15<Tbl, R>(
            this,
            Invocation.method(
              #update,
              [table],
            ),
          ),
        ) as _i3.UpdateStatement<Tbl, R>);
  
    @override
    _i3.SimpleSelectStatement<T, R> select<T extends _i3.HasResultSet, R>(
      _i3.ResultSetImplementation<T, R>? table, {
      bool? distinct = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #select,
            [table],
            {#distinct: distinct},
          ),
          returnValue: _FakeSimpleSelectStatement_16<T, R>(
            this,
            Invocation.method(
              #select,
              [table],
              {#distinct: distinct},
            ),
          ),
          returnValueForMissingStub: _FakeSimpleSelectStatement_16<T, R>(
            this,
            Invocation.method(
              #select,
              [table],
              {#distinct: distinct},
            ),
          ),
        ) as _i3.SimpleSelectStatement<T, R>);
  
    @override
    _i3.JoinedSelectStatement<T, R> selectOnly<T extends _i3.HasResultSet, R>(
      _i3.ResultSetImplementation<T, R>? table, {
      bool? distinct = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #selectOnly,
            [table],
            {#distinct: distinct},
          ),
          returnValue: _FakeJoinedSelectStatement_17<T, R>(
            this,
            Invocation.method(
              #selectOnly,
              [table],
              {#distinct: distinct},
            ),
          ),
          returnValueForMissingStub: _FakeJoinedSelectStatement_17<T, R>(
            this,
            Invocation.method(
              #selectOnly,
              [table],
              {#distinct: distinct},
            ),
          ),
        ) as _i3.JoinedSelectStatement<T, R>);
  
    @override
    _i3.DeleteStatement<T, D> delete<T extends _i3.Table, D>(
            _i3.TableInfo<T, D>? table) =>
        (super.noSuchMethod(
          Invocation.method(
            #delete,
            [table],
          ),
          returnValue: _FakeDeleteStatement_18<T, D>(
            this,
            Invocation.method(
              #delete,
              [table],
            ),
          ),
          returnValueForMissingStub: _FakeDeleteStatement_18<T, D>(
            this,
            Invocation.method(
              #delete,
              [table],
            ),
          ),
        ) as _i3.DeleteStatement<T, D>);
  
    @override
    _i5.Future<int> customUpdate(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
      _i3.UpdateKind? updateKind,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customUpdate,
            [query],
            {
              #variables: variables,
              #updates: updates,
              #updateKind: updateKind,
            },
          ),
          returnValue: _i5.Future<int>.value(0),
          returnValueForMissingStub: _i5.Future<int>.value(0),
        ) as _i5.Future<int>);
  
    @override
    _i5.Future<int> customInsert(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customInsert,
            [query],
            {
              #variables: variables,
              #updates: updates,
            },
          ),
          returnValue: _i5.Future<int>.value(0),
          returnValueForMissingStub: _i5.Future<int>.value(0),
        ) as _i5.Future<int>);
  
    @override
    _i5.Future<List<_i3.QueryRow>> customWriteReturning(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.TableInfo<_i3.Table, dynamic>>? updates,
      _i3.UpdateKind? updateKind,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customWriteReturning,
            [query],
            {
              #variables: variables,
              #updates: updates,
              #updateKind: updateKind,
            },
          ),
          returnValue: _i5.Future<List<_i3.QueryRow>>.value(<_i3.QueryRow>[]),
          returnValueForMissingStub:
              _i5.Future<List<_i3.QueryRow>>.value(<_i3.QueryRow>[]),
        ) as _i5.Future<List<_i3.QueryRow>>);
  
    @override
    _i3.Selectable<_i3.QueryRow> customSelect(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.ResultSetImplementation<dynamic, dynamic>>? readsFrom = const {},
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customSelect,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
          returnValue: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelect,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
          returnValueForMissingStub: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelect,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
        ) as _i3.Selectable<_i3.QueryRow>);
  
    @override
    _i3.Selectable<_i3.QueryRow> customSelectQuery(
      String? query, {
      List<_i3.Variable<Object>>? variables = const [],
      Set<_i3.ResultSetImplementation<dynamic, dynamic>>? readsFrom = const {},
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #customSelectQuery,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
          returnValue: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelectQuery,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
          returnValueForMissingStub: _FakeSelectable_19<_i3.QueryRow>(
            this,
            Invocation.method(
              #customSelectQuery,
              [query],
              {
                #variables: variables,
                #readsFrom: readsFrom,
              },
            ),
          ),
        ) as _i3.Selectable<_i3.QueryRow>);
  
    @override
    _i5.Future<void> customStatement(
      String? statement, [
      List<dynamic>? args,
    ]) =>
        (super.noSuchMethod(
          Invocation.method(
            #customStatement,
            [
              statement,
              args,
            ],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  
    @override
    _i5.Future<T> transaction<T>(
      _i5.Future<T> Function()? action, {
      bool? requireNew = false,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #transaction,
            [action],
            {#requireNew: requireNew},
          ),
          returnValue: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #transaction,
                    [action],
                    {#requireNew: requireNew},
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #transaction,
                  [action],
                  {#requireNew: requireNew},
                ),
              ),
          returnValueForMissingStub: _i6.ifNotNull(
                _i6.dummyValueOrNull<T>(
                  this,
                  Invocation.method(
                    #transaction,
                    [action],
                    {#requireNew: requireNew},
                  ),
                ),
                (T v) => _i5.Future<T>.value(v),
              ) ??
              _FakeFuture_13<T>(
                this,
                Invocation.method(
                  #transaction,
                  [action],
                  {#requireNew: requireNew},
                ),
              ),
        ) as _i5.Future<T>);
  
    @override
    _i5.Future<void> batch(_i5.FutureOr<void> Function(_i3.Batch)? runInBatch) =>
        (super.noSuchMethod(
          Invocation.method(
            #batch,
            [runInBatch],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  
    @override
    _i3.GenerationContext $write(
      _i3.Component? component, {
      bool? hasMultipleTables,
      int? startIndex,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #$write,
            [component],
            {
              #hasMultipleTables: hasMultipleTables,
              #startIndex: startIndex,
            },
          ),
          returnValue: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$write,
              [component],
              {
                #hasMultipleTables: hasMultipleTables,
                #startIndex: startIndex,
              },
            ),
          ),
          returnValueForMissingStub: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$write,
              [component],
              {
                #hasMultipleTables: hasMultipleTables,
                #startIndex: startIndex,
              },
            ),
          ),
        ) as _i3.GenerationContext);
  
    @override
    _i3.GenerationContext $writeInsertable(
      _i3.TableInfo<_i3.Table, dynamic>? table,
      _i3.Insertable<dynamic>? insertable, {
      int? startIndex,
    }) =>
        (super.noSuchMethod(
          Invocation.method(
            #$writeInsertable,
            [
              table,
              insertable,
            ],
            {#startIndex: startIndex},
          ),
          returnValue: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$writeInsertable,
              [
                table,
                insertable,
              ],
              {#startIndex: startIndex},
            ),
          ),
          returnValueForMissingStub: _FakeGenerationContext_20(
            this,
            Invocation.method(
              #$writeInsertable,
              [
                table,
                insertable,
              ],
              {#startIndex: startIndex},
            ),
          ),
        ) as _i3.GenerationContext);
  
    @override
    String $expandVar(
      int? start,
      int? amount,
    ) =>
        (super.noSuchMethod(
          Invocation.method(
            #$expandVar,
            [
              start,
              amount,
            ],
          ),
          returnValue: '',
          returnValueForMissingStub: '',
        ) as String);
  
    @override
    _i5.Future<void> close() => (super.noSuchMethod(
          Invocation.method(
            #close,
            [],
          ),
          returnValue: _i5.Future<void>.value(),
          returnValueForMissingStub: _i5.Future<void>.value(),
        ) as _i5.Future<void>);
  }
  