// 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. // @dart = 2.8 import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/build_system/build_system.dart'; import 'package:flutter_tools/src/build_system/exceptions.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import '../../src/common.dart'; void main() { test('Exceptions', () { final MissingInputException missingInputException = MissingInputException( [globals.fs.file('foo'), globals.fs.file('bar')], 'example'); final CycleException cycleException = CycleException({ TestTarget()..name = 'foo', TestTarget()..name = 'bar', }); final InvalidPatternException invalidPatternException = InvalidPatternException( 'ABC' ); final MissingOutputException missingOutputException = MissingOutputException( [ globals.fs.file('foo'), globals.fs.file('bar') ], 'example', ); final MisplacedOutputException misplacedOutputException = MisplacedOutputException( 'foo', 'example', ); final MissingDefineException missingDefineException = MissingDefineException( 'foobar', 'example', ); expect( missingInputException.toString(), 'foo, bar were declared as an inputs, ' 'but did not exist. Check the definition of target:example for errors'); expect( cycleException.toString(), 'Dependency cycle detected in build: foo -> bar', ); expect( invalidPatternException.toString(), 'The pattern "ABC" is not valid', ); expect( missingOutputException.toString(), 'foo, bar were declared as outputs, but were not generated by the ' 'action. Check the definition of target:example for errors', ); expect( misplacedOutputException.toString(), 'Target example produced an output at foo which is outside of the ' 'current build or project directory', ); expect( missingDefineException.toString(), 'Target example required define foobar but it was not provided', ); }); } class TestTarget extends Target { TestTarget([this._build]); final Future Function(Environment environment) _build; @override Future build(Environment environment) => _build(environment); @override List dependencies = []; @override List inputs = []; @override String name = 'test'; @override List outputs = []; }