Migrate more tests to null safety

This commit is contained in:
Simon Binder 2021-01-20 12:30:59 +01:00
parent e07397006f
commit 896d0f90c7
No known key found for this signature in database
GPG Key ID: 7891917E4147B8C0
25 changed files with 38 additions and 68 deletions

View File

@ -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<T> coalesce<T>(List<Expression<T>> expressions) {
Expression<T> coalesce<T>(List<Expression<T?>> expressions) {
assert(expressions.length >= 2,
'coalesce must have at least 2 arguments, got ${expressions.length}');

View File

@ -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:

View File

@ -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();

View File

@ -1,4 +1,3 @@
//@dart=2.9
import 'package:test/test.dart';
import 'package:moor/moor.dart';

View File

@ -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();

View File

@ -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<int>(null);
const equalToFirst = Value<String>(null);
const first = Value<int?>(null);
const equalToFirst = Value<String?>(null);
expect(first.hashCode, equals(equalToFirst.hashCode));
expect(first, equals(equalToFirst));

View File

@ -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();

View File

@ -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();

View File

@ -1,4 +1,3 @@
//@dart=2.9
@TestOn('vm')
import 'dart:io';

View File

@ -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();

View File

@ -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<InvalidDataException>(
(e) => e.message.contains('not nullable'))),
);
expect(
() => db.into(db.todosTable).insert(absentContent),
throwsA(predicate<InvalidDataException>(

View File

@ -1,4 +1,3 @@
//@dart=2.9
import 'package:moor/moor.dart';
import 'package:test/test.dart';

View File

@ -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<int> Function(Expression<DateTime> d);
typedef _Extractor = Expression<int?> Function(Expression<DateTime?> d);
void main() {
final column = GeneratedDateTimeColumn('val', 'table', false);

View File

@ -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());

View File

@ -1,4 +1,3 @@
//@dart=2.9
import 'package:test/test.dart';
import 'package:moor/moor.dart';

View File

@ -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<String>(null);
const variable = Variable<String?>(null);
final ctx = GenerationContext.fromDb(TodoDb());
variable.writeInto(ctx);

View File

@ -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';

View File

@ -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());

View File

@ -1,4 +1,3 @@
//@dart=2.9
@TestOn('vm')
import 'package:moor/ffi.dart';
import 'package:moor/moor.dart' hide isNull;

View File

@ -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();

View File

@ -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 {

View File

@ -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);

View File

@ -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();

View File

@ -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),
));

View File

@ -1,4 +1,3 @@
//@dart=2.9
import 'package:mockito/mockito.dart';
import 'package:moor/moor.dart';
import 'package:pedantic/pedantic.dart';