Skip to content

Commit

Permalink
use predefined matcher for exceptions
Browse files Browse the repository at this point in the history
  • Loading branch information
i10416 committed Feb 28, 2022
1 parent e5b421c commit fe4c0f4
Showing 1 changed file with 53 additions and 65 deletions.
118 changes: 53 additions & 65 deletions test/parser_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -305,73 +305,61 @@ void main() {
ex.toString();
});

dynamic parseFail(String source) {
try {
final parser = Parser(source, 'foo', '{{ }}', lenient: false);
parser.parse();
fail('Did not throw.');
} on Exception catch (ex, st) {
if (ex is! TemplateException) {
// ignore: avoid_print
print(ex);
// ignore: avoid_print
print(st);
}
return ex;
}
dynamic attemptLenient(String source) {
final parser = Parser(source, 'foo', '{{ }}', lenient: false);
parser.parse();
}

Matcher exceptionOfType<T extends Object>() => TypeMatcher<T>();
test('parse eof', () {
void expectTemplateEx(dynamic ex) => expect(ex is TemplateException, isTrue);

expectTemplateEx(parseFail('{{#foo}}{{bar}}{{/foo}'));
expectTemplateEx(parseFail('{{#foo}}{{bar}}{{/foo'));
expectTemplateEx(parseFail('{{#foo}}{{bar}}{{/'));
expectTemplateEx(parseFail('{{#foo}}{{bar}}{{'));
expectTemplateEx(parseFail('{{#foo}}{{bar}}{'));
expectTemplateEx(parseFail('{{#foo}}{{bar}}'));
expectTemplateEx(parseFail('{{#foo}}{{bar}'));
expectTemplateEx(parseFail('{{#foo}}{{bar'));
expectTemplateEx(parseFail('{{#foo}}{{'));
expectTemplateEx(parseFail('{{#foo}}{'));
expectTemplateEx(parseFail('{{#foo}}'));
expectTemplateEx(parseFail('{{#foo}'));
expectTemplateEx(parseFail('{{#'));
expectTemplateEx(parseFail('{{'));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ / foo }'));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ / foo '));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ / foo'));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ / '));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ /'));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ '));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{'));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{'));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }}'));
expectTemplateEx(parseFail('{{ # foo }}{{ bar }'));
expectTemplateEx(parseFail('{{ # foo }}{{ bar '));
expectTemplateEx(parseFail('{{ # foo }}{{ bar'));
expectTemplateEx(parseFail('{{ # foo }}{{ '));
expectTemplateEx(parseFail('{{ # foo }}{{'));
expectTemplateEx(parseFail('{{ # foo }}{'));
expectTemplateEx(parseFail('{{ # foo }}'));
expectTemplateEx(parseFail('{{ # foo }'));
expectTemplateEx(parseFail('{{ # foo '));
expectTemplateEx(parseFail('{{ # foo'));
expectTemplateEx(parseFail('{{ # '));
expectTemplateEx(parseFail('{{ #'));
expectTemplateEx(parseFail('{{ '));
expectTemplateEx(parseFail('{{'));

expectTemplateEx(parseFail('{{= || || =}'));
expectTemplateEx(parseFail('{{= || || ='));
expectTemplateEx(parseFail('{{= || || '));
expectTemplateEx(parseFail('{{= || ||'));
expectTemplateEx(parseFail('{{= || |'));
expectTemplateEx(parseFail('{{= || '));
expectTemplateEx(parseFail('{{= ||'));
expectTemplateEx(parseFail('{{= |'));
expectTemplateEx(parseFail('{{= '));
expectTemplateEx(parseFail('{{='));
expect(()=>attemptLenient('{{#foo}}{{bar}}{{/foo}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{bar}}{{/foo}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{bar}}{{/foo'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{bar}}{{/'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{bar}}{{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{bar}}{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{bar}}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{bar}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{bar'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#foo}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{#'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}{{ / foo }'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}{{ / foo '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}{{ / foo'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}{{ / '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}{{ /'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}{{ '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}{{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar }'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ bar'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{ '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}{'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo }'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # foo'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ # '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ #'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{ '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{'),throwsA(exceptionOfType<TemplateException>()));

expect(()=>attemptLenient('{{= || || =}'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{= || || ='),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{= || || '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{= || ||'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{= || |'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{= || '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{= ||'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{= |'),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{= '),throwsA(exceptionOfType<TemplateException>()));
expect(()=>attemptLenient('{{='),throwsA(exceptionOfType<TemplateException>()));
});
});
}
Expand Down

0 comments on commit fe4c0f4

Please sign in to comment.