-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathbuild_extensions_test.dart
executable file
·71 lines (63 loc) · 1.94 KB
/
build_extensions_test.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import 'dart:async';
import 'package:analyzer/dart/element/element.dart';
import 'package:build/src/builder/build_step.dart';
import 'package:exception_templates/exception_templates.dart';
import 'package:merging_builder/merging_builder.dart';
import 'package:source_gen/src/constants/reader.dart';
import 'package:test/test.dart';
class MockAnnotation {
const MockAnnotation();
}
class MockMergingGenerator
extends MergingGenerator<List<double>, MockAnnotation> {
@override
FutureOr<String> generateMergedContent(Stream<List<double>> stream) {
throw UnimplementedError();
}
@override
List<double> generateStreamItemForAnnotatedElement(
Element element,
ConstantReader annotation,
BuildStep buildStep,
) {
throw UnimplementedError();
}
}
/// Tests if the builder generates the expected buildExtensions.
void main() {
final libBuilder = MergingBuilder<List<double>, LibDir>(
generator: MockMergingGenerator(),
inputFiles: 'lib/input/*.dart',
outputFile: 'lib/output/output.dart',
);
final packageBuilder = MergingBuilder<List<double>, PackageDir>(
generator: MockMergingGenerator(),
inputFiles: 'test/input/*.dart',
outputFile: 'test/output/output.dart',
);
final misconfiguredlibBuilder = MergingBuilder<List<double>, LibDir>(
generator: MockMergingGenerator(),
inputFiles: 'web/input/*.dart',
outputFile: 'web/output/output.dart',
);
group('buildExtensions', () {
test(r'LibDir', () {
expect(libBuilder.buildExtensions, {
r'lib/$lib$': ['lib/output/output.dart'],
});
});
test(r'PackageDir', () {
expect(packageBuilder.buildExtensions, {
r'$package$': ['test/output/output.dart'],
});
});
test(r'LibDir throws', () {
try {
final buildExtensions = misconfiguredlibBuilder.buildExtensions;
buildExtensions.clear();
} catch (e) {
expect(e, isA<ErrorOf<SyntheticInput>>());
}
});
});
}