// Mocks generated by Mockito 5.4.4 from annotations
// in drift/test/generated/todos.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 _i2;
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 'todos.dart' as _i3;

// 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: deprecated_member_use
// ignore_for_file: deprecated_member_use_from_same_package
// 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 _FakeMigrationStrategy_0 extends _i1.SmartFake
    implements _i2.MigrationStrategy {
  _FakeMigrationStrategy_0(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeDriftDatabaseOptions_1 extends _i1.SmartFake
    implements _i2.DriftDatabaseOptions {
  _FakeDriftDatabaseOptions_1(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$CategoriesTable_2 extends _i1.SmartFake
    implements _i3.$CategoriesTable {
  _Fake$CategoriesTable_2(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$TodosTableTable_3 extends _i1.SmartFake
    implements _i3.$TodosTableTable {
  _Fake$TodosTableTable_3(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$UsersTable_4 extends _i1.SmartFake implements _i3.$UsersTable {
  _Fake$UsersTable_4(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$SharedTodosTable_5 extends _i1.SmartFake
    implements _i3.$SharedTodosTable {
  _Fake$SharedTodosTable_5(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$TableWithoutPKTable_6 extends _i1.SmartFake
    implements _i3.$TableWithoutPKTable {
  _Fake$TableWithoutPKTable_6(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$PureDefaultsTable_7 extends _i1.SmartFake
    implements _i3.$PureDefaultsTable {
  _Fake$PureDefaultsTable_7(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$WithCustomTypeTable_8 extends _i1.SmartFake
    implements _i3.$WithCustomTypeTable {
  _Fake$WithCustomTypeTable_8(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$TableWithEveryColumnTypeTable_9 extends _i1.SmartFake
    implements _i3.$TableWithEveryColumnTypeTable {
  _Fake$TableWithEveryColumnTypeTable_9(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$DepartmentTable_10 extends _i1.SmartFake
    implements _i3.$DepartmentTable {
  _Fake$DepartmentTable_10(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$ProductTable_11 extends _i1.SmartFake implements _i3.$ProductTable {
  _Fake$ProductTable_11(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$StoreTable_12 extends _i1.SmartFake implements _i3.$StoreTable {
  _Fake$StoreTable_12(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$ListingTable_13 extends _i1.SmartFake implements _i3.$ListingTable {
  _Fake$ListingTable_13(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$CategoryTodoCountViewView_14 extends _i1.SmartFake
    implements _i3.$CategoryTodoCountViewView {
  _Fake$CategoryTodoCountViewView_14(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$TodoWithCategoryViewView_15 extends _i1.SmartFake
    implements _i3.$TodoWithCategoryViewView {
  _Fake$TodoWithCategoryViewView_15(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeSomeDao_16 extends _i1.SmartFake implements _i3.SomeDao {
  _FakeSomeDao_16(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _Fake$TodoDbManager_17 extends _i1.SmartFake
    implements _i3.$TodoDbManager {
  _Fake$TodoDbManager_17(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeGeneratedDatabase_18 extends _i1.SmartFake
    implements _i2.GeneratedDatabase {
  _FakeGeneratedDatabase_18(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeStreamQueryUpdateRules_19 extends _i1.SmartFake
    implements _i2.StreamQueryUpdateRules {
  _FakeStreamQueryUpdateRules_19(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeDatabaseConnection_20 extends _i1.SmartFake
    implements _i2.DatabaseConnection {
  _FakeDatabaseConnection_20(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeQueryExecutor_21 extends _i1.SmartFake implements _i2.QueryExecutor {
  _FakeQueryExecutor_21(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeStreamQueryStore_22 extends _i1.SmartFake
    implements _i4.StreamQueryStore {
  _FakeStreamQueryStore_22(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeDatabaseConnectionUser_23 extends _i1.SmartFake
    implements _i2.DatabaseConnectionUser {
  _FakeDatabaseConnectionUser_23(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeSelectable_24<T> extends _i1.SmartFake implements _i2.Selectable<T> {
  _FakeSelectable_24(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeMigrator_25 extends _i1.SmartFake implements _i2.Migrator {
  _FakeMigrator_25(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeFuture_26<T1> extends _i1.SmartFake implements _i5.Future<T1> {
  _FakeFuture_26(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeInsertStatement_27<T1 extends _i2.Table, D1> extends _i1.SmartFake
    implements _i2.InsertStatement<T1, D1> {
  _FakeInsertStatement_27(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeUpdateStatement_28<T extends _i2.Table, D> extends _i1.SmartFake
    implements _i2.UpdateStatement<T, D> {
  _FakeUpdateStatement_28(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeSimpleSelectStatement_29<T1 extends _i2.HasResultSet, D>
    extends _i1.SmartFake implements _i2.SimpleSelectStatement<T1, D> {
  _FakeSimpleSelectStatement_29(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeJoinedSelectStatement_30<FirstT extends _i2.HasResultSet, FirstD>
    extends _i1.SmartFake implements _i2.JoinedSelectStatement<FirstT, FirstD> {
  _FakeJoinedSelectStatement_30(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeBaseSelectStatement_31<Row> extends _i1.SmartFake
    implements _i2.BaseSelectStatement<Row> {
  _FakeBaseSelectStatement_31(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeDeleteStatement_32<T1 extends _i2.Table, D1> extends _i1.SmartFake
    implements _i2.DeleteStatement<T1, D1> {
  _FakeDeleteStatement_32(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

class _FakeGenerationContext_33 extends _i1.SmartFake
    implements _i2.GenerationContext {
  _FakeGenerationContext_33(
    Object parent,
    Invocation parentInvocation,
  ) : super(
          parent,
          parentInvocation,
        );
}

/// A class which mocks [TodoDb].
///
/// See the documentation for Mockito's code generation for more information.
class MockTodoDb extends _i1.Mock implements _i3.TodoDb {
  @override
  _i2.MigrationStrategy get migration => (super.noSuchMethod(
        Invocation.getter(#migration),
        returnValue: _FakeMigrationStrategy_0(
          this,
          Invocation.getter(#migration),
        ),
        returnValueForMissingStub: _FakeMigrationStrategy_0(
          this,
          Invocation.getter(#migration),
        ),
      ) as _i2.MigrationStrategy);

  @override
  set migration(_i2.MigrationStrategy? _migration) => super.noSuchMethod(
        Invocation.setter(
          #migration,
          _migration,
        ),
        returnValueForMissingStub: null,
      );

  @override
  _i2.DriftDatabaseOptions get options => (super.noSuchMethod(
        Invocation.getter(#options),
        returnValue: _FakeDriftDatabaseOptions_1(
          this,
          Invocation.getter(#options),
        ),
        returnValueForMissingStub: _FakeDriftDatabaseOptions_1(
          this,
          Invocation.getter(#options),
        ),
      ) as _i2.DriftDatabaseOptions);

  @override
  set options(_i2.DriftDatabaseOptions? _options) => super.noSuchMethod(
        Invocation.setter(
          #options,
          _options,
        ),
        returnValueForMissingStub: null,
      );

  @override
  int get schemaVersion => (super.noSuchMethod(
        Invocation.getter(#schemaVersion),
        returnValue: 0,
        returnValueForMissingStub: 0,
      ) as int);

  @override
  set schemaVersion(int? _schemaVersion) => super.noSuchMethod(
        Invocation.setter(
          #schemaVersion,
          _schemaVersion,
        ),
        returnValueForMissingStub: null,
      );

  @override
  _i3.$CategoriesTable get categories => (super.noSuchMethod(
        Invocation.getter(#categories),
        returnValue: _Fake$CategoriesTable_2(
          this,
          Invocation.getter(#categories),
        ),
        returnValueForMissingStub: _Fake$CategoriesTable_2(
          this,
          Invocation.getter(#categories),
        ),
      ) as _i3.$CategoriesTable);

  @override
  _i3.$TodosTableTable get todosTable => (super.noSuchMethod(
        Invocation.getter(#todosTable),
        returnValue: _Fake$TodosTableTable_3(
          this,
          Invocation.getter(#todosTable),
        ),
        returnValueForMissingStub: _Fake$TodosTableTable_3(
          this,
          Invocation.getter(#todosTable),
        ),
      ) as _i3.$TodosTableTable);

  @override
  _i3.$UsersTable get users => (super.noSuchMethod(
        Invocation.getter(#users),
        returnValue: _Fake$UsersTable_4(
          this,
          Invocation.getter(#users),
        ),
        returnValueForMissingStub: _Fake$UsersTable_4(
          this,
          Invocation.getter(#users),
        ),
      ) as _i3.$UsersTable);

  @override
  _i3.$SharedTodosTable get sharedTodos => (super.noSuchMethod(
        Invocation.getter(#sharedTodos),
        returnValue: _Fake$SharedTodosTable_5(
          this,
          Invocation.getter(#sharedTodos),
        ),
        returnValueForMissingStub: _Fake$SharedTodosTable_5(
          this,
          Invocation.getter(#sharedTodos),
        ),
      ) as _i3.$SharedTodosTable);

  @override
  _i3.$TableWithoutPKTable get tableWithoutPK => (super.noSuchMethod(
        Invocation.getter(#tableWithoutPK),
        returnValue: _Fake$TableWithoutPKTable_6(
          this,
          Invocation.getter(#tableWithoutPK),
        ),
        returnValueForMissingStub: _Fake$TableWithoutPKTable_6(
          this,
          Invocation.getter(#tableWithoutPK),
        ),
      ) as _i3.$TableWithoutPKTable);

  @override
  _i3.$PureDefaultsTable get pureDefaults => (super.noSuchMethod(
        Invocation.getter(#pureDefaults),
        returnValue: _Fake$PureDefaultsTable_7(
          this,
          Invocation.getter(#pureDefaults),
        ),
        returnValueForMissingStub: _Fake$PureDefaultsTable_7(
          this,
          Invocation.getter(#pureDefaults),
        ),
      ) as _i3.$PureDefaultsTable);

  @override
  _i3.$WithCustomTypeTable get withCustomType => (super.noSuchMethod(
        Invocation.getter(#withCustomType),
        returnValue: _Fake$WithCustomTypeTable_8(
          this,
          Invocation.getter(#withCustomType),
        ),
        returnValueForMissingStub: _Fake$WithCustomTypeTable_8(
          this,
          Invocation.getter(#withCustomType),
        ),
      ) as _i3.$WithCustomTypeTable);

  @override
  _i3.$TableWithEveryColumnTypeTable get tableWithEveryColumnType =>
      (super.noSuchMethod(
        Invocation.getter(#tableWithEveryColumnType),
        returnValue: _Fake$TableWithEveryColumnTypeTable_9(
          this,
          Invocation.getter(#tableWithEveryColumnType),
        ),
        returnValueForMissingStub: _Fake$TableWithEveryColumnTypeTable_9(
          this,
          Invocation.getter(#tableWithEveryColumnType),
        ),
      ) as _i3.$TableWithEveryColumnTypeTable);

  @override
  _i3.$DepartmentTable get department => (super.noSuchMethod(
        Invocation.getter(#department),
        returnValue: _Fake$DepartmentTable_10(
          this,
          Invocation.getter(#department),
        ),
        returnValueForMissingStub: _Fake$DepartmentTable_10(
          this,
          Invocation.getter(#department),
        ),
      ) as _i3.$DepartmentTable);

  @override
  _i3.$ProductTable get product => (super.noSuchMethod(
        Invocation.getter(#product),
        returnValue: _Fake$ProductTable_11(
          this,
          Invocation.getter(#product),
        ),
        returnValueForMissingStub: _Fake$ProductTable_11(
          this,
          Invocation.getter(#product),
        ),
      ) as _i3.$ProductTable);

  @override
  _i3.$StoreTable get store => (super.noSuchMethod(
        Invocation.getter(#store),
        returnValue: _Fake$StoreTable_12(
          this,
          Invocation.getter(#store),
        ),
        returnValueForMissingStub: _Fake$StoreTable_12(
          this,
          Invocation.getter(#store),
        ),
      ) as _i3.$StoreTable);

  @override
  _i3.$ListingTable get listing => (super.noSuchMethod(
        Invocation.getter(#listing),
        returnValue: _Fake$ListingTable_13(
          this,
          Invocation.getter(#listing),
        ),
        returnValueForMissingStub: _Fake$ListingTable_13(
          this,
          Invocation.getter(#listing),
        ),
      ) as _i3.$ListingTable);

  @override
  _i3.$CategoryTodoCountViewView get categoryTodoCountView =>
      (super.noSuchMethod(
        Invocation.getter(#categoryTodoCountView),
        returnValue: _Fake$CategoryTodoCountViewView_14(
          this,
          Invocation.getter(#categoryTodoCountView),
        ),
        returnValueForMissingStub: _Fake$CategoryTodoCountViewView_14(
          this,
          Invocation.getter(#categoryTodoCountView),
        ),
      ) as _i3.$CategoryTodoCountViewView);

  @override
  _i3.$TodoWithCategoryViewView get todoWithCategoryView => (super.noSuchMethod(
        Invocation.getter(#todoWithCategoryView),
        returnValue: _Fake$TodoWithCategoryViewView_15(
          this,
          Invocation.getter(#todoWithCategoryView),
        ),
        returnValueForMissingStub: _Fake$TodoWithCategoryViewView_15(
          this,
          Invocation.getter(#todoWithCategoryView),
        ),
      ) as _i3.$TodoWithCategoryViewView);

  @override
  _i3.SomeDao get someDao => (super.noSuchMethod(
        Invocation.getter(#someDao),
        returnValue: _FakeSomeDao_16(
          this,
          Invocation.getter(#someDao),
        ),
        returnValueForMissingStub: _FakeSomeDao_16(
          this,
          Invocation.getter(#someDao),
        ),
      ) as _i3.SomeDao);

  @override
  _i3.$TodoDbManager get managers => (super.noSuchMethod(
        Invocation.getter(#managers),
        returnValue: _Fake$TodoDbManager_17(
          this,
          Invocation.getter(#managers),
        ),
        returnValueForMissingStub: _Fake$TodoDbManager_17(
          this,
          Invocation.getter(#managers),
        ),
      ) as _i3.$TodoDbManager);

  @override
  Iterable<_i2.TableInfo<_i2.Table, Object?>> get allTables =>
      (super.noSuchMethod(
        Invocation.getter(#allTables),
        returnValue: <_i2.TableInfo<_i2.Table, Object?>>[],
        returnValueForMissingStub: <_i2.TableInfo<_i2.Table, Object?>>[],
      ) as Iterable<_i2.TableInfo<_i2.Table, Object?>>);

  @override
  List<_i2.DatabaseSchemaEntity> get allSchemaEntities => (super.noSuchMethod(
        Invocation.getter(#allSchemaEntities),
        returnValue: <_i2.DatabaseSchemaEntity>[],
        returnValueForMissingStub: <_i2.DatabaseSchemaEntity>[],
      ) as List<_i2.DatabaseSchemaEntity>);

  @override
  _i2.GeneratedDatabase get attachedDatabase => (super.noSuchMethod(
        Invocation.getter(#attachedDatabase),
        returnValue: _FakeGeneratedDatabase_18(
          this,
          Invocation.getter(#attachedDatabase),
        ),
        returnValueForMissingStub: _FakeGeneratedDatabase_18(
          this,
          Invocation.getter(#attachedDatabase),
        ),
      ) as _i2.GeneratedDatabase);

  @override
  _i2.StreamQueryUpdateRules get streamUpdateRules => (super.noSuchMethod(
        Invocation.getter(#streamUpdateRules),
        returnValue: _FakeStreamQueryUpdateRules_19(
          this,
          Invocation.getter(#streamUpdateRules),
        ),
        returnValueForMissingStub: _FakeStreamQueryUpdateRules_19(
          this,
          Invocation.getter(#streamUpdateRules),
        ),
      ) as _i2.StreamQueryUpdateRules);

  @override
  _i2.DatabaseConnection get connection => (super.noSuchMethod(
        Invocation.getter(#connection),
        returnValue: _FakeDatabaseConnection_20(
          this,
          Invocation.getter(#connection),
        ),
        returnValueForMissingStub: _FakeDatabaseConnection_20(
          this,
          Invocation.getter(#connection),
        ),
      ) as _i2.DatabaseConnection);

  @override
  _i2.SqlTypes get typeMapping => (super.noSuchMethod(
        Invocation.getter(#typeMapping),
        returnValue: _i6.dummyValue<_i2.SqlTypes>(
          this,
          Invocation.getter(#typeMapping),
        ),
        returnValueForMissingStub: _i6.dummyValue<_i2.SqlTypes>(
          this,
          Invocation.getter(#typeMapping),
        ),
      ) as _i2.SqlTypes);

  @override
  _i2.QueryExecutor get executor => (super.noSuchMethod(
        Invocation.getter(#executor),
        returnValue: _FakeQueryExecutor_21(
          this,
          Invocation.getter(#executor),
        ),
        returnValueForMissingStub: _FakeQueryExecutor_21(
          this,
          Invocation.getter(#executor),
        ),
      ) as _i2.QueryExecutor);

  @override
  _i4.StreamQueryStore get streamQueries => (super.noSuchMethod(
        Invocation.getter(#streamQueries),
        returnValue: _FakeStreamQueryStore_22(
          this,
          Invocation.getter(#streamQueries),
        ),
        returnValueForMissingStub: _FakeStreamQueryStore_22(
          this,
          Invocation.getter(#streamQueries),
        ),
      ) as _i4.StreamQueryStore);

  @override
  _i2.DatabaseConnectionUser get resolvedEngine => (super.noSuchMethod(
        Invocation.getter(#resolvedEngine),
        returnValue: _FakeDatabaseConnectionUser_23(
          this,
          Invocation.getter(#resolvedEngine),
        ),
        returnValueForMissingStub: _FakeDatabaseConnectionUser_23(
          this,
          Invocation.getter(#resolvedEngine),
        ),
      ) as _i2.DatabaseConnectionUser);

  @override
  _i2.Selectable<_i3.AllTodosWithCategoryResult> allTodosWithCategory() =>
      (super.noSuchMethod(
        Invocation.method(
          #allTodosWithCategory,
          [],
        ),
        returnValue: _FakeSelectable_24<_i3.AllTodosWithCategoryResult>(
          this,
          Invocation.method(
            #allTodosWithCategory,
            [],
          ),
        ),
        returnValueForMissingStub:
            _FakeSelectable_24<_i3.AllTodosWithCategoryResult>(
          this,
          Invocation.method(
            #allTodosWithCategory,
            [],
          ),
        ),
      ) as _i2.Selectable<_i3.AllTodosWithCategoryResult>);

  @override
  _i5.Future<int> deleteTodoById(_i3.RowId? var1) => (super.noSuchMethod(
        Invocation.method(
          #deleteTodoById,
          [var1],
        ),
        returnValue: _i5.Future<int>.value(0),
        returnValueForMissingStub: _i5.Future<int>.value(0),
      ) as _i5.Future<int>);

  @override
  _i2.Selectable<_i3.TodoEntry> withIn(
    String? var1,
    String? var2,
    List<_i3.RowId>? var3,
  ) =>
      (super.noSuchMethod(
        Invocation.method(
          #withIn,
          [
            var1,
            var2,
            var3,
          ],
        ),
        returnValue: _FakeSelectable_24<_i3.TodoEntry>(
          this,
          Invocation.method(
            #withIn,
            [
              var1,
              var2,
              var3,
            ],
          ),
        ),
        returnValueForMissingStub: _FakeSelectable_24<_i3.TodoEntry>(
          this,
          Invocation.method(
            #withIn,
            [
              var1,
              var2,
              var3,
            ],
          ),
        ),
      ) as _i2.Selectable<_i3.TodoEntry>);

  @override
  _i2.Selectable<_i3.TodoEntry> search({required _i3.RowId? id}) =>
      (super.noSuchMethod(
        Invocation.method(
          #search,
          [],
          {#id: id},
        ),
        returnValue: _FakeSelectable_24<_i3.TodoEntry>(
          this,
          Invocation.method(
            #search,
            [],
            {#id: id},
          ),
        ),
        returnValueForMissingStub: _FakeSelectable_24<_i3.TodoEntry>(
          this,
          Invocation.method(
            #search,
            [],
            {#id: id},
          ),
        ),
      ) as _i2.Selectable<_i3.TodoEntry>);

  @override
  _i2.Selectable<_i3.MyCustomObject> findCustom() => (super.noSuchMethod(
        Invocation.method(
          #findCustom,
          [],
        ),
        returnValue: _FakeSelectable_24<_i3.MyCustomObject>(
          this,
          Invocation.method(
            #findCustom,
            [],
          ),
        ),
        returnValueForMissingStub: _FakeSelectable_24<_i3.MyCustomObject>(
          this,
          Invocation.method(
            #findCustom,
            [],
          ),
        ),
      ) as _i2.Selectable<_i3.MyCustomObject>);

  @override
  _i2.Migrator createMigrator() => (super.noSuchMethod(
        Invocation.method(
          #createMigrator,
          [],
        ),
        returnValue: _FakeMigrator_25(
          this,
          Invocation.method(
            #createMigrator,
            [],
          ),
        ),
        returnValueForMissingStub: _FakeMigrator_25(
          this,
          Invocation.method(
            #createMigrator,
            [],
          ),
        ),
      ) as _i2.Migrator);

  @override
  _i5.Future<void> beforeOpen(
    _i2.QueryExecutor? executor,
    _i2.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<T> createStream<T extends Object>(
          _i4.QueryStreamFetcher<T>? stmt) =>
      (super.noSuchMethod(
        Invocation.method(
          #createStream,
          [stmt],
        ),
        returnValue: _i5.Stream<T>.empty(),
        returnValueForMissingStub: _i5.Stream<T>.empty(),
      ) as _i5.Stream<T>);

  @override
  T alias<T, D>(
    _i2.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<_i2.TableInfo<_i2.Table, dynamic>>? tables) =>
      super.noSuchMethod(
        Invocation.method(
          #markTablesUpdated,
          [tables],
        ),
        returnValueForMissingStub: null,
      );

  @override
  void notifyUpdates(Set<_i2.TableUpdate>? updates) => super.noSuchMethod(
        Invocation.method(
          #notifyUpdates,
          [updates],
        ),
        returnValueForMissingStub: null,
      );

  @override
  _i5.Stream<Set<_i2.TableUpdate>> tableUpdates(
          [_i2.TableUpdateQuery? query = const _i2.TableUpdateQuery.any()]) =>
      (super.noSuchMethod(
        Invocation.method(
          #tableUpdates,
          [query],
        ),
        returnValue: _i5.Stream<Set<_i2.TableUpdate>>.empty(),
        returnValueForMissingStub: _i5.Stream<Set<_i2.TableUpdate>>.empty(),
      ) as _i5.Stream<Set<_i2.TableUpdate>>);

  @override
  _i5.Future<T> doWhenOpened<T>(
          _i5.FutureOr<T> Function(_i2.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_26<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_26<T>(
              this,
              Invocation.method(
                #doWhenOpened,
                [fn],
              ),
            ),
      ) as _i5.Future<T>);

  @override
  _i2.InsertStatement<T, D> into<T extends _i2.Table, D>(
          _i2.TableInfo<T, D>? table) =>
      (super.noSuchMethod(
        Invocation.method(
          #into,
          [table],
        ),
        returnValue: _FakeInsertStatement_27<T, D>(
          this,
          Invocation.method(
            #into,
            [table],
          ),
        ),
        returnValueForMissingStub: _FakeInsertStatement_27<T, D>(
          this,
          Invocation.method(
            #into,
            [table],
          ),
        ),
      ) as _i2.InsertStatement<T, D>);

  @override
  _i2.UpdateStatement<Tbl, R> update<Tbl extends _i2.Table, R>(
          _i2.TableInfo<Tbl, R>? table) =>
      (super.noSuchMethod(
        Invocation.method(
          #update,
          [table],
        ),
        returnValue: _FakeUpdateStatement_28<Tbl, R>(
          this,
          Invocation.method(
            #update,
            [table],
          ),
        ),
        returnValueForMissingStub: _FakeUpdateStatement_28<Tbl, R>(
          this,
          Invocation.method(
            #update,
            [table],
          ),
        ),
      ) as _i2.UpdateStatement<Tbl, R>);

  @override
  _i2.SimpleSelectStatement<T, R> select<T extends _i2.HasResultSet, R>(
    _i2.ResultSetImplementation<T, R>? table, {
    bool? distinct = false,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #select,
          [table],
          {#distinct: distinct},
        ),
        returnValue: _FakeSimpleSelectStatement_29<T, R>(
          this,
          Invocation.method(
            #select,
            [table],
            {#distinct: distinct},
          ),
        ),
        returnValueForMissingStub: _FakeSimpleSelectStatement_29<T, R>(
          this,
          Invocation.method(
            #select,
            [table],
            {#distinct: distinct},
          ),
        ),
      ) as _i2.SimpleSelectStatement<T, R>);

  @override
  _i2.JoinedSelectStatement<T, R> selectOnly<T extends _i2.HasResultSet, R>(
    _i2.ResultSetImplementation<T, R>? table, {
    bool? distinct = false,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #selectOnly,
          [table],
          {#distinct: distinct},
        ),
        returnValue: _FakeJoinedSelectStatement_30<T, R>(
          this,
          Invocation.method(
            #selectOnly,
            [table],
            {#distinct: distinct},
          ),
        ),
        returnValueForMissingStub: _FakeJoinedSelectStatement_30<T, R>(
          this,
          Invocation.method(
            #selectOnly,
            [table],
            {#distinct: distinct},
          ),
        ),
      ) as _i2.JoinedSelectStatement<T, R>);

  @override
  _i2.BaseSelectStatement<_i2.TypedResult> selectExpressions(
          Iterable<_i2.Expression<Object>>? columns) =>
      (super.noSuchMethod(
        Invocation.method(
          #selectExpressions,
          [columns],
        ),
        returnValue: _FakeBaseSelectStatement_31<_i2.TypedResult>(
          this,
          Invocation.method(
            #selectExpressions,
            [columns],
          ),
        ),
        returnValueForMissingStub: _FakeBaseSelectStatement_31<_i2.TypedResult>(
          this,
          Invocation.method(
            #selectExpressions,
            [columns],
          ),
        ),
      ) as _i2.BaseSelectStatement<_i2.TypedResult>);

  @override
  _i2.DeleteStatement<T, D> delete<T extends _i2.Table, D>(
          _i2.TableInfo<T, D>? table) =>
      (super.noSuchMethod(
        Invocation.method(
          #delete,
          [table],
        ),
        returnValue: _FakeDeleteStatement_32<T, D>(
          this,
          Invocation.method(
            #delete,
            [table],
          ),
        ),
        returnValueForMissingStub: _FakeDeleteStatement_32<T, D>(
          this,
          Invocation.method(
            #delete,
            [table],
          ),
        ),
      ) as _i2.DeleteStatement<T, D>);

  @override
  _i5.Future<int> customUpdate(
    String? query, {
    List<_i2.Variable<Object>>? variables = const [],
    Set<_i2.ResultSetImplementation<dynamic, dynamic>>? updates,
    _i2.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<_i2.Variable<Object>>? variables = const [],
    Set<_i2.ResultSetImplementation<dynamic, 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<_i2.QueryRow>> customWriteReturning(
    String? query, {
    List<_i2.Variable<Object>>? variables = const [],
    Set<_i2.ResultSetImplementation<dynamic, dynamic>>? updates,
    _i2.UpdateKind? updateKind,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #customWriteReturning,
          [query],
          {
            #variables: variables,
            #updates: updates,
            #updateKind: updateKind,
          },
        ),
        returnValue: _i5.Future<List<_i2.QueryRow>>.value(<_i2.QueryRow>[]),
        returnValueForMissingStub:
            _i5.Future<List<_i2.QueryRow>>.value(<_i2.QueryRow>[]),
      ) as _i5.Future<List<_i2.QueryRow>>);

  @override
  _i2.Selectable<_i2.QueryRow> customSelect(
    String? query, {
    List<_i2.Variable<Object>>? variables = const [],
    Set<_i2.ResultSetImplementation<dynamic, dynamic>>? readsFrom = const {},
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #customSelect,
          [query],
          {
            #variables: variables,
            #readsFrom: readsFrom,
          },
        ),
        returnValue: _FakeSelectable_24<_i2.QueryRow>(
          this,
          Invocation.method(
            #customSelect,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
        ),
        returnValueForMissingStub: _FakeSelectable_24<_i2.QueryRow>(
          this,
          Invocation.method(
            #customSelect,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
        ),
      ) as _i2.Selectable<_i2.QueryRow>);

  @override
  _i2.Selectable<_i2.QueryRow> customSelectQuery(
    String? query, {
    List<_i2.Variable<Object>>? variables = const [],
    Set<_i2.ResultSetImplementation<dynamic, dynamic>>? readsFrom = const {},
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #customSelectQuery,
          [query],
          {
            #variables: variables,
            #readsFrom: readsFrom,
          },
        ),
        returnValue: _FakeSelectable_24<_i2.QueryRow>(
          this,
          Invocation.method(
            #customSelectQuery,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
        ),
        returnValueForMissingStub: _FakeSelectable_24<_i2.QueryRow>(
          this,
          Invocation.method(
            #customSelectQuery,
            [query],
            {
              #variables: variables,
              #readsFrom: readsFrom,
            },
          ),
        ),
      ) as _i2.Selectable<_i2.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_26<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_26<T>(
              this,
              Invocation.method(
                #transaction,
                [action],
                {#requireNew: requireNew},
              ),
            ),
      ) as _i5.Future<T>);

  @override
  _i5.Future<T> exclusively<T>(_i5.Future<T> Function()? action) =>
      (super.noSuchMethod(
        Invocation.method(
          #exclusively,
          [action],
        ),
        returnValue: _i6.ifNotNull(
              _i6.dummyValueOrNull<T>(
                this,
                Invocation.method(
                  #exclusively,
                  [action],
                ),
              ),
              (T v) => _i5.Future<T>.value(v),
            ) ??
            _FakeFuture_26<T>(
              this,
              Invocation.method(
                #exclusively,
                [action],
              ),
            ),
        returnValueForMissingStub: _i6.ifNotNull(
              _i6.dummyValueOrNull<T>(
                this,
                Invocation.method(
                  #exclusively,
                  [action],
                ),
              ),
              (T v) => _i5.Future<T>.value(v),
            ) ??
            _FakeFuture_26<T>(
              this,
              Invocation.method(
                #exclusively,
                [action],
              ),
            ),
      ) as _i5.Future<T>);

  @override
  _i5.Future<void> batch(_i5.FutureOr<void> Function(_i2.Batch)? runInBatch) =>
      (super.noSuchMethod(
        Invocation.method(
          #batch,
          [runInBatch],
        ),
        returnValue: _i5.Future<void>.value(),
        returnValueForMissingStub: _i5.Future<void>.value(),
      ) as _i5.Future<void>);

  @override
  _i5.Future<T> runWithInterceptor<T>(
    _i5.Future<T> Function()? action, {
    required _i2.QueryInterceptor? interceptor,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #runWithInterceptor,
          [action],
          {#interceptor: interceptor},
        ),
        returnValue: _i6.ifNotNull(
              _i6.dummyValueOrNull<T>(
                this,
                Invocation.method(
                  #runWithInterceptor,
                  [action],
                  {#interceptor: interceptor},
                ),
              ),
              (T v) => _i5.Future<T>.value(v),
            ) ??
            _FakeFuture_26<T>(
              this,
              Invocation.method(
                #runWithInterceptor,
                [action],
                {#interceptor: interceptor},
              ),
            ),
        returnValueForMissingStub: _i6.ifNotNull(
              _i6.dummyValueOrNull<T>(
                this,
                Invocation.method(
                  #runWithInterceptor,
                  [action],
                  {#interceptor: interceptor},
                ),
              ),
              (T v) => _i5.Future<T>.value(v),
            ) ??
            _FakeFuture_26<T>(
              this,
              Invocation.method(
                #runWithInterceptor,
                [action],
                {#interceptor: interceptor},
              ),
            ),
      ) as _i5.Future<T>);

  @override
  _i2.GenerationContext $write(
    _i2.Component? component, {
    bool? hasMultipleTables,
    int? startIndex,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #$write,
          [component],
          {
            #hasMultipleTables: hasMultipleTables,
            #startIndex: startIndex,
          },
        ),
        returnValue: _FakeGenerationContext_33(
          this,
          Invocation.method(
            #$write,
            [component],
            {
              #hasMultipleTables: hasMultipleTables,
              #startIndex: startIndex,
            },
          ),
        ),
        returnValueForMissingStub: _FakeGenerationContext_33(
          this,
          Invocation.method(
            #$write,
            [component],
            {
              #hasMultipleTables: hasMultipleTables,
              #startIndex: startIndex,
            },
          ),
        ),
      ) as _i2.GenerationContext);

  @override
  _i2.GenerationContext $writeInsertable(
    _i2.TableInfo<_i2.Table, dynamic>? table,
    _i2.Insertable<dynamic>? insertable, {
    int? startIndex,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #$writeInsertable,
          [
            table,
            insertable,
          ],
          {#startIndex: startIndex},
        ),
        returnValue: _FakeGenerationContext_33(
          this,
          Invocation.method(
            #$writeInsertable,
            [
              table,
              insertable,
            ],
            {#startIndex: startIndex},
          ),
        ),
        returnValueForMissingStub: _FakeGenerationContext_33(
          this,
          Invocation.method(
            #$writeInsertable,
            [
              table,
              insertable,
            ],
            {#startIndex: startIndex},
          ),
        ),
      ) as _i2.GenerationContext);

  @override
  String $expandVar(
    int? start,
    int? amount,
  ) =>
      (super.noSuchMethod(
        Invocation.method(
          #$expandVar,
          [
            start,
            amount,
          ],
        ),
        returnValue: _i6.dummyValue<String>(
          this,
          Invocation.method(
            #$expandVar,
            [
              start,
              amount,
            ],
          ),
        ),
        returnValueForMissingStub: _i6.dummyValue<String>(
          this,
          Invocation.method(
            #$expandVar,
            [
              start,
              amount,
            ],
          ),
        ),
      ) as String);
}
