blob: 9920e3d7bde34bc2c24ae4b70e38ac892144ebd3 [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:file/memory.dart';
import 'package:flutter_tools/src/project.dart';
import 'package:flutter_tools/src/project_validator.dart';
import 'package:flutter_tools/src/project_validator_result.dart';
import '../src/common.dart';
class ProjectValidatorTaskImpl extends ProjectValidator {
@override
Future<List<ProjectValidatorResult>> start(FlutterProject project) async {
const ProjectValidatorResult error = ProjectValidatorResult(
name: 'result_1',
value: 'this is an error',
status: StatusProjectValidator.error,
);
const ProjectValidatorResult success = ProjectValidatorResult(
name: 'result_2',
value: 'correct',
status: StatusProjectValidator.success,
);
const ProjectValidatorResult warning = ProjectValidatorResult(
name: 'result_3',
value: 'this passed',
status: StatusProjectValidator.success,
warning: 'with a warning'
);
return <ProjectValidatorResult>[error, success, warning];
}
@override
bool supportsProject(FlutterProject project) {
return true;
}
@override
String get title => 'Impl';
}
void main() {
group('ProjectValidatorResult', () {
testWithoutContext('success status', () {
const ProjectValidatorResult result = ProjectValidatorResult(
name: 'name',
value: 'value',
status: StatusProjectValidator.success,
);
expect(result.toString(), 'name: value');
expect(result.status, StatusProjectValidator.success);
});
testWithoutContext('success status with warning', () {
const ProjectValidatorResult result = ProjectValidatorResult(
name: 'name',
value: 'value',
status: StatusProjectValidator.success,
warning: 'my warning'
);
expect(result.toString(), 'name: value (warning: my warning)');
expect(result.status, StatusProjectValidator.success);
});
testWithoutContext('error status', () {
const ProjectValidatorResult result = ProjectValidatorResult(
name: 'name',
value: 'my error',
status: StatusProjectValidator.error,
);
expect(result.toString(), 'name: my error');
expect(result.status, StatusProjectValidator.error);
});
});
group('ProjectValidatorTask', () {
late ProjectValidatorTaskImpl task;
setUp(() {
task = ProjectValidatorTaskImpl();
});
testWithoutContext('error status', () async {
final MemoryFileSystem fs = MemoryFileSystem.test();
final FlutterProject project = FlutterProject.fromDirectoryTest(fs.currentDirectory);
final List<ProjectValidatorResult> results = await task.start(project);
expect(results.length, 3);
expect(results[0].toString(), 'result_1: this is an error');
expect(results[1].toString(), 'result_2: correct');
expect(results[2].toString(), 'result_3: this passed (warning: with a warning)');
});
});
}