From 896d0f90c7416272a4b6a0328e40ba3f73387bb6 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Wed, 20 Jan 2021 12:30:59 +0100 Subject: [PATCH] Migrate more tests to null safety --- .../query_builder/expressions/null_check.dart | 2 +- moor/pubspec.yaml | 2 +- moor/test/batch_test.dart | 7 +++---- moor/test/columns/int_column_test.dart | 1 - moor/test/custom_queries_test.dart | 7 +++---- moor/test/data_class_test.dart | 5 ++--- moor/test/database_test.dart | 5 ++--- moor/test/delete_test.dart | 7 +++---- .../engines/connection_pool_integration_test.dart | 1 - moor/test/engines/connection_pool_test.dart | 7 +++---- moor/test/error_handling_test.dart | 12 ++---------- moor/test/expressions/constant_test.dart | 1 - moor/test/expressions/datetime_expression_test.dart | 3 +-- .../expressions/expressions_integration_test.dart | 3 +-- moor/test/expressions/in_expression_test.dart | 1 - moor/test/expressions/variable_test.dart | 3 +-- moor/test/insert_test.dart | 1 - .../integration_tests/insert_integration_test.dart | 3 +-- .../migrations_integration_test.dart | 1 - .../test/parsed_sql/moor_files_integration_test.dart | 7 +++---- moor/test/schema_test.dart | 7 +++---- moor/test/streams_test.dart | 5 ++--- moor/test/tables_test.dart | 5 ++--- moor/test/update_test.dart | 9 ++++----- moor/test/utils/lazy_database_test.dart | 1 - 25 files changed, 38 insertions(+), 68 deletions(-) diff --git a/moor/lib/src/runtime/query_builder/expressions/null_check.dart b/moor/lib/src/runtime/query_builder/expressions/null_check.dart index af429900..58d12a4c 100644 --- a/moor/lib/src/runtime/query_builder/expressions/null_check.dart +++ b/moor/lib/src/runtime/query_builder/expressions/null_check.dart @@ -22,7 +22,7 @@ extension SqlIsNull on Expression { /// Evaluates to the first expression in [expressions] that's not null, or /// null if all [expressions] evaluate to null. -Expression coalesce(List> expressions) { +Expression coalesce(List> expressions) { assert(expressions.length >= 2, 'coalesce must have at least 2 arguments, got ${expressions.length}'); diff --git a/moor/pubspec.yaml b/moor/pubspec.yaml index e3e4e0d8..6aeff3d0 100644 --- a/moor/pubspec.yaml +++ b/moor/pubspec.yaml @@ -27,7 +27,7 @@ dev_dependencies: build_runner: ^1.10.4 test: ^1.16.0-nullsafety mockito: ^5.0.0-nullsafety - rxdart: ^0.24.0 # used to test compatibility with stream queries + rxdart: ^0.26.0-nullsafety dependency_overrides: moor_generator: diff --git a/moor/test/batch_test.dart b/moor/test/batch_test.dart index 495388d3..74800d09 100644 --- a/moor/test/batch_test.dart +++ b/moor/test/batch_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:mockito/mockito.dart'; import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -7,9 +6,9 @@ import 'data/tables/todos.dart'; import 'data/utils/mocks.dart'; void main() { - TodoDb db; - MockExecutor executor; - MockStreamQueries streamQueries; + late TodoDb db; + late MockExecutor executor; + late MockStreamQueries streamQueries; setUp(() { executor = MockExecutor(); diff --git a/moor/test/columns/int_column_test.dart b/moor/test/columns/int_column_test.dart index 9f19267f..8c8cf31f 100644 --- a/moor/test/columns/int_column_test.dart +++ b/moor/test/columns/int_column_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:test/test.dart'; import 'package:moor/moor.dart'; diff --git a/moor/test/custom_queries_test.dart b/moor/test/custom_queries_test.dart index 5736defc..820c1176 100644 --- a/moor/test/custom_queries_test.dart +++ b/moor/test/custom_queries_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:mockito/mockito.dart'; import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -9,9 +8,9 @@ import 'data/utils/mocks.dart'; // ignore_for_file: lines_longer_than_80_chars void main() { - TodoDb db; - MockExecutor executor; - MockStreamQueries streamQueries; + late TodoDb db; + late MockExecutor executor; + late MockStreamQueries streamQueries; setUp(() { executor = MockExecutor(); diff --git a/moor/test/data_class_test.dart b/moor/test/data_class_test.dart index 6d94e863..60def7da 100644 --- a/moor/test/data_class_test.dart +++ b/moor/test/data_class_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -130,8 +129,8 @@ void main() { }); test('equal when value is null and generic is different', () { - const first = Value(null); - const equalToFirst = Value(null); + const first = Value(null); + const equalToFirst = Value(null); expect(first.hashCode, equals(equalToFirst.hashCode)); expect(first, equals(equalToFirst)); diff --git a/moor/test/database_test.dart b/moor/test/database_test.dart index 57c090b2..43530f4c 100644 --- a/moor/test/database_test.dart +++ b/moor/test/database_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:mockito/mockito.dart'; import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -45,8 +44,8 @@ void main() { }); group('callbacks', () { - _FakeDb db; - MockExecutor executor; + late _FakeDb db; + late MockExecutor executor; setUp(() { executor = MockExecutor(); diff --git a/moor/test/delete_test.dart b/moor/test/delete_test.dart index 1f30786e..5c9d6679 100644 --- a/moor/test/delete_test.dart +++ b/moor/test/delete_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'dart:async'; import 'package:mockito/mockito.dart'; @@ -9,9 +8,9 @@ import 'data/tables/todos.dart'; import 'data/utils/mocks.dart'; void main() { - TodoDb db; - MockExecutor executor; - MockStreamQueries streamQueries; + late TodoDb db; + late MockExecutor executor; + late MockStreamQueries streamQueries; setUp(() { executor = MockExecutor(); diff --git a/moor/test/engines/connection_pool_integration_test.dart b/moor/test/engines/connection_pool_integration_test.dart index 89468e50..ebf324a9 100644 --- a/moor/test/engines/connection_pool_integration_test.dart +++ b/moor/test/engines/connection_pool_integration_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 @TestOn('vm') import 'dart:io'; diff --git a/moor/test/engines/connection_pool_test.dart b/moor/test/engines/connection_pool_test.dart index 556fc3a7..81593eb4 100644 --- a/moor/test/engines/connection_pool_test.dart +++ b/moor/test/engines/connection_pool_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:mockito/mockito.dart'; import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -7,9 +6,9 @@ import '../data/tables/todos.dart'; import '../data/utils/mocks.dart'; void main() { - MockExecutor read, write; - MultiExecutor multi; - TodoDb db; + late MockExecutor read, write; + late MultiExecutor multi; + late TodoDb db; setUp(() { read = MockExecutor(); diff --git a/moor/test/error_handling_test.dart b/moor/test/error_handling_test.dart index 1699bc1d..8d6f897d 100644 --- a/moor/test/error_handling_test.dart +++ b/moor/test/error_handling_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -7,8 +6,6 @@ import 'data/utils/mocks.dart'; // the content is set to non-null and the title must be between 4 and 16 chars // long -const nullContent = - TodosTableCompanion(title: Value('Test'), content: Value(null)); const absentContent = TodosTableCompanion(title: Value('Test'), content: Value.absent()); const shortTitle = @@ -19,8 +16,8 @@ const valid = TodosTableCompanion(title: Value('Test'), content: Value('Some content')); void main() { - TodoDb db; - MockExecutor executor; + late TodoDb db; + late MockExecutor executor; setUp(() { executor = MockExecutor(); @@ -28,11 +25,6 @@ void main() { }); test('detects errors on insert', () { - expect( - () => db.into(db.todosTable).insert(nullContent), - throwsA(predicate( - (e) => e.message.contains('not nullable'))), - ); expect( () => db.into(db.todosTable).insert(absentContent), throwsA(predicate( diff --git a/moor/test/expressions/constant_test.dart b/moor/test/expressions/constant_test.dart index 07cff1c7..09082aba 100644 --- a/moor/test/expressions/constant_test.dart +++ b/moor/test/expressions/constant_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:moor/moor.dart'; import 'package:test/test.dart'; diff --git a/moor/test/expressions/datetime_expression_test.dart b/moor/test/expressions/datetime_expression_test.dart index c7f6aed5..676a6a1c 100644 --- a/moor/test/expressions/datetime_expression_test.dart +++ b/moor/test/expressions/datetime_expression_test.dart @@ -1,11 +1,10 @@ -//@dart=2.9 import 'package:moor/moor.dart'; import 'package:test/test.dart'; import '../data/utils/expect_equality.dart'; import '../data/utils/expect_generated.dart'; -typedef _Extractor = Expression Function(Expression d); +typedef _Extractor = Expression Function(Expression d); void main() { final column = GeneratedDateTimeColumn('val', 'table', false); diff --git a/moor/test/expressions/expressions_integration_test.dart b/moor/test/expressions/expressions_integration_test.dart index 1a552dc5..bc489a5f 100644 --- a/moor/test/expressions/expressions_integration_test.dart +++ b/moor/test/expressions/expressions_integration_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 @TestOn('vm') import 'package:moor/ffi.dart'; import 'package:moor/moor.dart'; @@ -7,7 +6,7 @@ import 'package:test/test.dart'; import '../data/tables/todos.dart'; void main() { - TodoDb db; + late TodoDb db; setUp(() async { db = TodoDb(VmDatabase.memory()); diff --git a/moor/test/expressions/in_expression_test.dart b/moor/test/expressions/in_expression_test.dart index 02f39b76..8a3babff 100644 --- a/moor/test/expressions/in_expression_test.dart +++ b/moor/test/expressions/in_expression_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:test/test.dart'; import 'package:moor/moor.dart'; diff --git a/moor/test/expressions/variable_test.dart b/moor/test/expressions/variable_test.dart index 6ce21633..ad2d0020 100644 --- a/moor/test/expressions/variable_test.dart +++ b/moor/test/expressions/variable_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:test/test.dart'; import 'package:moor/moor.dart'; @@ -17,7 +16,7 @@ void main() { }); test('writes null directly for null values', () { - const variable = Variable(null); + const variable = Variable(null); final ctx = GenerationContext.fromDb(TodoDb()); variable.writeInto(ctx); diff --git a/moor/test/insert_test.dart b/moor/test/insert_test.dart index be76f91d..e44c90ad 100644 --- a/moor/test/insert_test.dart +++ b/moor/test/insert_test.dart @@ -1,4 +1,3 @@ -// ignore: import_of_legacy_library_into_null_safe import 'package:mockito/mockito.dart'; import 'package:moor/moor.dart'; import 'package:test/test.dart'; diff --git a/moor/test/integration_tests/insert_integration_test.dart b/moor/test/integration_tests/insert_integration_test.dart index da9cd26e..e42d65a4 100644 --- a/moor/test/integration_tests/insert_integration_test.dart +++ b/moor/test/integration_tests/insert_integration_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 @TestOn('vm') import 'package:moor/moor.dart'; import 'package:moor/ffi.dart'; @@ -7,7 +6,7 @@ import 'package:test/test.dart'; import '../data/tables/todos.dart'; void main() { - TodoDb db; + late TodoDb db; setUp(() { db = TodoDb(VmDatabase.memory()); diff --git a/moor/test/integration_tests/migrations_integration_test.dart b/moor/test/integration_tests/migrations_integration_test.dart index dc6219ff..86e5fc3b 100644 --- a/moor/test/integration_tests/migrations_integration_test.dart +++ b/moor/test/integration_tests/migrations_integration_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 @TestOn('vm') import 'package:moor/ffi.dart'; import 'package:moor/moor.dart' hide isNull; diff --git a/moor/test/parsed_sql/moor_files_integration_test.dart b/moor/test/parsed_sql/moor_files_integration_test.dart index 1db1d5c1..d16f114d 100644 --- a/moor/test/parsed_sql/moor_files_integration_test.dart +++ b/moor/test/parsed_sql/moor_files_integration_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:mockito/mockito.dart'; import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -49,15 +48,15 @@ const _defaultInsert = 'INSERT INTO config (config_key, config_value) ' void main() { // see ../data/tables/tables.moor - MockExecutor mock; - CustomTablesDb db; + late MockExecutor mock; + late CustomTablesDb db; setUp(() { mock = MockExecutor(); db = CustomTablesDb(mock); }); - tearDown(() => db?.close()); + tearDown(() => db.close()); test('creates everything as specified in .moor files', () async { await db.createMigrator().createAll(); diff --git a/moor/test/schema_test.dart b/moor/test/schema_test.dart index f1db4be4..b2f0d8a4 100644 --- a/moor/test/schema_test.dart +++ b/moor/test/schema_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:mockito/mockito.dart'; import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -7,8 +6,8 @@ import 'data/tables/todos.dart'; import 'data/utils/mocks.dart'; void main() { - TodoDb db; - QueryExecutor mockExecutor; + late TodoDb db; + late QueryExecutor mockExecutor; setUp(() { mockExecutor = MockExecutor(); @@ -129,7 +128,7 @@ void main() { test('can use migrations inside schema callbacks', () async { final executor = MockExecutor(); - TodoDb db; + late TodoDb db; db = TodoDb(executor) ..migration = MigrationStrategy(onUpgrade: (m, from, to) async { await db.transaction(() async { diff --git a/moor/test/streams_test.dart b/moor/test/streams_test.dart index df774df2..3e21f726 100644 --- a/moor/test/streams_test.dart +++ b/moor/test/streams_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'dart:async'; import 'package:mockito/mockito.dart'; @@ -13,8 +12,8 @@ import 'data/tables/todos.dart'; import 'data/utils/mocks.dart'; void main() { - TodoDb db; - MockExecutor executor; + late TodoDb db; + late MockExecutor executor; setUp(() { executor = MockExecutor(); db = TodoDb(executor); diff --git a/moor/test/tables_test.dart b/moor/test/tables_test.dart index 07a31f3e..6c9fa97c 100644 --- a/moor/test/tables_test.dart +++ b/moor/test/tables_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:moor/moor.dart'; import 'package:test/test.dart'; @@ -6,8 +5,8 @@ import 'data/tables/todos.dart'; import 'data/utils/mocks.dart'; void main() { - TodoDb db; - MockExecutor executor; + late TodoDb db; + late MockExecutor executor; setUp(() { executor = MockExecutor(); diff --git a/moor/test/update_test.dart b/moor/test/update_test.dart index 996a28e3..dd2f616b 100644 --- a/moor/test/update_test.dart +++ b/moor/test/update_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'dart:async'; import 'package:mockito/mockito.dart'; @@ -9,9 +8,9 @@ import 'data/tables/todos.dart'; import 'data/utils/mocks.dart'; void main() { - TodoDb db; - MockExecutor executor; - MockStreamQueries streamQueries; + late TodoDb db; + late MockExecutor executor; + late MockStreamQueries streamQueries; setUp(() { executor = MockExecutor(); @@ -116,7 +115,7 @@ void main() { test('can update with custom companions', () async { await db.update(db.todosTable).replace(TodosTableCompanion.custom( id: const Variable(4), - content: db.todosTable.content, + content: db.todosTable.content.dartCast(), targetDate: db.todosTable.targetDate + const Duration(days: 1), )); diff --git a/moor/test/utils/lazy_database_test.dart b/moor/test/utils/lazy_database_test.dart index f7e7d273..43f00b64 100644 --- a/moor/test/utils/lazy_database_test.dart +++ b/moor/test/utils/lazy_database_test.dart @@ -1,4 +1,3 @@ -//@dart=2.9 import 'package:mockito/mockito.dart'; import 'package:moor/moor.dart'; import 'package:pedantic/pedantic.dart';